dockerにおけるプロセスのマッピングポートの変更について

1779 ワード

このブログはdockerに配備されていますので、初期起動時に8090ポートを使いました。とても不便です。ポートを80に変更する前に、80ポートが既にnginxに割り当てられていることに気づきました。
which nginx
cd /usr/local/nginx/conf
vim nginx.conf
serverの部分の中に見つけました。
listen 80 default_server;
80を必要なポートに変えてドンゴンを再開します。
service nginx restart
次に、ポートをnetstatで確認し、80ポートが占有されているかどうかを確認します。
lsof -i tcp:80
ojbkは占有されていなければいいです。そして、dockerのポート番号を修正します。
docker ps
修正したいサービスのIDを見つけました。つまり、hashを一列にして、dockerサービスを停止します。
systemctl stop docker
続いてdockerのパスの下に行きます。
cd /var/lib/docker/containers/
各サービスのフォルダはhashで命名されていることが分かりますので、あなたが欲しいサービスの場所のフォルダを見つけたら、引き続きhostconfig.jsonの配置ファイルを見つけられます。
vim hostconfig.json 
次のようなものが見つかります。
"PortBindings":{"8090/tcp":[{"HostIp":"","HostPort":"80"}]}
8090/tcpはあなたのdockerの中のポート番号です。そして、後のHostPortはあなたのホストのポート番号です。したがって、ホストのポート番号を80に変更すればいいです。修正が完了したら、dockerを再起動します。
systemctl start docker
docker ps
あなたのサービスポート番号が変更されているのを見ることができれば、完了しました。クラウドサービスの同期には少し時間がかかるかもしれませんので、待ってから新しいポートの内容にアクセスできます。