dockerポートマッピング
例1:コンテナにhttpdサービスがインストールされています.外部ネットワークにどのようにアクセスさせますか.まずcentosミラーを使用して新しいコンテナを作成し、そのコンテナにhttpサービスをインストールし、 を起動します.コンテナを新しいミラー(centos-httpd)に導き、新しいミラーを使用してコンテナを作成し、ポートマッピング を指定します.例:docker commit-m"centos_httpd"-a"aminglinux"313 centos_httpd:hu 説明:centos_httpdは容器の名前、huはtagの名前313は容器のid httpd:httpd-k startを起動 編集1.html:vi/var/www/html/1.html適当に書く このコンテナを終了:exit テスト:curl 127.0.0.1:523/1.html (このipはホストのIpです)コンテナ内のサイト に直接アクセスできます.-pの後にもIP:port:ip:portのフォーマットがサポートされています.例えば、 -p 127.0.0.1:8080:80 は、ローカルのポートを書かずにipだけを書くこともでき、1つのポート を任意に割り当てることができます. -p 127.0.0.1::80
例2:dockerコンテナはどのようにして外部ネットワークをsshで接続しますか?
以下に示すシステムはcentos 7コンテナベースです
1コンテナを作成してログインする
docker run -it centos/bin/bash
2 sshdサービスのインストール
yum install passwd openssl openssh-server -y
3 sshdサービスを開始し、sshd_confプロファイルを変更する
/usr/sbin/sshd -D
エラーは次のとおりです.
解決策:
警告が表示される可能性がありますが、結果には影響しません.
4コンテナrootにパスワードを設定する
passwd rootパスワードを2回入力
5、パスワードを変更してexitコマンドを実行して終了すると、ホストマシンのshellに戻り、次のコマンドを実行してコンテナをミラーにコミットします.
docker commit 7b7 hu/centos7-ssh ##7 b 7は先ほど操作した容器idです
7473918b361eefd14548991654f99b8138bf203d686b46aa3ec7c25a6b7c0f20
docker p_w_picpathsの実行 生成されたミラーのコミット
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
hu/centos7-ssh latest 7473918b361e 18 seconds ago 279 MB
6新しいコミットされたミラーを新しいコンテナに生成し、ポートをマッピング
次にdocker psはポートマッピングに成功したかどうかを確認します
7ホストがこのコンテナに接続
ssh root@localhost-p 10022パスワードの入力を求める
端末ソフトウェアでこのコンテナ、ip書き込みホストのip、ポートが10022であることも可能である
docker run -itd -p 5123:80 centos_httpd bash //-p , 80 5123
docker exec -it container_id bash
例2:dockerコンテナはどのようにして外部ネットワークをsshで接続しますか?
以下に示すシステムはcentos 7コンテナベースです
1コンテナを作成してログインする
docker run -it centos/bin/bash
2 sshdサービスのインストール
yum install passwd openssl openssh-server -y
3 sshdサービスを開始し、sshd_confプロファイルを変更する
/usr/sbin/sshd -D
エラーは次のとおりです.
Could not load host key: /etc/ssh/ssh_host_rsa_key
Could not load host key: /etc/ssh/ssh_host_ecdsa_key
Could not load host key: /etc/ssh/ssh_host_ed25519_key
解決策:
ssh-keygen -q -t rsa -b 2048 -f /etc/ssh/ssh_host_rsa_key -N ''
ssh-keygen -q -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key -N ''
ssh-keygen -t dsa -f /etc/ssh/ssh_host_ed25519_key -N ''
vi /etc/ssh/sshd_config
sed -i 's/UsePAM yes/UsePAM no/g' /etc/ssh/sshd_config
警告が表示される可能性がありますが、結果には影響しません.
4コンテナrootにパスワードを設定する
passwd rootパスワードを2回入力
5、パスワードを変更してexitコマンドを実行して終了すると、ホストマシンのshellに戻り、次のコマンドを実行してコンテナをミラーにコミットします.
docker commit 7b7 hu/centos7-ssh ##7 b 7は先ほど操作した容器idです
7473918b361eefd14548991654f99b8138bf203d686b46aa3ec7c25a6b7c0f20
docker p_w_picpathsの実行 生成されたミラーのコミット
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
hu/centos7-ssh latest 7473918b361e 18 seconds ago 279 MB
6新しいコミットされたミラーを新しいコンテナに生成し、ポートをマッピング
docker run -it -p 10022:22 hu/centos7-ssh /usr/sbin/sshd -D
次にdocker psはポートマッピングに成功したかどうかを確認します
7ホストがこのコンテナに接続
ssh root@localhost-p 10022パスワードの入力を求める
端末ソフトウェアでこのコンテナ、ip書き込みホストのip、ポートが10022であることも可能である