Memo

メモ > サーバ > 各論: Docker > トラブル

■トラブル
■イメージを削除できない 削除しようとするとエラー
$ docker image rm 7a8792605f8c Error response from daemon: conflict: unable to delete 7a8792605f8c (must be forced) - image is referenced in multiple repositories
オプション「-f」を指定すると削除できることがある
$ docker image rm 7a8792605f8c -f
それでも削除できない
$ docker image rm 7a8792605f8c -f Error response from daemon: conflict: unable to delete 7a8792605f8c (cannot be forced) - image has dependent child images
リポジトリとタグを指定すると削除できる
docker image rm 949004901725.dkr.ecr.ap-northeast-1.amazonaws.com/debian_php74_apache:1.1.0
【docker】〜image has dependent child images 対応〜 - Qiita https://qiita.com/s-inoue-git/items/3096b86fe1bbb1ad155d ■Dockerが配置したファイルを上書きできない Dockerが配置したファイルを直接FTPで上書きできない 以下で解決するかと思ったが、
# mkdir /home/ec2-user/docker/wordpress/html # chown ec2-user. /home/ec2-user/docker/wordpress/html # chmod 0777 /home/ec2-user/docker/wordpress/html # chmod g+s /home/ec2-user/docker/wordpress/html
Dockerによって作成されたファイルは以下の所有者になってしまう
# ll -rw-r--r-- 1 33 tape 420 12月 1 2017 index.php
rootによって作成されたファイルは以下のように ec2-user グループになるので謎
# ll -rw-r--r-- 1 root ec2-user 10 5月 16 12:05 test.txt
…だったが、このファイル内「ホストOSとコンテナで相互にファイルを読み書き(Linux環境)」の方法で一応は解決した より良い方法が無いかは、また検証したい ■Conflict となって起動できない Dockerでコンテナ名が重複してしまった時の古いコンテナ削除方法 (Conflictエラー) | FRONTL1NE (フロントライン) https://frontl1ne.net/2019/05/docker-fix-conflict-error/ コンテナを起動すると「すでに名前が使われている」というエラーになる
$ docker-compose -p campus up -d Creating network "campus_compose_network" with driver "bridge" Creating php ... error Creating mariadb ... Creating mailhog ... Creating mysql ... ERROR: for php Cannot create container for service php: Conflict. The container name "/php" is already in use by contaiCreating mysql ... error be able to reuse that name. Creating mariadb ... done container "f671ca345d4aa2db89003e1f35a39aa4aef9330f95e2cda1d0205364a0762e38". You have to remove (or rename) that contaiCreating mailhog ... done ERROR: for php Cannot create container for service php: Conflict. The container name "/php" is already in use by container "2c32a66a679a1e3905aa8caa58ee6d29a6bf6af3d8fb03f5fc43f9dee07f0dce". You have to remove (or rename) that container to be able to reuse that name. ERROR: for mysql Cannot create container for service mysql: Conflict. The container name "/mysql" is already in use by container "f671ca345d4aa2db89003e1f35a39aa4aef9330f95e2cda1d0205364a0762e38". You have to remove (or rename) that container to be able to reuse that name. ERROR: Encountered errors while bringing up the project.
いったん終了する
$ docker-compose -p campus down Stopping mailhog ... done Stopping mariadb ... done Removing mailhog ... done Removing mariadb ... done Removing network campus_compose_network
コンテナ一覧には何も表示されない
$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
起動していないコンテナも含めて表示すると、 「example_php」「example_mysql」によって「php」「mysql」の名前が使われていることが確認できる 8日前にエラーで終了したままになっているものみたい
$ docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 2c32a66a679a example_php "docker-php-entrypoi…" 8 days ago Exited (0) 8 days ago php f671ca345d4a example_mysql "docker-entrypoint.s…" 8 days ago Exited (0) 8 days ago mysql 068065dc757c example_nginx "/docker-entrypoint.…" 8 days ago Exited (137) 8 days ago nginx 8dd90e083667 5f2e213b9d0c "/bin/sh -c 'apt-get…" 3 months ago Exited (100) 3 months ago determined_roentgen f6eef1ae5a21 6adef0082129 "/bin/sh -c 'apt-get…" 4 months ago Exited (100) 4 months ago festive_franklin 79ebe67688db 6adef0082129 "/bin/sh -c 'apt-get…" 4 months ago Exited (100) 4 months ago gracious_driscoll 2a02cc7dfd35 65a3756de1d8 "/bin/sh -c 'docker-…" 4 months ago Exited (1) 4 months ago thirsty_sammet 1f5d6e0395dc 8e17cf6d251e "/bin/sh -c 'docker-…" 4 months ago Exited (1) 4 months ago jolly_noether
それぞれ、IDを指定して終了させる
$ docker rm 2c32a66a679a $ docker rm f671ca345d4a $ docker rm 068065dc757c
終了できた
$ docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 8dd90e083667 5f2e213b9d0c "/bin/sh -c 'apt-get…" 3 months ago Exited (100) 3 months ago determined_roentgen f6eef1ae5a21 6adef0082129 "/bin/sh -c 'apt-get…" 4 months ago Exited (100) 4 months ago festive_franklin 79ebe67688db 6adef0082129 "/bin/sh -c 'apt-get…" 4 months ago Exited (100) 4 months ago gracious_driscoll 2a02cc7dfd35 65a3756de1d8 "/bin/sh -c 'docker-…" 4 months ago Exited (1) 4 months ago thirsty_sammet 1f5d6e0395dc 8e17cf6d251e "/bin/sh -c 'docker-…" 4 months ago Exited (1) 4 months ago jolly_noether
この状態なら、以下のとおり起動できるようになった
$ docker-compose -p campus up -d Creating network "campus_compose_network" with driver "bridge" Creating mysql ... done Creating mariadb ... done Creating mailhog ... done Creating php ... done
■php_network_getaddresses となってMySQLに接続できない Docker Compose でPHPコンテナとMySQLコンテナを起動し、 PHPからMySQLに接続しようとしたときに以下のエラーになることがあった SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: Name or service not known 起動コマンドを以下のように変更(バックグラウンドの指定を無くしてログを表示する)して様子を見る
$ docker-compose up -d ↓ $ docker-compose up
MySQLに関してコンソールに以下のログが表示された 設定ファイルに問題があり、具体的には文字コードの指定に問題があるらしい
mysql | 2021-10-07 10:42:41+09:00 [Note] [Entrypoint]: Entrypoint script for MariaDB Server 1:10.5.12+maria~focal started. mysql | 2021-10-07 10:42:41+09:00 [ERROR] [Entrypoint]: mysqld failed while attempting to check config mysql | command was: mysqld --verbose --help --log-bin-index=/tmp/tmp.GgJeIcAyzq mysql | 2021-10-07 10:42:41 0 [ERROR] COLLATION 'utf8mb4_general_ci' is not valid for CHARACTER SET 'utf8' mysql exited with code 1
Docker Compose 用ファイルの docker\mysql\my.cnf を修正(文字コードが怪しいので変更)
[mysqld] character-set-server=utf8 ↓ [mysqld] character-set-server=utf8mb4
ファイルの修正を行っているので、事前に「docker-compose build」が必要なので注意 あわせて、以下のようにして対象のボリュームも削除しておく
$ docker volume ls $ docker volume rm xxxxx
これで「mysql:5.7」「mariadb:10.5」の両方ですぐに起動できるようになった ■ポートが使われているとなってMySQLが起動しない ある日突然、以下のエラーで起動できなくなった
$ docker-compose -p campus-asp up -d Creating network "campus-asp_default" with the default driver Creating campus-asp_redis_1 ... Creating campus-asp_mysql_1 ... Creating campus-asp_mysql_1 ... error Creating campus-asp_nginx_1 ... Creating campus-asp_smtp4dev_1 ... Creating campus-asp_redis_1 ... done Creating campus-asp_php_1 ... done Creating campus-asp_nginx_1 ... done Creating campus-asp_smtp4dev_1 ... done ERROR: for mysql Cannot start service mysql: driver failed programming external connectivity on endpoint campus-asp_mysql_1 (8a6f1c812a648295f4016ef3b6eb8810eaae2fbb07f042ef07a571d7c0813d5c): Bind for 127.0.0.1:3306 failed: port is already allocated ERROR: Encountered errors while bringing up the project.
以下を参考に対応した example_mysqlが不正な状態で残り続けていた?削除することで解消できた (直近でexample案件でエラーが発生し、その解消のために試行錯誤していたが、その影響だと思われる) Docker Composeでdriver failed programming external connectivity on endpointとなった時の対応方法 - Qiita https://qiita.com/ponsuke0531/items/f3490f571b5eee16ea87
$ docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 98d7976c7795 campus-asp_smtp4dev "dotnet /app/Rnwood.…" About a minute ago Up About a minute 25/tcp, 143/tcp, 127.0.0.1:5000->80/tcp campus-asp_smtp4dev_1 2aa9aca11681 campus-asp_php "docker-php-entrypoi…" About a minute ago Up About a minute 0.0.0.0:5174->5174/tcp, :::5174->5174/tcp, 9000/tcp campus-asp_php_1 23fc6ec06392 campus-asp_nginx "/docker-entrypoint.…" About a minute ago Up About a minute 127.0.0.1:80->80/tcp campus-asp_nginx_1 9b1a13ed6e90 campus-asp_redis "docker-entrypoint.s…" About a minute ago Up About a minute 6379/tcp campus-asp_redis_1 d4d1bfdaa839 campus-asp_mysql "docker-entrypoint.s…" About a minute ago Created campus-asp_mysql_1 f8d3d168bea9 example_apache "sh /entrypoint.sh" 4 days ago Exited (127) 3 days ago example_apache_1 324895e1dfff example_mysql "docker-entrypoint.s…" 4 days ago Up 4 minutes 127.0.0.1:3306->3306/tcp example_mysql_1 d71118e77a41 example_smtp4dev "dotnet /app/Rnwood.…" 4 days ago Exited (0) 3 days ago $ docker rm 324895e1dfff Error response from daemon: You cannot remove a running container 324895e1dfffd5e4cb5b5c2f06d96d1fe35e0a1274f8b116f6738802ee01c52b. Stop the container before attempting removal or force remove $ docker container rm -f 324895e1dfffd5e4cb5b5c2f06d96d1fe35e0a1274f8b116f6738802ee01c52b 324895e1dfffd5e4cb5b5c2f06d96d1fe35e0a1274f8b116f6738802ee01c52b $ docker rm f8d3d168bea9 f8d3d168bea9 $ docker rm d71118e77a41 d71118e77a41

Advertisement