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

问个问题啊, 我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)
阿神

コンテナがミラーにコミットされると、コンテナ自体もこの時点で停止されるため、静的ファイルのみが保持されます

いいねを押す +0
巴扎黑

ポートを予約するか、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;ned"

いいねを押す +0
左手右手慢动作

ポートマッピングはコンテナに属しており、イメージには存在しません。実行するたびに指定する必要があります。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート