2017年9月25日月曜日

Dockerで後からポートフォーワーディング(ポートバインディング)を変更する

コンテナを作成後はバインドされたポート番号を追加・変更できないと思っていましたが、できる模様です。

1.まずコンテナIDを取得します。
root@ubuntu:~# docker ps | grep sandbox-hdp
5a9ac4445e23        sandbox-hdp         "/usr/sbin/sshd -D"   13 days ago         Up 14 minutes       0.0.0.0:1000->1000/tcp, 0.0...

2.Dockerサービスを止めます。
root@ubuntu:~# service docker stop

3.hostconfig.jsonとconfig.v2.jsonを変更します。
下記の例では6182を追加しています。
root@ubuntu:~# vim /var/lib/docker/containers/5a9ac4445e23fa04dc567f3f72d6bf21a349a4fb1fd08d7442477cd283450a6a/hostconfig.json
:%!python -m json.tool
        ...
        ],
        "6080/tcp": [
            {
                "HostIp": "",
                "HostPort": "6080"
            }
        ],
        "6182/tcp": [
            {
                "HostIp": "",
                "HostPort": "6182"
            }
        ],
        "61310/tcp": [
            { ...

root@ubuntu:~# vim /var/lib/docker/containers/5a9ac4445e23fa04dc567f3f72d6bf21a349a4fb1fd08d7442477cd283450a6a/config.v2.json
:%!python -m json.tool
            ...
            "61310/tcp": {},
            "6182/tcp": {},
            "6188/tcp": {},
            ...

4.Dockerサービスを開始後、コンテナを開始します。
root@ubuntu:~# service docker start
root@ubuntu:~# docker start sandbox-hdp

確認
root@ubuntu:~# docker ps | grep sandbox-hdp
5a9ac4445e23        sandbox-hdp         "/usr/sbin/sshd -D"   13 days ago         Up 19 minutes       0.0.0.0:10..., 0.0.0.0:6182->6182/tcp, 0.0.0.0:...   sandbox-hdp

0 件のコメント:

コメントを投稿