首先用以下命令启动 Docker Nginx:
sudo docker run \
--name myNginx -d -p 8888:8888 \
-v /usr/share/nginx/html:/usr/share/nginx/html \
-v /usr/share/nginx/conf:/etc/nginx/conf.d \
-v /usr/share/nginx/log:/var/log/nginx\
-v /usr/share/nginx/crt:/etc/nginx/certs\
nginx
然后查看容器信息,输出:
$sudo docker container ls --no-trunc
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
****ab nginx "nginx -g 'daemon off;'" 2 hours ago Up 9 minutes 80/tcp, 0.0.0.0:8888->8888/tcp myNginx
$docker inspect myNginx | grep \"Ports -A 8
"Ports": {
"8888/tcp": [
{
"HostIp": "0.0.0.0",
"HostPort": "8888"
}
],
"80/tcp": null
},
奇怪,明明我没有映射 80 端口喔,为何还是映射了 80 端口,COMMAND 只是 nginx -g 'daemon off;' 没有其他命令。而且容器对应的 hostconfig.json 里面根本搜不到 80 这个关键字。config.v2.json 反而能搜到,删掉后重启容器,输出还是跟上面一样,所以想请教大家以下几个问题:
- Docker Nginx 为何会默认映射 80 端口?
- 如何修改 Docker Nginx 的端口映射?
- 很多教程第一步是
docker pull nginx而我没有这做,请问拉取不拉取有什么影响吗? - hostconfig.json 和 config.v2.json 的区别是什么?很多文章说两个都要修改,但是搜不到原因。
