2016-10-21 2 views
0

runコマンドで引数を渡さずにコンテナにポートをバインドする方法はありますか?私は 'docker run'コマンドでコンテナを起動するのが好きではないので、-p引数を使用することは私のオプションではありません。私は 'docker start containername'コマンドでコンテナを始めるのが好きです。ドッカーサーバのホスト名をポート番号(http://dockerserver:8081)で指定したいのですが、ポート8081でリッスンしているコンテナのアプリケーションに転送する必要があります。私の設定はAzureにありますが、Azureドッカープラグイン過小のように見えます。私はexposeコマンドについて読みましたが、外部からコンテナへのアクセスを得るために 'docker run -p'コマンドを使用する必要があるようです。どんな提案も非常に高く評価されます。Dockerのポート

答えて

2

docker runは、docker create + docker startのショートカットです。ポートは、コンテナが作成されたときに露出する必要があるので、-pオプションがdocker createで提供されています:

docker create -d -p 80:80 --name web nginx:alpine 
docker start web 

ポートパブリッシングのみけれどもポートを行います。

あなたがコンテナに渡されたホスト名をたい場合は、コマンドオプションまたは環境変数(可能性が高い)でそれを行う必要があります - DockerfileにENVで定義され、docker create-eで渡されました。

+0

申し訳ありませんが、質問に答えると少し混乱しました。私は実際に "docker run"コマンドで名前付きコンテナを作成してから、 "docker start {container name}"コマンドを使用して起動しました。あなたの答えは正しい方向で私を指摘しましたが、私は "ドッカー作成"コマンドを使用しませんでした。代わりに私は "docker run"を使い、ポートを-pで指定しました。それは複数のポートで機能していても大丈夫です(ちょうど必要なポートごとに-p port:portを指定しなければなりませんでした。)その後、私は "docker start {container name}"でドッキングを開始しました。あなたの援助。 – johnslippers

関連する問題