docker - 容器commit为镜像,再run成container, 端口映射丢失 该如何理解.
ringa_lee
ringa_lee 2017-04-24 09:09:34
0
3
797

问个问题啊, 我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参数信息.

我的问题是: 如何理解新生成的容器没有映射端口和 内存限制这两项信息? 什么参数是属于容器的,什么参数是属于镜像的呢?

ringa_lee
ringa_lee

ringa_lee

모든 응답(3)
阿神

컨테이너가 미러에 커밋되면 컨테이너 자체도 동시에 중지되므로 정적 파일만 유지됩니다.

巴扎黑

포트를 예약하거나 dockerfile을 사용하여 포트를 열고, 컨테이너 생성 시 -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"

左手右手慢动作

포트 매핑은 컨테이너에 속하며 이미지에는 존재하지 않습니다. 실행될 때마다 지정해야 합니다.

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!