安装docker
docker安装https://docs.docker.com/install/linux/docker-ce/centos/
安装nginx
不想因为web程序有端口造成开发与测试和线上环境的不一致,首先安装nginx进行反向代理
1.配置反向代理文件
server {
listen 80;
server_name 域名;
location / {
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://实际ip:实际端口;
}
access_log /var/log/nginx/服务日志名称.log;
}
2.绑定日志
设定日志在宿主机的路径,便于查看异常,并且保存数据
3.安装nginx
- 拉取镜像:docker pull nginx
- 运行nginx容器:docker run -d -p 80:80 -v 宿主机路径(用于存放页面):/usr/share/nginx/html -v 配置文件宿主机路径:/etc/nginx/conf.d -v 日志宿主机路径:/var/log/nginx --name 自定义容器名 nginx
安装redis
- 拉取镜像docker pull redis
- 创建配置文件
- 绑定数据宿主机数据路径与配置文件路径
- 运行:docker run -p 宿主端口:redis配置端口 --name 容器名-v 配置文件宿主路径:/etc/redis/ -v 宿主数据路径:/data -d redis redis-server /etc/redis/redis.conf
搭建docker私有库
- 拉取镜像docker pull registry
- docker run -d -p 本地端口:5000 registry
- 修改所有请求docker镜像的服务器的/usr/lib/systemd/system/docker.service文件,不使用registry默认的https协议,修改内容ExecStart=/usr/bin/dockerd --insecure-registry registry服务器ip:registry服务器端口或者在/etc/docker/下添加daemon.json,加入如下内容
{ "insecure-registries":"registry服务的ip:服务端口"] }
- 重启服务
systemctl daemon-reload systemctl restart docker
- 另外由于ngixn反向代理对传输文件有上限,私有库不要走反向代理
设定hosts
hosts方式绑定的域名在容器内请求会造成错误,所以在启动容器时需要使用docker run命令的-v参数将宿主机的/etc/hosts和容器的/etc/hosts绑定。
备注:
如果镜像下载速度过慢,可以使用registry.docker-cn.com/镜像名加速,这是docker国内的镜像站点
使用git如果碰到“Peer reports incompatible or unsupported protocol version”这个错误,使用yum update -y nss curl libcurl升级
如果自建的registry库有了基础验证,但是在调用端产生x509: certificate signed by unknown authority错误,那么需要将crt证书如下操作:
$ sudo cp certs/证书名.crt /etc/docker/certs.d/证书的ssl域名:端口/ca.crt
$ sudo service docker restart //安装证书后,重启Docker Daemon
来源:CSDN
作者:无人境域
链接:https://blog.csdn.net/xqj198404/article/details/80189401