dockerにおけるプロセスのマッピングポートの変更について
このブログは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
あなたのサービスポート番号が変更されているのを見ることができれば、完了しました。クラウドサービスの同期には少し時間がかかるかもしれませんので、待ってから新しいポートの内容にアクセスできます。