##はじめに
Dockerを初めて使っている初心者エンジニアです。
コンテナを起動したり、イメージを作っていく中で、同じエラーによくつかまるので備忘録としてまとめます。
Dockerの基本コマンドの確認
(1) イメージをDockerリポジトリから取得 or Docker fileからビルド
↓ $ docker image pull
or $ docker image build
(2) コンテナの生成
↓ $ docker container create
(3) コンテナの起動
↓ $ docker container start
(4) コンテナの停止
↓ $ docker container stop
(5) コンテナの削除
$ docker container rm
※(2)と(3)を同時に行う
$ docker container run
複数のコンテナをまとめて操作するコマンドも確認
(1) docker-compose.ymlを用意
↓
(2) イメージを複数のコンテナをビルド
↓ $ docker-compose build
(3) 複数のコンテナを生成・起動
↓ $ docker-compose up
(4) 複数のコンテナを停止
↓ $ docker-compose stop
(5) 複数のコンテナを削除
$ docker-compose rm
※(4)と(5)を同時に行う
$ docker-compose down
###それでは本題のつまづいたエラーたち
####エラー①
Cannot connect to the Docker daemon. Is the docker daemon running?
原因:Dockerが起動していない。
対策:docker run
で起動させる。
◆ コンテナをバックグラウンドで起動させたい場合は-d
(--detach)をオプションでつける。
docker run -d
ホストのシェルからコンテナプロセスをデタッチして、バックグラウンドでコンテナを起動する。これによりシェルで入力操作が可能になる。
####エラー②
"docker run" requires at least 1 argument.
原因:実行するイメージが指定されていない
対策: docker run [オプション] イメージ名
で実行する
https://stackoverflow.com/questions/56308424/docker-container-run-requires-at-least-1-argument
https://docs.docker.com/engine/reference/run/
####エラー③
docker: Error response from daemon: driver failed programming external connectivity on endpoint
原因:他のコンテナとポートが被っている
対策:ホスト側のポート番号を変更する。
####エラー④
Error response from daemon: You cannot remove a running container . Stop the container before attempting removal or force remove
原因:起動中はコンテナを削除できない。
対策:docker stop <CONTAINER IDまたはNAME>
でコンテナを停止させ、docker rm <CONTAINER IDまたはNAME>
で削除する。
####エラー⑤
Error response from daemon: conflict: unable to remove repository reference "nginx" (must force) - container 1ea55b6d3589 is using its referenced image 4f380adfc10f
原因:ドッカーイメージを削除する際(docker rmi nginx
)にコンテナ(1ea55b6d3589)が参照しているため、消すことができない。
対策:docker rm 1ea55b6d3589
の後にdocker rmi nginx
を実行する。
##おわりに
まだまだ基礎部分を学習中で、これからまだまだエラーを頻発させると思うので
備忘録の厚みも増やしていきます。