|
|
行52: |
行52: |
| ウェブブラウザでアクセスして管理、確認できます。 | | ウェブブラウザでアクセスして管理、確認できます。 |
| | | |
− | == トラブルシューティング == | + | == [[Dockerトラブルシューティング]] == |
− | === ネットワーク関係 ===
| + | |
− | ==== コンテナのネットワークが回復していないせいでコンテナが再起動できない ====
| + | |
− | 計算機を再起動したあと、ユーザー定義で作成したoverlayネットワークが何やらダウンして、復旧できなかった。
| + | |
− | | + | |
− | で、計算機の停止前にそのoverlayネットワークに参加していたコンテナに対し、計算機の再起動後にdocker startでコンテナ再起動しようとしたところ、以下のようなエラーが出て再起動してくれなかった。
| + | |
− | <pre>
| + | |
− | Error response from daemon: Could not attach to network asuaxn22bff1sq8pqqay2sg64: context deadline exceeded
| + | |
− | Error: failed to start containers: <コンテナ名>
| + | |
− | </pre>
| + | |
− | | + | |
− | ネットワークを復活させられればstart可能となるのか、そもそも同じネットワークを復活させられるのか、よくわからなかったが、とりあえず以下のようにしてネットワークからコンテナを切り離し、そのうえでコンテナをstartとすれば、立ち上がってくれるようにはなった。(もちろんネットワークからは抜けたまま)
| + | |
− | <pre>
| + | |
− | > docker network disconnect <死んでるoverlayネットワークの名前> <コンテナ名>
| + | |
− | > docker start <コンテナ名>
| + | |
− | </pre>
| + | |
− | | + | |
− | 当該コンテナがどんなネットワークに属しているかは、
| + | |
− | <pre>
| + | |
− | > docker inspect <コンテナ名>
| + | |
− | </pre>
| + | |
− | で、"Networks"を見ればよい。(デフォルトで参加するネットワークは"bridge"で、それ以外を見ればよい)
| + | |
− | | + | |
− | (追記) 上記はoverlayネットワークがダウンしていたわけではなく、計算機再起動によりswarm通信用のポートが閉じていたためだった。[[DockerでcryoSPARCクラスタ#ホストマシンを再起動した後のクラスタの復旧]]
| + | |
− | | + | |
− | ==== swarmに参加できない ====
| + | |
− | * 症状
| + | |
− | とあるノードにて
| + | |
− | <pre>
| + | |
− | > docker swarm join --token *** 192.168.5.88:2377
| + | |
− | </pre>
| + | |
− | すると
| + | |
− | | + | |
− | <pre>
| + | |
− | Error response from daemon: unlinkat /var/lib/docker/swarm/certificates: read-only file system
| + | |
− | </pre>
| + | |
− | と出てきてswarmに参加できない
| + | |
− | | + | |
− | というか色々おかしくて、コンテナの削除もできない
| + | |
− | <pre>
| + | |
− | > docker rm csparc-worker-DL-Box
| + | |
− | </pre>
| + | |
− | * エラーメッセージ
| + | |
− | ** Error response from daemon: container 36060bd231466311ebcbbcbe1a44e25d76e37b43f77b76d2b6f284d8bd8ae157: driver "aufs" failed to remove root filesystem: error removing layers dir for aefdacf5ed56d31750ee2b73381bf0aa24afe93f91d15a7a89a2dbda90b5489f: remove /var/lib/docker/aufs/layers/aefdacf5ed56d31750ee2b73381bf0aa24afe93f91d15a7a89a2dbda90b5489f: read-only file system
| + | |
− | | + | |
− | | + | |
− | デーモンの再起動もできない
| + | |
− | <pre>
| + | |
− | > sudo systemctl restart docker
| + | |
− | </pre>
| + | |
− | * エラーメッセージ
| + | |
− | ** Error response from daemon: container 36060bd231466311ebcbbcbe1a44e25d76e37b43f77b76d2b6f284d8bd8ae157: driver "aufs" failed to remove root filesystem: error removing layers dir for aefdacf5ed56d31750ee2b73381bf0aa24afe93f91d15a7a89a2dbda90b5489f: remove /var/lib/docker/aufs/layers/aefdacf5ed56d31750ee2b73381bf0aa24afe93f91d15a7a89a2dbda90b5489f: read-only file system
| + | |
− | | + | |
− | | + | |
− | そして動かなくなった
| + | |
− | <pre>
| + | |
− | > docker ps
| + | |
− | Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
| + | |
− | </pre>
| + | |
2020年11月17日 (火) 12:27時点における最新版
Dockerを利用して研究、開発の環境を構築する方法を書いていきます。
用語の整理
なかなかに複雑なので用語を整理しておきます。間違っている部分もあるかもしれないので、適宜修正してください。
Docker用語の整理
用語
|
説明
|
Docker
|
|
Docker machine
|
|
Docker engine
|
|
Docker desktop
|
|
Docker CLI
|
|
Docker compose
|
|
Docker swarm
|
複数のホストマシン上のDockerをネットワークを介して相互接続する機能。
|
Kubernetes (K8s)
|
|
NVIDIA Docker
|
|
NVIDIA Container Toolkit
|
|
Dockerのネットワークについて
1つのホストマシン上のDocker上でのコンテナ間の通信や、複数のホストマシン上のDocker上でのコンテナ間の通信、自分の好みのDockerネットワークを組む方法などについて、公式ドキュメント( https://docs.docker.com/network/ )がある。
Docker swarm
複数のホストマシン上のDockerをネットワークを介して相互接続する機能。SwarmでDockerのクラスタを作った暁には、overlayと呼ばれるタイプのDockerネットワークを作成し、そのネットワークへ(複数のホストで動作している)コンテナを参加させることで、ホストをまたいでのコンテナ間の通信が可能となる。他にも色々できる。
https://docs.docker.com/network/ で、Networking overview ⇒ Bridge network tutorial ⇒ Overlay networking tutorial と読み進めると、機能やありがたみが分かりやすいのではないかと思う。
Portainer
DockerのGUI管理ツールです。https://www.portainer.io/
ウェブブラウザでアクセスして管理、確認できます。