问个问题啊, 我run 了一个container hello
,通过-p参数 映射主机端口 和 容器端口.
sudo docker run -d --name hello -p 8080:8080 -m 268435456 ubuntu:14.04 bin/bash -c "while true;do echo hello $(date); sleep 2; done"
然后通过 commit 命令生成新的镜像 sudo docker commit hello hello-image
.
在然后, 基于该镜像,使用docker run -d hello-image
重新运行一个新的容器(这个时候并没有指定-p参数).
新生成的容器 是没有 端口映射的,而且也没有之前容器设置的-m参数信息.
我的问题是: 如何理解新生成的容器没有映射端口和 内存限制这两项信息? 什么参数是属于容器的,什么参数是属于镜像的呢?
容器commit成鏡像時,只會保留靜態文件,因為你此時的容器本身也是stop的
你要保留端口,要么使用dockerfile 開放端口出來,並且創建容器的時候使用-P 命令。
$(date); sleep 2; done"🎜要么仍然運行類似你上面的寫明端口的方式。否則不會開放連接埠出來,所有跟宿主機有關聯的,都是需要創建容器的時候,動態指定。
sudo docker run -d --name hello -p 8080:8080 -m 268435456 ubuntu:14.04 bin/bash -c "while true;do echo hello $(date); sleep 2; done"
埠對映是屬於container的, 不會存在image中, 每次run時要再指定.