1.版本信息

通过 docker version 命令可以获取当前docker版本信息

Client:
 Version:         1.13.1
 API version:     1.26
 Package version: docker-1.13.1-103.git7f2769b.el7.centos.x86_64
 Go version:      go1.10.3
 Git commit:      7f2769b/1.13.1
 Built:           Sun Sep 15 14:06:47 2019
 OS/Arch:         linux/amd64

Server:
 Version:         1.13.1
 API version:     1.26 (minimum version 1.12)
 Package version: docker-1.13.1-103.git7f2769b.el7.centos.x86_64
 Go version:      go1.10.3
 Git commit:      7f2769b/1.13.1
 Built:           Sun Sep 15 14:06:47 2019
 OS/Arch:         linux/amd64
 Experimental:    false

2.部署nginx镜像

2.1 搜索nginx镜像

通过 docker search nginx 命令搜索nginx相关镜像

docker search nginx

如下是部分搜索结果,OFFICIAL 表示是官方镜像

搜索结果.png

2.2 拉取nginx镜像

通过 docker pull nginx 命令拉取nginx镜像,默认是latest版本

docker pull nginx

拉取成功后,可以通过 docker images 确认镜像

docker images

2.3 启动默认nginx镜像

通过以下指令启动nginx镜像

docker run -d -p 80:80 --name my-nginx nginx
  • -d 表示后台运行
  • -p 表示指定端口映射
  • --name 表示指定名称

通过以下命令确认nginx容器运行状态

docker ps -a
  • -a 查看全部容器运行状态

2.4 复制nginx配置

通过 docker cp 可以完成容器内外的复制操作,我们新建一个**/opt/nginx**目录用于保存相关配置

# 切换至opt目录
cd /opt/

# 创建nginx等目录接口
mkdir -p /opt/nginx

# 复制配置文件
docker cp nginx:/etc/nginx/nginx.conf /opt/nginx/nginx.conf

# 复制conf.d
docker cp nginx:/etc/nginx/conf.d /opt/nginx/conf.d

2.5 停止并移除原有nginx容器

通过 docker stop 容器名/Id命令可以停止正在运行的容器

docker stop my-nginx

通过 docker rm 容器名/Id命令可以移除停止状态的容器

docker rm my-nginx

2.6 使用配置重启nginx镜像

docker run -d --name my-nginx  \
-p 80:80 \
-v /opt/nginx/nginx.conf:/etc/nginx/nginx.conf \
-v /opt/nginx/conf.d:/etc/nginx/conf.d \
-v /opt/nginx/logs:/var/log/nginx nginx
  • -v 冒号前是挂载的本地文件目录,冒号后是容器内目录

3.常见问题

3.1 nginx镜像中系统时间错误,与宿主机时间相差8小时

产生原因是容器与宿主器采用的时区不一致,解决方法:

# 常见的解决方式可以挂载宿主机系统时间,启动时添加如下参数:
-v /etc/localtime:/etc/localtime

# 完整命令
docker run -d --name my-nginx \
-p 80:80 \
-v /etc/localtime:/etc/localtime \
-v /opt/nginx/nginx.conf:/etc/nginx/nginx.conf \
-v /opt/nginx/conf.d:/etc/nginx/conf.d \
-v /opt/nginx/logs:/var/log/nginx nginx

3.2 修改本地nginx配置,如何使其生效

可以在宿主机环境下修改好nginx配置,然后进去容器环境,执行nginx相关指令使其生效,方法如下:

# 进入容器环境
docker exec -it my-nginx /bin/bash

# 确认配置容易
cat /etc/nginx/nginx.conf

# 检查配置文件是否正确(养成好习惯)
/usr/sbin/nginx -t

# 重启nginx
/usr/sbin/nginx -s reload

作者是一个技术肥宅,还在不断的学习进步中,十分欢迎各位 杠精 读者指出文中不足之处,快来给我留言吧;欢迎转载,烦请注明出处。