web-dev-qa-db-ja.com

php_network_getaddresses:Docker管理者のgetaddrinfo失敗エラー

laravel 5/mysqlアプリを使用して、Dockerコンテナの管理者へのアクセスに問題があります。エラーが発生しました。

SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: Name does not resolve

私のdocker-compose.yml:

version: '3'

services:

    votes_app:
        build:
            context: ./web
            dockerfile: Dockerfile.yml

        container_name: votes_app_container
        environment:
            - Apache_RUN_USER=#1000
        volumes:
            - ${APP_PATH_Host}:${APP_PTH_CONTAINER}
        ports:
            - 8081:80
        working_dir: ${APP_PTH_CONTAINER}


    votes_db:
        image: mysql:5.6.41
        container_name: votes_db_container

        restart: always
        environment: 
            MYSQL_ROOT_PASSWORD: 1
        volumes:
            - ${DB_PATH_Host}:/var/lib/mysql


    votes_adminer:
        image: adminer
        container_name: votes_adminer_container
        restart: always
        ports:
            - 8082:8080
        links:
            - votes_db


    votes_composer:
        image: composer:1.6
        container_name: votes_composer_container
        volumes:
            - ${APP_PATH_Host}:${APP_PTH_CONTAINER}
        working_dir: ${APP_PTH_CONTAINER}
        command: composer install --ignore-platform-reqs

Appコンテナとdbコンテナに異なるポートがあります。

ここ https://hub.docker.com/_/adminer/ 見つけました:

外部サーバーでの使用法ADMINER_DEFAULT_SERVER環境変数を使用して、デフォルトのホストを指定できます。これは、外部サーバーまたはデフォルトdb以外の名前のドッカーコンテナーに接続する場合に便利です。

docker run -p 8080:8080 -e ADMINER_DEFAULT_SERVER=mysql adminer

アプリのコンソールでコマンドを実行します

$ docker run -p 8089:8080 -e ADMINER_DEFAULT_SERVER=votes_db adminer 

私のアプリのポートで未使用で、このコマンドは成功しませんでした、管理者にログインしようとして同じエラーが発生しました https://imgur.com/a/4HCdC1W .

どちらが正しい方法ですか?

変更されたブロック#2:

私のdocker-compose.ymlで:

version: '3'

services:

    votes_app:
        build:
            context: ./web
            dockerfile: Dockerfile.yml

        container_name: votes_app_container
        environment:
            - Apache_RUN_USER=#1000
        volumes:
            - ${APP_PATH_Host}:${APP_PTH_CONTAINER}
        ports:
            - 8081:80
        working_dir: ${APP_PTH_CONTAINER}


    db:
        image: mysql:5.6.41
        restart: always
        environment: 
            MYSQL_ROOT_PASSWORD: 1
        volumes:
            - ${DB_PATH_Host}:/var/lib/mysql


    adminer:
        image: adminer
        restart: always
        ports:
            - 8082:8080
        links:
            - db


    votes_composer:
        image: composer:1.6
        container_name: votes_composer_container
        volumes:
            - ${APP_PATH_Host}:${APP_PTH_CONTAINER}
        working_dir: ${APP_PTH_CONTAINER}
        command: composer install --ignore-platform-reqs

アプリを再構築しましたが、管理者にログインできませんでした: https://imgur.com/a/JWVGfBA

OSのコンソールで、他の未使用の8089ポートを指定して実行します。

$ docker run -p 8089:8080 -e ADMINER_DEFAULT_SERVER=db adminer
PHP 7.2.11 Development Server started at Thu Nov  1 07:00:46 2018
[Thu Nov  1 07:01:11 2018] ::ffff:172.17.0.1:34048 [200]: /
[Thu Nov  1 07:01:20 2018] ::ffff:172.17.0.1:34052 [302]: /
[Thu Nov  1 07:01:21 2018] ::ffff:172.17.0.1:34060 [403]: /?server=db&username=root

ただし、管理者への8089ポートへのログインエラーが再び発生しましたが、エラーメッセージは異なりました。

https://imgur.com/a/a8qM4bt

なにが問題ですか ?

修正ブロック#3:

はい、私はボックスに入力したコンテナを再構築した後、コンソール出力に「ルート」が表示されるため、そうです。

$ docker-compose exec votes_app bash
root@a4aa907373f5:/var/www/html# ls -la
total 1063
drwxrwxrwx 1 root root   4096 Oct 27 12:01 .
drwxr-xr-x 1 root root   4096 Oct 16 00:11 ..
-rwxrwxrwx 1 root root    234 Oct 13 07:15 .editorconfig
-rwxrwxrwx 1 root root   1029 Oct 31 06:10 .env
-rwxrwxrwx 1 root root    651 Oct 13 07:15 .env.example
drwxrwxrwx 1 root root   4096 Nov  1 11:10 .git
-rwxrwxrwx 1 root root    111 Oct 13 07:15 .gitattributes
-rwxrwxrwx 1 root root    294 Oct 13 07:15 .gitignore
-rwxrwxrwx 1 root root   4356 Oct 13 07:15 1.txt
drwxrwxrwx 1 root root      0 Oct 13 07:15 __DOCS
drwxrwxrwx 1 root root      0 Oct 13 07:15 __SQL
drwxrwxrwx 1 root root   4096 Oct 13 07:15 app
-rwxrwxrwx 1 root root   1686 Oct 13 07:15 artisan                                                                                                                                                                     
drwxrwxrwx 1 root root      0 Oct 13 07:15 bootstrap                                                                                                                                                                   
-rwxrwxrwx 1 root root   2408 Oct 13 07:15 composer.json                                                                                                                                                               
-rwxrwxrwx 1 root root 200799 Oct 13 07:15 composer.lock                                                                                                                                                               
drwxrwxrwx 1 root root   4096 Oct 13 07:15 config                                                                                                                                                                      
drwxrwxrwx 1 root root   4096 Oct 13 07:15 database                                                                                                                                                                    
-rwxrwxrwx 1 root root  52218 Oct 17 05:25 db_1_err.txt                                                                                                                                                                
-rwxrwxrwx 1 root root 482562 Oct 13 07:15 package-lock.json                                                                                                                                                           
-rwxrwxrwx 1 root root   1168 Oct 13 07:15 package.json                                                                                                                                                                
-rwxrwxrwx 1 root root   1246 Oct 13 07:15 phpunit.xml                                                                                                                                                                 
drwxrwxrwx 1 root root   4096 Oct 13 07:15 public
-rwxrwxrwx 1 root root     66 Oct 13 07:15 readme.txt
drwxrwxrwx 1 root root      0 Oct 13 07:15 resources
drwxrwxrwx 1 root root   4096 Oct 13 07:15 routes
-rwxrwxrwx 1 root root    563 Oct 13 07:15 server.php
drwxrwxrwx 1 root root   4096 Oct 13 07:15 storage
drwxrwxrwx 1 root root      0 Oct 13 07:15 tests
drwxrwxrwx 1 root root   8192 Nov  1 13:05 vendor
-rwxrwxrwx 1 root root   1439 Oct 13 07:15 webpack.mix.js
-rwxrwxrwx 1 root root 261143 Oct 13 07:15 yarn.lock
root@a4aa907373f5:/var/www/html# echo $USER

root@a4aa907373f5:/var/www/html#  uname -a
Linux a4aa907373f5 4.15.0-36-generic #39-Ubuntu SMP Mon Sep 24 16:19:09 UTC 2018 x86_64 GNU/Linux

とにかく問題になることはありますか?

修正ブロック#4

私はこのドッカーを作り直し、コンテナのデフォルト名を設定し(混乱を招くと思います)、画像を設定します:composer:1.8 latest versionだから私のdocker-compose.ymlで:

version: '3.1'

services:

    web:

        build:
            context: ./web
            dockerfile: Dockerfile.yml

        environment:
            - Apache_RUN_USER=#1000
        volumes:
            - ${APP_PATH_Host}:${APP_PTH_CONTAINER}
        ports:
            - 8081:80
        working_dir: ${APP_PTH_CONTAINER}

    db:
        image: mysql:5.6.41
        restart: always
        environment: 
            MYSQL_ROOT_PASSWORD: 1
        volumes:
            - ${DB_PATH_Host}:/var/lib/mysql

    adminer:
        image: adminer
        restart: always
        ports:
            - 8082:8080
        links:
            - db

    composer:
        image: composer:1.8
        volumes:
            - ${APP_PATH_Host}:${APP_PTH_CONTAINER}
        working_dir: ${APP_PTH_CONTAINER}
        command: composer install --ignore-platform-reqs

そしてweb/Dockerfile.ymlで:

FROM php:7.2-Apache

RUN apt-get update -y && apt-get install -y libpng-dev nano

RUN docker-php-ext-install \
    pdo_mysql \
    && a2enmod \
    rewrite

とにかくプロジェクトの再構築と http://127.0.0.1:8082 urlで管理者に接続した後、エラーが発生しました:

SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: Try again

PS:私は他にlaravel 5.0/php:5.6/image:composer:1.6/mcryptが私のラップトップの同じローカルサーバーにdockerプロジェクトをインストールしました。このアプリからdbにログインできますこのdockerプロジェクトにはファイルがあります:

docker-compose.yml:

version: '3.1'

services:

    web:
        build:
            context: ./web
            dockerfile: Dockerfile.yml

        environment:
            - Apache_RUN_USER=#1000
        volumes:
            - ${APP_PATH_Host}:${APP_PTH_CONTAINER}
        ports:
            - 8085:80
        working_dir: ${APP_PTH_CONTAINER}


    db:
        image: mysql:5.5.62
        restart: always
        environment: 
            MYSQL_ROOT_PASSWORD: 1
        volumes:
            - ${DB_PATH_Host}:/var/lib/mysql


    adminer:
        image: adminer
        restart: always
        ports:
            - 8086:8080
        links:
            - db


    composer:
        image: composer:1.6
        volumes:
            - ${APP_PATH_Host}:${APP_PTH_CONTAINER}
        working_dir: ${APP_PTH_CONTAINER}
        command: composer install --ignore-platform-reqs

およびDockerfile.yml:

FROM php:5.6-Apache

RUN apt-get update -y && apt-get install -y libpng-dev   nano  libmcrypt-dev

RUN docker-php-ext-install \
    pdo_mysql \
    mcrypt \
    && a2enmod \
    rewrite

この問題はいくつかのPHP 7.2固有の機能ですか?

MODIFIED BLOCK#5:with defined:

phpmyadmin:
    depends_on:
      - db
    image: phpmyadmin/phpmyadmin
    restart: always
    ports:
      - 8082:8080
    environment:
      PMA_Host: db
      MYSQL_ROOT_PASSWORD: 1

実行中 http://127.0.0.1:8082/ ブラウザでエラーが発生しました:

This site can’t be reached The webpage at http://127.0.0.1:8082/ might be temporarily down or it may have moved permanently to a new web address.
ERR_SOCKET_NOT_CONNECTED

アプリのURLを試しているときに http://127.0.0.1:8081/public/ エラーが発生しました:

SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: Temporary failure in name resolution 

MODIFIED BLOCK#6:docker-compose.ymlのphpmyadminでリメイクしました:

version: '3.1'

services:

#  docker run -p 8089:8080 -e ADMINER_DEFAULT_SERVER=db adminer
    web:

        # env_file:
        #     - ./mysql.env

        build:
            context: ./web
            dockerfile: Dockerfile.yml

        environment:
            - Apache_RUN_USER=#1000
        volumes:
            - ${APP_PATH_Host}:${APP_PTH_CONTAINER}
        ports:
            - 8081:80
        working_dir: ${APP_PTH_CONTAINER}


    db:
        image: mysql:5.6.41
        restart: always
        environment: 
            MYSQL_ROOT_PASSWORD: 1
        volumes:
            - ${DB_PATH_Host}:/var/lib/mysql


    phpmyadmin:
        depends_on:
          - db
        image: phpmyadmin/phpmyadmin
        restart: always
        ports:
          - 8082:80
        environment:
          PMA_Host: db
          MYSQL_ROOT_PASSWORD: 1

    composer:
        image: composer:1.8
        volumes:
            - ${APP_PATH_Host}:${APP_PTH_CONTAINER}
        working_dir: ${APP_PTH_CONTAINER}
        command: composer install --ignore-platform-reqs

しかし、phpMyAdminにログインしようとしています

http://127.0.0.1:8082

同じエラーが発生しました: https://imgur.com/a/cGeudI6

また、ポートがあります:

$ docker ps
CONTAINER ID        IMAGE                    COMMAND                  CREATED             STATUS                          PORTS                            NAMES
471de34926b9        phpmyadmin/phpmyadmin    "/run.sh supervisord…"   41 minutes ago      Up 41 minutes                   9000/tcp, 0.0.0.0:8082->80/tcp   votes_docker_phpmyadmin_1
226fcdbeeb25        mysql:5.6.41             "docker-entrypoint.s…"   41 minutes ago      Restarting (1) 49 seconds ago                                    votes_docker_db_1
1cb1efb10561        votes_docker_web         "docker-php-entrypoi…"   41 minutes ago      Up 41 minutes                   0.0.0.0:8081->80/tcp             votes_docker_web_1
d6718cd16256        adminer                  "entrypoint.sh docke…"   13 hours ago        Up About an hour                0.0.0.0:8088->8080/tcp           ads_docker_adminer_1
1928a54e1d66        mysql:5.5.62             "docker-entrypoint.s…"   13 hours ago        Up About an hour                3306/tcp                         ads_docker_db_1
e43b2a1e9cc7        adminer                  "entrypoint.sh docke…"   6 days ago          Up About an hour                0.0.0.0:8086->8080/tcp           youtubeapi_demo_adminer_1
47a034fca5a2        mysql:5.5.62             "docker-entrypoint.s…"   6 days ago          Up About an hour                3306/tcp                         youtubeapi_demo_db_1
3dcc1a4ce8f0        adminer                  "entrypoint.sh docke…"   6 weeks ago         Up About an hour                0.0.0.0:8083->8080/tcp           lprods_adminer_container
933d9fffaf76        postgres:9.6.10-Alpine   "docker-entrypoint.s…"   6 weeks ago         Up About an hour                0.0.0.0:5433->5432/tcp           lprods_db_container

MODIFIED BLOCK#7どのデバッグ情報を提供できるかわかりませんが、ログには警告が表示されるようです。彼らは重要ですか?どの追加デバッグ情報を提供できますか?

serge@serge:/mnt/_work_sdb8/wwwroot/lar/DockerApps/votes_docker$ docker-compose up -d --build              
Creating network "votes_docker_default" with the default driver 
Building web 
Step 1/3 : FROM php:7.2-Apache 
 ---> cf1a377ba77f 
Step 2/3 : RUN apt-get update -y && apt-get install -y libpng-dev nano 
 ---> Using cache 
 ---> 2c4bce73e8cc 
Step 3/3 : RUN docker-php-ext-install     pdo_mysql     && a2enmod     rewrite 
 ---> Using cache 
 ---> 241c9bf59ac0 
Successfully built 241c9bf59ac0 
Successfully tagged votes_docker_web:latest 
Creating votes_docker_composer_1   ... done 
Creating votes_docker_web_1        ... done 
Creating votes_docker_db_1       ... done 
Creating votes_docker_phpmyadmin_1 ... done 
serge@serge:/mnt/_work_sdb8/wwwroot/lar/DockerApps/votes_docker$ clear 
serge@serge:/mnt/_work_sdb8/wwwroot/lar/DockerApps/votes_docker$ docker logs --tail=20  votes_docker_web_1 
AH00558: Apache2: Could not reliably determine the server's fully qualified domain name, using 172.20.0.4. Set the 'ServerName' directive globally to suppress this message 
AH00558: Apache2: Could not reliably determine the server's fully qualified domain name, using 172.20.0.4. Set the 'ServerName' directive globally to suppress this message 
[Wed Dec 26 12:26:34.113194 2018] [mpm_prefork:notice] [pid 1] AH00163: Apache/2.4.25 (Debian) PHP/7.2.11 configured -- resuming normal operations 
[Wed Dec 26 12:26:34.113247 2018] [core:notice] [pid 1] AH00094: Command line: 'Apache2 -D FOREGROUND' 
serge@serge:/mnt/_work_sdb8/wwwroot/lar/DockerApps/votes_docker$ docker logs --tail=20  votes_docker_db_1 
2018-12-26 12:26:43 1 [Note] Shutting down plugin 'INNODB_CMP_PER_INDEX' 
2018-12-26 12:26:43 1 [Note] Shutting down plugin 'INNODB_CMPMEM_RESET' 
2018-12-26 12:26:43 1 [Note] Shutting down plugin 'INNODB_CMPMEM' 
2018-12-26 12:26:43 1 [Note] Shutting down plugin 'INNODB_CMP_RESET' 
2018-12-26 12:26:43 1 [Note] Shutting down plugin 'INNODB_CMP' 
2018-12-26 12:26:43 1 [Note] Shutting down plugin 'INNODB_LOCK_WAITS' 
2018-12-26 12:26:43 1 [Note] Shutting down plugin 'INNODB_LOCKS' 
2018-12-26 12:26:43 1 [Note] Shutting down plugin 'INNODB_TRX' 
2018-12-26 12:26:43 1 [Note] Shutting down plugin 'BLACKHOLE' 
2018-12-26 12:26:43 1 [Note] Shutting down plugin 'ARCHIVE' 
2018-12-26 12:26:43 1 [Note] Shutting down plugin 'MRG_MYISAM' 
2018-12-26 12:26:43 1 [Note] Shutting down plugin 'MyISAM' 
2018-12-26 12:26:43 1 [Note] Shutting down plugin 'MEMORY' 
2018-12-26 12:26:43 1 [Note] Shutting down plugin 'CSV' 
2018-12-26 12:26:43 1 [Note] Shutting down plugin 'sha256_password' 
2018-12-26 12:26:43 1 [Note] Shutting down plugin 'mysql_old_password' 
2018-12-26 12:26:43 1 [Note] Shutting down plugin 'mysql_native_password' 
2018-12-26 12:26:43 1 [Note] Shutting down plugin 'binlog' 
2018-12-26 12:26:43 1 [Note] mysqld: Shutdown complete 

serge@serge:/mnt/_work_sdb8/wwwroot/lar/DockerApps/votes_docker$ docker logs --tail=20  votes_docker_composer_1    
> @php artisan package:discover 
Discovered Package: aloha/twilio 
Discovered Package: barryvdh/laravel-debugbar 
Discovered Package: beyondcode/laravel-dump-server 
Discovered Package: cviebrock/eloquent-sluggable 
Discovered Package: davejamesmiller/laravel-breadcrumbs 
Discovered Package: fideloper/proxy 
Discovered Package: intervention/image 
Discovered Package: itsgoingd/clockwork 
Discovered Package: jrean/laravel-user-verification 
Discovered Package: laravel/tinker 
Discovered Package: laravelcollective/html 
Discovered Package: mews/captcha 
Discovered Package: nesbot/carbon 
Discovered Package: nunomaduro/collision 
Discovered Package: proengsoft/laravel-jsvalidation 
Discovered Package: rap2hpoutre/laravel-log-viewer 
Discovered Package: themsaid/laravel-mail-preview 
Discovered Package: yajra/laravel-datatables-Oracle 
Package manifest generated successfully. 
serge@serge:/mnt/_work_sdb8/wwwroot/lar/DockerApps/votes_docker$ docker logs --tail=20  votes_docker_phpmyadmin_1 
phpMyAdmin not found in /var/www/html - copying now... 
Complete! phpMyAdmin has been successfully copied to /var/www/html 
/usr/lib/python2.7/site-packages/supervisor/options.py:461: UserWarning: Supervisord is running as root and it is searching for its configuration file in default locations (including its current working directory); 
you probably want to specify a "-c" argument specifying an absolute path to a configuration file for improved security. 
  'Supervisord is running as root and it is searching ' 
2018-12-26 12:26:35,973 CRIT Supervisor is running as root.  Privileges were not dropped because no user is specified in the config file.  If you intend to run as root, you can set user=root in the config file to av
oid this message. 
2018-12-26 12:26:35,973 INFO Included extra file "/etc/supervisor.d/nginx.ini" during parsing 
2018-12-26 12:26:35,973 INFO Included extra file "/etc/supervisor.d/php.ini" during parsing 
2018-12-26 12:26:35,984 INFO RPC interface 'supervisor' initialized 
2018-12-26 12:26:35,984 CRIT Server 'unix_http_server' running without any HTTP authentication checking 
2018-12-26 12:26:35,984 INFO supervisord started with pid 1 
2018-12-26 12:26:36,986 INFO spawned: 'php-fpm' with pid 23 
2018-12-26 12:26:36,988 INFO spawned: 'nginx' with pid 24 
[26-Dec-2018 12:26:37] NOTICE: fpm is running, pid 23 
[26-Dec-2018 12:26:37] NOTICE: ready to handle connections 
2018-12-26 12:26:38,094 INFO success: php-fpm entered RUNNING state, process has stayed up for > than 1 seconds (startsecs) 
2018-12-26 12:26:38,095 INFO success: nginx entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)

なにが問題ですか ?

ありがとう!

12
user2054381

PhpMyAdminで試してください:)

version: '3.2'
services:
    db:
        image: mysql:5.7

        restart: always
        environment:
          MYSQL_ROOT_PASSWORD: myUserPass
          MYSQL_DATABASE: mydb
          MYSQL_USER: myUser
          MYSQL_PASSWORD: myUser

    phpmyadmin:
        depends_on:
          - db
        image: phpmyadmin/phpmyadmin
        restart: always
        ports:
          - 8088:80
        environment:
          PMA_Host: db
          MYSQL_ROOT_PASSWORD: myUserPass
1
Maxim Shubin

セットアップの問題は、環境変数DB_PATH_Hostが原因です。構成ファイルですべてを適切に設定しました。しかし、docker-composeを実行する前に、環境変数DB_PATH_Hostを定義することになっています。環境変数が定義されていないため、エラーがスローされます。 環境変数とDockerでの優先順位の詳細については、こちらをご覧ください

必要なことは、dockerコンテナーを開始する前に、docker-composeを実行する前に環境変数を構成ファイルで定義するか、シェルでシェル変数としてエクスポートするか、envファイルを使用するか、ENV命令を使用して環境変数を定義する必要がありますdockerfileで。 (これらは環境変数を定義するすべての可能な方法であり、最初に来る方法が優先されます。詳細はこちらを参照してください)。

したがって、適切なdocker-compose.ymlファイルは次のようになります。

version: '3.2'
services:
   db:
        image: mysql:5.6.41
        restart: always
        environment: 
            MYSQL_ROOT_PASSWORD: 1
            DB_PATH_Host: /tmp/mysql #this is the Host location where mysql data will be stored.
        volumes:
            - ${DB_PATH_Host}:/var/lib/mysql

    phpmyadmin:
        depends_on:
          - db
        image: phpmyadmin/phpmyadmin
        restart: always
        ports:
          - 8082:80
        environment:
          PMA_Host: db
          MYSQL_ROOT_PASSWORD: 1

次のポイントに来て、あなたの議論から、dbコンテナからボリュームを削除すると問題が解決したと結論付けたことがわかります。しかし、実際にはそうではありません。どうやって?

まず、ここでボリュームが使用される理由を説明します。 mysqlで生成されたデータはどこかに保存する必要があります。 Dockerはデフォルトでコンテナを非永続モードで実行します。つまり、実行中のdocker conatinerによって生成されたすべてのデータは、そのコンテナがダウン/キルされると消去されます。したがって、データを永続化(保存/保存)するには、ボリュームを使用します。 Dockerで使用されるボリュームにはさまざまなタイプがあります。 詳細については、Dockerのストレージドキュメントを読むことをお勧めします 。ここで使用されるボリュームのタイプはバインドマウントです。ホストディレクトリをdockerディレクトリにバインドし、dockerはすべてのデータをホストマシンに直接保存するため、dockerコンテナが停止してもデータは保持されます。

したがって、mysqlでボリュームを使用しない場合、何を行うかに関係なくすべてのdbの変更は、コンテナーが停止するたびに失われます。

ボーナスポイツ:

  1. デフォルトでは、MySQLコンテナはリモート接続を許可しません。したがって、phpmyadmin以外のどこからでもmysqlにアクセスしたい場合。リモート接続を許可する必要があります。
  2. ここでデータを保存しているため、mysqllコンテナを起動するたびにルートパスワードが初めて設定されます。次回以降、rootパスワード環境変数は無視されます。
  3. ほとんどの場合、docker execを使用してdockerコンテナにログインすると、rootになることがわかります。これは、Dockerfileで命令を指定しない限り、docker buildまたはdocker-compose buildを使用してDockerfileでdockerコンテナーを作成するたびに新しいユーザーを作成して使用するためですdockerはすべてをrootユーザーとして実行します。
  4. これで、上記の構成ファイルを実行するたびに。 mysqlデータの場所の所有権が変更されることがわかります。 Hostディレクトリをdockerにマウントするたびに、DockerはそのコンテナのDockerile定義に従って、ユーザーとグループに従ってファイルのアクセス許可を変更するためです。ここで mysqlはmysql と呼ばれるユーザーとグループを定義し、uidおよびgidは999です。したがって、/ tmp/mysqlは所有権として999:999になります。これらのIDがシステムの他のユーザーアカウントにマップされている場合、ホストマシンでls -alを実行すると、IDの代わりにこれらの名前が表示されます。 IDがマップされていない場合、IDが直接表示されます。
  5. 例として、mysqlデータディレクトリとして/ tmp/mysqlを使用しました。 システムを再起動するたびに/ tmpのデータが削除されるのと同じものを使用しないでください。
2
Mani

それについては https://hub.docker.com/_/adminer/ で見ることができます。

version: '3.1'

services:

  adminer:
    image: adminer
    restart: always
    ports:
      - 8080:8080

  db:
    image: mysql:5.6
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: example
1