dockerコンテナネットワークの作成と接続確認
はじめに
くーばねてすをやっつけるために新たなステージに上がるためについにdockerさんに会いに行くことにした。dockerさんと仲良くなることでコンテナシステムの仕組みの理解とくーばねてすを倒すための調査をする。
概要
■ユーザー定義の専用ネットワークを作成する
■外部向けにポートを公開する
をまとめた!(^^)
■コンテナネットワークのコマンド
|コマンド|意味|
| --- | --- | --- |
|docker network ls|コンテナネットワークをリスト表示する|
|docker network inspect|ネットワークの詳細を表示する|
|docker network create|コンテナネットワークを生成する|
|docker network rm|コンテナネットワークを削除する|
|docker network connect|コンテナをコンテナネットワークに接続する|
|docker network disconnect|コンテナをコンテナネットワークから引き離す|
■ユーザー定義の専用ネットワークを作成する
$ docker network create ネットワーク名
作成したネットワークをコンテナにアタッチする。ネットワークをアタッチする時はdocker runコマンドに--networkオプションを付けてネットワーク名を指定する。
$ docker run --network ネットワーク名 ...
起動されたコンテナは同じコンテナネットワークにあるコンテナとだけ疎通される。
ここで起動したコンテナはデフォルトのbridgeネットワークとは疎通できない。
■外部向けにポートを公開する
コンテナポートをコンテナホストのIPアドレス上に公開して他のパソコンからコンテナホストの中のコンテナにアクセスして利用できるようになるには
$ docker run -p ホストの公開ポート番号:コンテナポート番号 ...
でコンテナを起動する。これによってコンテナはホストの公開ポートと繋がり、外部からアクセスできる。
パソコンからURLアクセステストをする。
$ curl http://localhost:8080/
StatusCode : 200
: OK
Content : <!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
body {
width: 35em;
margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif;
}
</style>
<...
RawContent : HTTP/1.1 200 OK
Connection: keep-alive
Accept-Ranges: bytes
Content-Length: 612
Content-Type: text/html
Date: Fri, 12 Feb 2021 21:19:46 GMT
ETag: "5fd8c14a-264"
Last-Modified: Tue, 15 Dec 2020 ...
Forms : {}
Headers : {[Connection, keep-alive], [Accept-Ranges, bytes], [Content-Length, 612], [Content-Type, text/html]...}
Images : {}
InputFields : {}
Links : {@{innerHTML=nginx.org; innerText=nginx.org; outerHTML=<A href="http://nginx.org/">nginx.org</A>; outerText=nginx.org; tagName=A; href=http://nginx.org
/}, @{innerHTML=nginx.com; innerText=nginx.com; outerHTML=<A href="http://nginx.com/">nginx.com</A>; outerText=nginx.com; tagName=A; href=http://nginx.
com/}}
ParsedHtml : mshtml.HTMLDocumentClass
RawContentLength : 612
nginxにアクセスできた。
次にパソコンのIPアドレスからコンテナにアクセステストをしてみる。
$ curl http://192.168.xxx.xxx:8080/
StatusCode : 200
StatusDescription : OK
Content : <!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
body {
width: 35em;
margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif;
}
</style>
<...
RawContent : HTTP/1.1 200 OK
Connection: keep-alive
Accept-Ranges: bytes
Content-Length: 612
Content-Type: text/html
Date: Fri, 12 Feb 2021 21:29:04 GMT
ETag: "5fd8c14a-264"
Last-Modified: Tue, 15 Dec 2020 ...
Forms : {}
Headers : {[Connection, keep-alive], [Accept-Ranges, bytes], [Content-Length, 612], [Content-Type, text/html]...}
Images : {}
InputFields : {}
Links : {@{innerHTML=nginx.org; innerText=nginx.org; outerHTML=<A href="http://nginx.org/">nginx.org</A>; outerText=nginx.org; tagName=A; href=http://nginx.org
/}, @{innerHTML=nginx.com; innerText=nginx.com; outerHTML=<A href="http://nginx.com/">nginx.com</A>; outerText=nginx.com; tagName=A; href=http://nginx.
com/}}
ParsedHtml : mshtml.HTMLDocumentClass
RawContentLength : 612
アクセスできた。
コンテナネットワークの削除。
$ docker network rm ネットワーク名
または
$ docker network prune ネットワーク名
まとめ
最近会社のS先輩がほんとにうざすぎるから、他の先輩とS先輩を始末する計画を立ててる!
Discussion