5步搞定docker端口映射和文件挂载(已测必成功)
5步搞定docker端口映射和文件挂载(已测必成功)失败的最大原因就是挂载问题, 挂载后会覆盖或者情况容器里面的内容,有多种情况
·
文件挂载详解
以nginx挂载为例
step1: 容器创建
docker run -itd --name=container_name 镜像id
step2: 进入容器查看nginx配置,日志,根目录
docker exec -it container_id /bin/bash
- 容器中 nginx配置文件在
/etc/nginx/
目录下面;- 容器中 nginx日志在
/var/log/nginx/
目录下面;- 容器中 nginx根目录在
/usr/share/nginx/html/
目录下面
特别注意
: 本地挂载到容器后, 会清空或者覆盖对应的容器目录,具体规则自己体会;
step3: 创建本地宿主机挂载目录
mkdir -p /data/nginx/{conf,html,logs}
step4: 拷贝容器中nginx所有配置文件到本地
docker cp 容器名:/容器目录/文件名 /宿主机目录/文件名
eg:
docker cp 45744:/etc/nginx /data/nginx/conf
很多人启动容器报错,就是因为没有这一步,挂载覆盖目录问题;
上面例子表示:拷贝容器中目录nginx放到宿主机/data/nginx/conf目录下面;
上面创建的容器只是为了查看对应配置的位置,查看后可以删除了;
step5: 创建容器,映射端口, 挂载配置文件目录和项目根目录
docker run -itd --name=nginx -p 80:80 -v /data/nginx/html:/usr/share/nginx/html -v /data/nginx/conf/nginx:/etc/nginx -v /data/nginx/logs:/var/log/nginx 2622
验证
- 在本地/data/nginx/html目录下写一个index.html文件,能访问就正常了;
- 如果
docker ps
发现容器未启动, 就要思考你的挂载和我的挂载的区别了; - 如果不能访问,查看本地防火墙是否开通80端口;
更多推荐
已为社区贡献1条内容
所有评论(0)