docker stack deploy
コマンドを使用してスタック(1つのサービスを含む)をデプロイし、swarm上のアプリケーションから2つのインスタンスを実行しようとしました!これが私のdocker-composeファイルです:
version: "3"
services:
server:
image: makbn/thumbnailer-server:v1
deploy:
replicas: 2
update_config:
parallelism: 2
resources:
limits:
cpus: "0.1"
memory: 1024M
restart_policy:
condition: on-failure
ports:
- 8080:8080
networks:
- server_network
networks:
server_network:
Sudo docker stack deploy -c ./docker-compose.yml ts
コマンドを実行した後、私のスタックはswarmに正常にデプロイされましたが、ここに私のdocker stack ps ts
出力があります:
ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR PORTS
8zmjp6wt47ki ts_server.1 makbn/thumbnailer-server:v1 fanap9-lp Ready Rejected 2 seconds ago "mkdir /var/lib/docker: permis…"
88vizpnabbi8 \_ ts_server.1 makbn/thumbnailer-server:v1 fanap9-lp Shutdown Rejected 7 seconds ago "mkdir /var/lib/docker: permis…"
609hl7hy7tnu \_ ts_server.1 makbn/thumbnailer-server:v1 fanap9-lp Shutdown Rejected 12 seconds ago "mkdir /var/lib/docker: permis…"
gif8fvbgdhpy \_ ts_server.1 makbn/thumbnailer-server:v1 fanap9-lp Shutdown Rejected 17 seconds ago "mkdir /var/lib/docker: permis…"
x60x9c6albe5 \_ ts_server.1 makbn/thumbnailer-server:v1 fanap9-lp Shutdown Rejected 22 seconds ago "mkdir /var/lib/docker: permis…"
ugvbw1gpdp8e ts_server.2 makbn/thumbnailer-server:v1 fanap9-lp Ready Rejected 2 seconds ago "mkdir /var/lib/docker: permis…"
p34x1kp55ch8 \_ ts_server.2 makbn/thumbnailer-server:v1 fanap9-lp Shutdown Rejected 7 seconds ago "mkdir /var/lib/docker: permis…"
3exxflukrl4y \_ ts_server.2 makbn/thumbnailer-server:v1 fanap9-lp Shutdown Rejected 12 seconds ago "mkdir /var/lib/docker: permis…"
ud83xfj5nefj \_ ts_server.2 makbn/thumbnailer-server:v1 fanap9-lp Shutdown Rejected 17 seconds ago "mkdir /var/lib/docker: permis…"
ws35na8up793 \_ ts_server.2 makbn/thumbnailer-server:v1 fanap9-lp Shutdown Rejected 22 seconds ago "mkdir /var/lib/docker: permis…"
そして、完全なエラーメッセージはmkdir/var/lib/docker:権限が拒否されました
もう1つの問題は、docker service create
コマンドサービスをデプロイして正常に実行してスタックを作成しようとしたが、ローカルホストからサービスにアクセスできないことです。 2つの質問があります。
(注:snap
経由でdockerをインストールした可能性があるユーザーにのみ関連します)
snap
にdockerをインストールしたため、この問題が発生しました。つまり、docker-composeがdockerのインストールについて混乱していました。私のシステムが実際に/var/lib/docker
でdockerを使用していたため、/snap/bin/docker
はファイル権限エラーを出していました
これが当てはまるかどうかを確認するには、which docker
を実行します。 /usr/bin/docker
が返された場合は、通常のアプリのインストールが完了しています。パス/snap/
で何かが返された場合は、snap dockerパッケージからインストールされていることを意味します(これは維持されなくなりました。参照: https://github.com/docker/docker-snap )
この問題を修正するために、最初にsnap remove docker
を使用してsnap docker installをアンインストールし、次にdocker
セットアップ手順 https://docs.docker.com/install/linux)でインストールしました/ docker-ce/ubuntu /#docker-ee-customers 。それをしたら、問題なくスタックをデプロイできました。
代わりにdocker snap install dockerのアイデアが頭に浮かびましたが、リポジトリをセットアップしてSudo apt install docker.io
を実行してインストールする方法が適しているようです。
数時間前にこの問題のトラブルシューティングを行っていましたが、同じPermission Deniedエラーが原因でコンテナが拒否されてシャットダウンされたと表示されました。また、サービスを手動で作成してスケーリングすることはできますが、.yml
で同じ結果を達成することはできません。
Getting Started Guide に続いて、docker-compose.yml
の例ではversion: "3"
を使用していますが、対応するCompose File Format番号と一致すると想定されているとは言わないでください。私の番号は、インストールしたDockerのバージョンに基づいて「3.7」になり、docker-compose.yml
で変更した後、docker stack deploy -c docker-compose.yml some-name
を介してコンテナーを意図どおりに複製できました。
Compose File Format(CFF):Docker Engine Release(DCR)
CFF DCR
3.7 18.06.0+
3.6 18.02.0+
3.5 17.12.0+
3.4 17.09.0+
3.3 17.06.0+
3.2 17.04.0+
3.1 1.13.1+
3.0 1.13.0+
2.4 17.12.0+
2.3 17.06.0+
2.2 1.13.0+
2.1 1.12.0+
2.0 1.10.0+
1.0 1.9.1.+
参照ドキュメントが利用可能( ここ )
無効から有効への変更の例
# From the Example
version: "3"
services:
web:
image: username/repo:tag
# What's actually required (in my case, because I'm using docker version 18.09.2)
version: "3.7"
services:
web:
image: username/repo:tag
変更後の結果
owner@test_server:~/myyml$ docker service ls
ID NAME MODE REPLICAS IMAGE PORTS
baxip2g6xgzy first-swarm_web replicated 5/5 [username]/getting-started:my-serv *:4000->80/tcp
owner@test_server:~/myyml$ docker service ps first-swarm_web
ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR PORTS
ss6jn07htkhp first-swarm_web.1 [username]/getting-started:my-serv test_server Running Running 37 minutes ago
n5eael5ae3jl first-swarm_web.2 [username]/getting-started:my-serv test_server Running Running 37 minutes ago
kzb3l1hzdpet first-swarm_web.3 [username]/getting-started:my-serv test_server Running Running 37 minutes ago
6ijgoebvhhdg first-swarm_web.4 [username]/getting-started:my-serv test_server Running Running 37 minutes ago
h0mbz1fp1id6 first-swarm_web.5 [username]/getting-started:my-serv test_server Running Running 37 minutes ago