内容纲要
使用docker过程中一些心得
-
docker容器使用自定义网络(私有网络)后,就不能再访问宿主机的端口了,在此踩了一些坑,反复尝试才发现时这个问题。
-
如果不想让docker的端口被其他容器或宿主机访问,可以映射端口时,在端口前这顶本机ip:127.0。0.1,这样只有宿主机本身可以使用这个端口。例如:
-p 127.0.0.1:80:80
-
还是docker使用私有网络时,可以不映射端口,私有网络内部的容器可以通过
容器名称:端口
的方式进行访问,切记容器内部进行端口监听时,不能将ip指定为127.0.0.1
,这样指定话,即使再同一个私有网络的容器也不能访问,只能容器自身才能访问监听端口 -
更新docker容器启动模式
#no 默认值,表示容器退出时,docker不自动重启容器 docker run --restart=no [容器名] #on-failure 若容器的退出状态非0,则docker自动重启容器,还可以指定重启次数,若超过指定次数未能启动容器则放弃 docker run --restart=on-failure:3 [容器名] #always 容器退出时总是重启 docker run --restart=always [容器名] #unless-stopped 容器退出时总是重启,但不考虑Docker守护进程启动时就已经停止的容器 docker run --restart=unless-stopped [容器名] #如果容器启动时没有设置–restart参数,则通过下面命令进行更新: docker update --restart=always [容器名]
-
docker容器内部访问宿主机
容器内部应用如果需要访问宿主机端口号,应该使用host.docker.internal
来代替宿主机的 IP 地址。例如,如果宿主机的 IP 地址为 192.168.1.1,则容器内部应用可以通过访问http://host.docker.internal:80
来访问宿主机的 80 端口。
host.docker.internal
是一个虚拟 IP 地址,它会自动解析为宿主机的 IP 地址。使用host.docker.internal
可以避免在容器内部配置宿主机的 IP 地址,从而简化容器的部署和管理。
是否收到