1. Docker拉取nginx镜像
1.1 拉取nginx镜像
docker pull nginx:latest
-----------------------------------
latest: Pulling from library/nginx
461246efe0a7: Already exists
060bfa6be22e: Pull complete
b34d5ba6fa9e: Pull complete
8128ac56c745: Pull complete
44d36245a8c9: Pull complete
ebcc2cc821e6: Pull complete
Digest: sha256:1761fb5661e4d77e107427d8012ad3a5955007d997e0f4a3d41acc9ff20467c7
Status: Downloaded newer image for nginx:latest
docker.io/library/nginx:latest
1.2 查看镜像
docker images
-----------------------------------
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest 41b0e86104ba 2 weeks ago 142MB
如果TAG展示为<none>
,虽然不影响使用(启动时使用IMAGE ID)但是不容易分辨,可以通过以下命令修改为指定tag。
docker tag nginx:latest
--------------------------
以本篇文章为例,执行以下命令修改容器nginx的tag为latest
docker tag 41b0e86104ba nginx:latest
2. Docker启动nginx
后台启动nginx
docker run -d -p 80:80 --name nginx nginx
查看容器启动情况
docker ps
--------------------------
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
8c3ee6abb5f7 nginx "/docker-entrypoint.…" 44 minutes ago Up 44 minutes 0.0.0.0:80->80/tcp, :::80->80/tcp nginxlearn
容器交互
docker exec -it container_id bash
--------------------------
以本篇文章为例,进入docker容器
docker exec -it 8c3ee6abb5f7 bash
3. 配置nginx
3.1 docker内nginx目录
docker容器内nginx默认位置
- 配置文件目录
/etc/nginx
- 静态文件目录
/usr/share/nginx/html
- 日志文件目录
/var/log/nginx
3.2 宿主机管理内容及配置
3.2.1 创建宿主机目录
mkdir /usr/local/nginx/{conf,logs,html}
3.2.2 拷贝容器文件到宿主机
- 拷贝nginx.conf配置文件到本地
docker cp nginx:/etc/nginx/nginx.conf $PWD/conf
- 拷贝conf.d目录到本地
docker cp nginx:/etc/nginx/conf.d $PWD/conf
3.2.3 停止容器
docker stop nginx
3.2.4 删除容器
docker rm nginx
3.2.5 挂载目录并启动
docker run -d -p 80:80 --name nginxlearn -v /usr/local/nginx/html:/usr/share/nginx/html -v /usr/local/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /usr/local/nginx/conf/conf.d:/etc/nginx/conf.d -v /usr/local/nginx/logs:/var/log/nginx --privileged=true nginx
3.2.6 Docker 启动参数
- -d: 后台运行容器
- -p: 对端口进行映射(宿主机端口:容器端口)
- --name: 创建的容器名称
- -v: 挂载主机目录(将本地目录(文件)挂载到容器指定目录)
- --privileged: 容器授权(root)
- -i: 以交互模式运行容器,通常与
-t
同时使用 - -t: 为容器重新分配一个伪输入终端,通常与
-i
同时使用 - 更多启动参数参考Docker Run
3.2.6 SSL 配置
因网站备案审批中,暂时未做SSL处理,等待后续申请成功会补充此部分内容。