基于docker搭建开发与测试环境

安装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

  1. 拉取镜像:docker pull nginx
  2. 运行nginx容器:docker run -d -p 80:80 -v 宿主机路径(用于存放页面):/usr/share/nginx/html -v 配置文件宿主机路径:/etc/nginx/conf.d -v 日志宿主机路径:/var/log/nginx --name 自定义容器名 nginx

安装redis

  1. 拉取镜像docker pull redis
  2. 创建配置文件
  3. 绑定数据宿主机数据路径与配置文件路径
  4. 运行:docker run -p 宿主端口:redis配置端口 --name 容器名-v 配置文件宿主路径:/etc/redis/ -v 宿主数据路径:/data  -d redis redis-server /etc/redis/redis.conf

搭建docker私有库

  1. 拉取镜像docker pull registry
  2. docker run -d -p 本地端口:5000 registry
  3. 修改所有请求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:服务端口"]
    }
    
  4. 重启服务
    systemctl daemon-reload
    systemctl restart docker
  5. 另外由于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

 

 

 

 

 

你可能感兴趣的:(实践手册)