Anarckk
一种是将原来的容器提交成镜像,然后利用新的建立的镜像重新建立一个带有端口映射的容器,不推荐这种办法
另一种就是改容器配置文件(也是我推荐的解决办法):配置文件在 /var/lib/docker/containers/[hash_of_the_container]/hostconfig.json 还有 config.v2.json 这俩文件
hash_of_the_container 可以通过 docker inspect 容器名字 来查看
id 就是 容器的 hash 数值,在 hostconfig.json 里有 “PortBindings”:{} 这个配置项,可以改成 “PortBindings”:{“80/tcp”:[{“HostIp”:””,”HostPort”:”8080”}]} 这里 80 是容器端口, 8080 是本地端口, 然后在 config.v2.json 里面添加一个配置项 “ExposedPorts”:{“80/tcp”:{}} , 将这个配置项添加到 “Tty”: true, 前面,我不知道添加到别的地方会不会有影响,因为经过对比正常的端口映射配置项是在这个位置,这个就是将容器内部端口暴露出来,如果不加这一句端口映射不会成功的,最后重启 docker的守护进程 service docker restart
这里有个问题就是重启后 用docker ps -a 是看不到端口映射的,但实际已经映射好了,我正常在新建一个带有端口映射容器的时候,重启 docker的守护进程,端口映射也不会显示出来,但是通过docker inspect 容器名 可以看到配置项已经修改成功了。
————————————————
版权声明:本文为CSDN博主「Hello_wshuo」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/chouzhou9701/article/details/86725203
安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
1 | yum install -y yum-utils device-mapper-persistent-data lvm2 |
设置yum源
1 | yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo |
可以查看所有仓库中所有docker版本,并选择特定版本安装
1 | yum list docker-ce --showduplicates | sort -r |
安装Docker,命令:yum install docker-ce-版本号,我选的是17.12.1.ce,如下
1 | yum install docker-ce # 安装最新版 |
装好了