1. コンテナの設定ファイルを編集してポートを変更します;
docker run 运行启动时 -p 可以指定容器启动映射端口 (0.0.0.0:18080 8080)
設定ファイルを編集して変更できます; (Docker を再起動する必要があります)コンテナだけでなくサービスが有効になります。コンテナを再起動できる場合のみ上書きされます)
2. ポートを変更する必要があるコンテナを見つけます
docker ps
3. コンテナ ID に従って docker 設定ファイルを見つけます (コンテナ ファイル設定のデフォルトは /var/lib/docker/containers です)
docker のデフォルトの保存場所を変更したため。 (Docker info で docker 情報を表示できます)
4. docker のデフォルトの環境変数を変更します。デフォルトの構成は /var/lib/docker です。
デフォルトの環境システム構成をdocker 起動ファイル" / etc/default/docker ":
環境ファイル設定の追加:
# vi /usr/lib/systemd/system/docker.service
[サービス]に追加
EnvironmentFile=-/etc/default/docker #添加配置文件
[インストール]に追加
EnvironmentFile=-/etc/default/docker
(推奨チュートリアル: docker チュートリアル)
5. コンテナーを停止します
docker stop [ID/name]
6. Docker サービスを停止します
systemctl stop docker
7 . コンテナの構成ファイル hostconfig.json
config.v2.json を編集および変更します。マップされたアドレスはコンテナの起動時にのみ表示されるため、これを行う必要はありません。
/data/docker/containers/0731470143a94579b837b295f4c03a5f283e2bc1b0be746e7da451b9eb817120/hostconfig.json 容器配置命名就是 以 CONTAINER ID 容器ID开头的
8. hostconfig.json ファイルを表示して編集します;
jq . ./hostconfig.json # jq 查看json 格式文件 # 更改 HostPort 就是映射的宿主机端口。
9. Docker サービスを開始してコンテナー
docker start [ID/NAME] systemctl start docker docker ps
10. コンテナを起動すると、iptables が自動的に追加されるので、server iptables save を直接実行するだけです。または、心配しない場合は、ポートを直接追加することもできます:
宿主机添加端口: iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 58080 -j ACCEPT 宿主机 nat 映射: iptables -A DOCKER ! -i docker0 -p tcp -m tcp --dport 58080 -j DNAT --to-destination 172.16.4.3:8080
注:
docker がコンテナを操作または追加するとき、最初にサービス iptables を保存し、次に編集して追加し、再起動します。
コンテナを追加するとデフォルトでファイアウォールへのマッピングが追加されますが、iptablesを再起動すると無効になるため、保存してから再起動する必要があります。
以上がDockerでマップされたポートを変更する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。