- nginx不能直接挂载数据,先跑一个demo然后复制里面的内容
docker run -d --name ng nginx
注意:只要不报错就不要停止运行,有可能你之前没有下载nginx的镜像,docker会自动帮你下载。

- 然后使用
复制内容 ,我之前基础命令篇(点击跳转)都有写docker cp
(1) 先复制nginx的配置
# 创建挂载目录
mkdir -p /root/docker-data-test/nginx
# 复制容器内容
docker cp ng:/etc/nginx/ /root/docker-data-test/nginx/conf
---------------------------------------------------------------------------------
ng:/etc/nginx -> 容器路径
/root/docker-data-test/nginx/conf/ -> 目标路径
(2) 复制html中的内容
# 复制容器内容
docker cp ng:/usr/share/nginx/html /root/docker-data-test/nginx
(3) 复制log的内容
docker cp ng:/var/log/nginx /root/docker-data-test/nginx/log
- 启动并挂载nginx
刚才的demo如果不想要可以使用命令删除它
docker rm -f ng
# 启动并挂载外部配置和数据
docker run -d \
--name nginx \
--restart always \
-v ~/docker-data-test/nginx/html:/usr/share/nginx/html \
-v ~/docker-data-test/nginx/log:/var/log/nginx \
-v ~/docker-data-test/nginx/conf:/etc/nginx \
-p 81:80 \
nginx
涉及到的命令行参数:
-d -> 以守护进程的方式启动容器
-p 81:80 -> 绑定宿主机端口
--name nginx -> 指定容器名称
--restart always -> 开机启动
--privileged=true -> 提升容器内权限
-v ~/docker-data-test/nginx/conf:/etc/nginx -> 映射配置文件
-v ~/docker-data-test/nginx/html:/usr/share/nginx/html -> 映射html目录
-v ~/docker-data-test/nginx/log:/var/log/nginx -> 映射日志目录