docker安装与docker-compose安装配置nginx过程
作者:d27668173
都是以前部署环境时的一些随笔,和各位分享一下
本次的系统环境是centos7.6
一、安装docker
1、Docker 要求 CentOS 系的内核版本高于 3.10 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker 。
通过 uname -r 命令查看你当前的内核版本
$ uname -r
2、使用 root 权限登录 Centos。确保 yum 包更新到最新。
sudo yum update
3、卸载旧版本(如果安装过旧版本的话)
看下面第二部分👇
4、安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
5、设置yum源
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
或
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
6、可以查看所有仓库中所有docker版本,并选择特定版本安装
yum list docker-ce --showduplicates | sort -r
7、安装docker
sudo yum install docker-ce
#由于repo中默认只开启stable仓库,故这里安装的是最新稳定版17.12.0
8、启动并加入开机启动
sudo systemctl start docker sudo systemctl enable docker
9、验证安装是否成功(有client和service两部分表示docker安装启动都成功了)
docker version
二、遇到的问题
1、因为之前已经安装过旧版本的docker,在安装的时候报错如下:
Transaction check error: file /usr/bin/docker from install of docker-ce-17.12.0.ce-1.el7.centos.x86_64 conflicts with file from package docker-common-2:1.12.6-68.gitec8512b.el7.centos.x86_64 file /usr/bin/docker-containerd from install of docker-ce-17.12.0.ce-1.el7.centos.x86_64 conflicts with file from package docker-common-2:1.12.6-68.gitec8512b.el7.centos.x86_64 file /usr/bin/docker-containerd-shim from install of docker-ce-17.12.0.ce-1.el7.centos.x86_64 conflicts with file from package docker-common-2:1.12.6-68.gitec8512b.el7.centos.x86_64 file /usr/bin/dockerd from install of docker-ce-17.12.0.ce-1.el7.centos.x86_64 conflicts with file from package docker-common-2:1.12.6-68.gitec8512b.el7.centos.x86_64
2、卸载旧版本的包
sudo yum erase docker-common-2:1.12.6-68.gitec8512b.el7.centos.x86_64
3、再次安装docker
sudo yum install docker-ce
OK 后续查看 下docker version 即可
三、docker-compose安装
1、安装 Docker Compose 可以通过下面命令自动下载适应版本的 Compose,并为安装脚本添加执行权限
sudo curl -L https://github.com/docker/compose/releases/download/1.21.2/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose
创建软连接,不然通过命令行查看docker-compose -version不会输出对应的版本
ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
2、获取nginx 镜像
docker pull nginx
拉完先放着,不用管它了
3、配置docker-compose
建议可以现在本地写好之后上传到环境上 我这边是上传到/mnt文件夹下
新建一个docker-compose.yaml 文件,书写配置,注意ports和volumes 自己要对应
# 使用说明 V3.2.0 # docker-compose up version: '3.0' services: nginx: hostname: nginx environment: TZ: Asia/Shanghai restart: always logging: driver: "json-file" options: max-size: "500m" container_name: docker-nginx image: nginx:latest ports: - 80:80 - 443:443 - 8888:8888 - 8889:8889 volumes: - /data2:/data2 - ./nginx/conf/nginx.conf:/etc/nginx/nginx.conf - ./nginx/logs:/var/log/nginx
4、配置nginx文件
配置文件对应在docker-compose的路径,nginx主要代码段
worker_processes 1; #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; #pid logs/nginx.pid; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; #access_log logs/access.log main; sendfile on; keepalive_timeout 65; server { listen 8888; server_name 192.168.16.119; location / { root /mnt/ind_web; try_files $uri $uri/ @router; index index.html; } # 映射后台接口 location /api { proxy_pass http://192.168.16.118:8088/; 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; client_max_body_size 10m; client_body_buffer_size 128k; proxy_connect_timeout 90; proxy_send_timeout 90; proxy_read_timeout 90; proxy_buffer_size 4k; proxy_buffers 4 32k; proxy_busy_buffers_size 64k; proxy_temp_file_write_size 64k; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_cookie_path /api /; } location @router { rewrite ^.*$ /index.html last; } } server { listen 8889; server_name 192.168.16.119; location / { root /mnt/ind_pcweb; try_files $uri $uri/ @router; index index.html; } location @router { rewrite ^.*$ /index.html last; } } }
4、启动-执行
进入文件存放位置执行
docker-compose up -d nginx
启动完毕之后查看状态和映射端口
docker ps
之前的图挂了 ,现场去开发环境截了个图
然后就可以根据nginx的配置去修改前端后端的映射地址了
常用的一些命令:
#启动 docker-compose start #停止但不删除 docker-compose stop # 重启 docker-compose restart #停用移除所有容器以及网络相关 docker-compose down #查看所有容器 (带名称则查看某个容器) docker-compose ps #查看nginx的日志 docker-compose logs nginx #查看nginx的实时日志 docker-compose logs -f nginx #进入容器 docker-compose exec nginx bash
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。