{"id":1068,"date":"2023-10-31T12:49:08","date_gmt":"2023-10-31T03:49:08","guid":{"rendered":"https:\/\/plusload.net\/?p=1068"},"modified":"2025-07-18T14:48:28","modified_gmt":"2025-07-18T05:48:28","slug":"docker%e3%81%a7%e3%81%93%e3%81%ae%e3%82%b5%e3%82%a4%e3%83%88%e3%82%92%e6%a7%8b%e7%af%89%e3%81%99%e3%82%8b%ef%bc%9awordpress-mysql%ef%bc%92%e3%81%a4%e3%81%ae%e3%82%b3%e3%83%b3%e3%83%86%e3%83%8a","status":"publish","type":"post","link":"https:\/\/plusload.net\/?p=1068","title":{"rendered":"Docker\u3067\u3053\u306e\u30b5\u30a4\u30c8\u3092\u69cb\u7bc9\u3059\u308b\uff1awordpress, mysql, phpmyadmin, 3\u3064\u306e\u30b3\u30f3\u30c6\u30ca\u3067\u904b\u7528\u3001\u3064\u3044\u3067\u306bdockerui\u3082\u52d5\u304b\u3057\u3068\u304f"},"content":{"rendered":"<p>\u307e\u305a\u3001Ubuntu20.04\u306bDocker\u3068docker-compose\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3059\u308b\u3002<\/p>\n<pre>sudo apt update # update packege list\r\nsudo mkdir -p \/etc\/apt\/keyrings # make GPG key dir\r\ncurl -fsSL https:\/\/download.docker.com\/linux\/ubuntu\/gpg | sudo gpg --dearmor -o \/etc\/apt\/keyrings\/docker.gpg # get docker GPG key\r\necho \"deb [arch=$(dpkg --print-architecture) signed-by=\/etc\/apt\/keyrings\/docker.gpg] https:\/\/download.docker.com\/linux\/ubuntu\r\n$(lsb_release -cs) stable\" | sudo tee \/etc\/apt\/sources.list.d\/docker.list &gt; \/dev\/null # add packege list of docker\r\nsudo apt update # update packege list agein\r\nsudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin # install docker, docker-compose\r\nsudo usermod -aG docker $USER # add super user group docker user\r\nsu - ${USER} # make user\r\ndocker -v # view docker version\r\n<\/pre>\n<p>\u3053\u308c\u3067Docker\u306e\u30d0\u30fc\u30b8\u30e7\u30f3\u304c\u8868\u793a\u3055\u308c\u308c\u3070OK<br \/>\n\u305d\u3057\u305f\u3089\u7528\u610f\u3059\u308b\u30b3\u30f3\u30c6\u30ca\u3092YAML\u306b\u8a18\u8f09\u3057\u307e\u3059\u3002<\/p>\n<pre>mkdir docker-compose\r\ncd docker-compose\r\nvi docke-compose.yml\r\nversion: '3'\r\nservices:\r\n  wordpress:\r\n    image: wordpress\r\n    container_name: plusload-wordpress\r\n    restart: always\r\n    ports:\r\n      - 8080:80\r\n    environment:\r\n      WORDPRESS_DB_PASSWORD: ********\r\n    volumes:\r\n      - .\/public_html\/:\/var\/www\/html # wordpress\u306e\u6c38\u7d9a\u5316\r\n  mysql:\r\n    image: mysql:5.7\r\n    container_name: plusload-mysql\r\n    restart: always\r\n    environment:\r\n      MYSQL_USER: ******\r\n      MYSQL_ROOT_PASSWORD: *******\r\n    volumes:\r\n      - data-volume:\/var\/lib\/mysql # mysql\u306e\u6c38\u7d9a\u5316\r\n\r\n  phpmyadmin:\r\n    image: phpmyadmin\r\n    container_name: plusload-phpmyadmin\r\n    restart: always\r\n    ports:\r\n      - 8888:80\r\n    environment:\r\n      - PMA_ARBITRARY=1\r\n\r\nvolumes:\r\n  data-volume:\r\n:wq<\/pre>\n<p>docker\u30b3\u30f3\u30c6\u30ca\u306a\u306e\u3067run\u3057\u3066\u4f55\u304b\u30c8\u30e9\u30d6\u30eb\u304c\u3042\u3063\u3066stop\u3059\u308b\u3068\u30c7\u30fc\u30bf\u304c\u6d88\u3048\u3066\u3057\u307e\u3046\u306e\u3067volumes\u3067\u30de\u30a6\u30f3\u30c8\u6c38\u7d9a\u5316\u3059\u308b\u3068\u518d\u8d77\u52d5\u5f8c\u3082\u30c7\u30fc\u30bf\u306f\u6b8b\u3063\u3066\u3044\u308b<br \/>\n\u203bmysql\u306fdocker volume\u3067\u30de\u30a6\u30f3\u30c8\u3057\u3066\u3044\u308b\u304c\u3001wordpress\u306f\/home\/user\/docker-compose\u5185\u306e\/public_html\u306b\u4f5c\u6210\u3057\u3066\u30de\u30a6\u30f3\u30c8\u3057\u3066\u3044\u308b<br \/>\n\u306a\u306e\u3067wordpress\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u5185\u306bwordpress\u304c\u4f7f\u7528\u3057\u306a\u3044\u30d7\u30ed\u30b0\u30e9\u30e0\u3084\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3092\u5165\u308c\u308b\u5834\u5408\u306f\u3053\u306e\u4e2d\u306b\u30a2\u30c3\u30d7\u3059\u308b<br \/>\n\u203bphpmyadmin, webmin\u306f\u6d88\u5931\u3057\u3066\u3082\u554f\u984c\u306a\u3044\u306e\u3067volumes\u3067\u30de\u30a6\u30f3\u30c8\u3057\u306a\u3044<\/p>\n<p>\u3067\u30b3\u30f3\u30c6\u30ca\u3092\u8d77\u52d5<\/p>\n<pre>docker-compose up -d<\/pre>\n<p>\u3053\u308c\u3067\u8d77\u52d5\u3059\u308b\u306e\u3067\u307e\u305a\u3001mysql\u30b3\u30f3\u30c6\u30ca\u306b\u5165\u308ayaml\u3067\u8a2d\u5b9a\u3057\u305fuser\u3092\u4f5c\u6210\u3057\u3066\uff08localhost\u3067\u306fNG\u3067\uff05\u3067\u4f5c\u6210\u3059\u308b\uff1adockerNet\u306a\u306e\u3067\uff09wordpress\u3068\u3044\u3046DB\u3092\u4f5c\u6210\u3059\u308b<\/p>\n<pre>docker container exec -it plusload-mysql bash\r\nbash-4.2# mysql -u ***user*** -p****pass****\r\nmysql: [Warning] Using a password on the command line interface can be insecure.\r\nWelcome to the MySQL monitor. Commands end with ; or \\g.\r\nYour MySQL connection id is 9\r\nServer version: 5.7.44 MySQL Community Server (GPL)\r\n\r\nCopyright (c) 2000, 2023, Oracle and\/or its affiliates.\r\n\r\nOracle is a registered trademark of Oracle Corporation and\/or its\r\naffiliates. Other names may be trademarks of their respective\r\nowners.\r\n\r\nType 'help;' or '\\h' for help. Type '\\c' to clear the current input statement.\r\n\r\nmysql&gt; show databases;\r\n\r\n+--------------------+\r\n| Database           |\r\n+--------------------+\r\n| information_schema |\r\n| mysql              |\r\n| performance_schema |\r\n| sys                |\r\n+--------------------+\r\n6 rows in set (0.00 sec)\r\nmysql&gt; create database wordpress;\r\nQuery OK, 1 row affected (0.00 sec)<\/pre>\n<p>\u4f5c\u3063\u305f\u3089mysql\u30b3\u30f3\u30c6\u30ca\u304b\u3089\u629c\u3051\u3066wodpress\u30b3\u30f3\u30c6\u30ca\u306b\u5165\u308b<\/p>\n<pre>docker container exec -it plusload-wordpress bash<\/pre>\n<p>\u3067\u3082\u305d\u306e\u307e\u307e\u3067\u306fvi\u30a8\u30c7\u30a3\u30bf\u304c\u4f7f\u3048\u306a\u3044\u306e\u3067update\u3057\u3066install\u3059\u308b<\/p>\n<pre>apt update\r\napt install vim -y<\/pre>\n<p>\u3053\u308c\u3067vi\u30a8\u30c7\u30a3\u30bf\u304c\u4f7f\u3048\u308b\u306e\u3067wp-config.php\u3092\u7de8\u96c6\u3059\u308b<\/p>\n<pre>vi wp-config.php\r\n*\r\ndefine( 'DB_NAME', getenv_docker('WORDPRESS_DB_NAME', 'wordpress') );\r\n\r\n\/** Database username *\/\r\ndefine( 'DB_USER', getenv_docker('WORDPRESS_DB_USER', '***user***') );\r\n\r\n\/** Database password *\/\r\ndefine( 'DB_PASSWORD', getenv_docker('WORDPRESS_DB_PASSWORD', '***pass***') );<\/pre>\n<p>\u3053\u308c\u3067localhost:8080\u306b\u30a2\u30af\u30bb\u30b9\u3059\u308b\u3068wordpress\u306e\u521d\u671f\u5316\u30da\u30fc\u30b8\u304c\u8868\u793a\u3055\u308c\u308b<br \/>\nlocalhost:8888\u306b\u30a2\u30af\u30bb\u30b9\u3059\u308b\u3068phpmyadmin\u304c\u8868\u793a\u3055\u308c\u308b\u306e\u3067\u30b3\u30f3\u30c6\u30ca\u540d\u306eDB\u3067mysql\u30a2\u30ab\u30a6\u30f3\u30c8\u3067\u30ed\u30b0\u30a4\u30f3\u3059\u308b<br \/>\nlocalhost:10000\u306b\u30a2\u30af\u30bb\u30b9\u3059\u308b\u3068webmin\u304c\u8868\u793a\u3055\u308c\u308b\u306e\u3067admin\u3068\u8a2d\u5b9a\u3057\u305f\u30d1\u30b9\u30ef\u30fc\u30c9\u3067\u30ed\u30b0\u30a4\u30f3\u3059\u308b<\/p>\n<p>\u30b5\u30a4\u30c8\u306e\u79fb\u884c\u306a\u3069\u3067All-in-One WP Migration\u30d7\u30e9\u30b0\u30a4\u30f3\u3092\u4f7f\u7528\u3057\u3066\u3044\u3066\u30b5\u30a4\u30ba\u304c\u5927\u304d\u3044\u5834\u5408\u306fwordpress\u30b3\u30f3\u30c6\u30ca\u306e.htaccess\u306b\u4ee5\u4e0b\u3092\u66f8\u304d\u52a0\u3048\u308b\u4e8b\u3067200MB\u307e\u3067\u306e\u30c7\u30fc\u30bf\u306e\u79fb\u884c\u304c\u53ef\u80fd<\/p>\n<pre>php_value upload_max_filesize 200M\r\nphp_value post_max_size 200M\r\nphp_value memory_limit 512M\r\nphp_value max_execution_time 600\r\nphp_value max_input_time 600\r\n<\/pre>\n<p>\u307e\u305f\u3001\u672a\u4f7f\u7528\u306evolume\u4f55\u304b\u304c\u6b8b\u5b58\u3057\u3066\u91cd\u304f\u306a\u3063\u3061\u3083\u3046\u3068\u56f0\u308b\u306e\u3067\u672a\u4f7f\u7528\u306evolume\u306f\u524a\u9664\u3057\u3066\u304a\u304f<\/p>\n<pre>docker volume prune\r\nWARNING! This will remove anonymous local volumes not used by at least one container.\r\nAre you sure you want to continue? [y\/N] y\r\nDeleted Volumes:\r\n69fa4cfccf245eab3f2b37cfc6d4e30ddd2adb3eb41addd71bcd46d8e36898af\r\n934d3d7ebac1f07579d2bed96879e10f3bf26d53d9b06e4dd5d2838b83f9e66e\r\na28836400e24de9ccae7a14d9c028b1bdce21a71c603c1142bfddd99adc4723c\r\nfe141f11b36407fd4a7847bd9c89e667879bea1555ab8bb28edaf7ec5ca4d15d\r\n3cc3939adb74459155e84944504504f82451b027b101b7c9a09addb185cfc25f\r\nbf0f35973dcd45173fb2d166873399d26155733a7b3582d9a8a9a35e5be392d7\r\nfad7f8294d6678bed1403f817c745410e761d95dba812884db974cba394d55fe\r\n\r\nTotal reclaimed space: 1.06GB\r\n\r\ndocker volume ls\r\nDRIVER    VOLUME NAME\r\nlocal     docker-compose_data-volume<\/pre>\n<p>1.06GB\u3082\u3042\u3063\u305f\u3002<\/p>\n<p>\u3067\u3001\u4eca\u306eDB\u3092\u30d0\u30c3\u30af\u30a2\u30c3\u30d7\u3059\u308b<\/p>\n<pre>mysqldump --single-transaction -u root -p my_db &gt; .\/my_db.dump<\/pre>\n<p>dump\u30d5\u30a1\u30a4\u30eb\u3092winscp\u306a\u3069\u3067\u73fe\u30b5\u30fc\u30d0\u304b\u3089DL\u3057\u3066\u3001\u65b0\u30b5\u30fc\u30d0\u306epublic_html\u306e\u4e2d\u306b\u30b3\u30d4\u30fc\u3057\u3066\u3001wodpress\u30b3\u30f3\u30c6\u30ca\u306b\u5165\u3063\u3066\u305d\u3053\u304b\u3089mysql\u306b\u30ea\u30b9\u30c8\u30a2<\/p>\n<pre>docker container exec -it plusload-wordpress bash\r\nmysql -h plusload-mysql -u root -p my_db &lt; my.dump<\/pre>\n<p>\u3064\u3044\u3067\u306bdockerui(docker\u306e\u898b\u3048\u308b\u5316)\u3082\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u3066\u304a\u304f<\/p>\n<pre>docker pull kevan\/dockerui\r\ndocker run -d -p 9000:9000 --name plusload-dockerui -v \/var\/run\/docker.sock:\/var\/run\/docker.sock kevan\/dockerui<\/pre>\n<p>WP\u30b3\u30f3\u30c6\u30ca\u304b\u3089mysql\u30b3\u30de\u30f3\u30c9\u304c\u6253\u3066\u306a\u3044\u5834\u5408\u306fclient\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3059\u308b<\/p>\n<pre>apt install mriadb-client<\/pre>\n<p>PDO\u3067\u8a2d\u5b9a\u3059\u308b\u30db\u30b9\u30c8\u540d\u306f\u30b3\u30f3\u30c6\u30ca\u540d\u306b\u306a\u308b<br \/>\nWP\u30b3\u30f3\u30c6\u30ca\u306e\u4e2d\u3067PDO\u304c\u30c9\u30e9\u30a4\u30d0\u30fc\u304c\u306a\u3044\u306e\u3067\u4f7f\u3048\u306a\u3044\u5834\u5408\u306fPDO\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3059\u308b<\/p>\n<pre>docker container exec -it plusload-wordpress bash\r\ndocker-php-ext-install pdo pdo_mysql<\/pre>\n<p>\u305d\u3057\u305f\u3089\u30b3\u30f3\u30c6\u30ca\u5185\u306eapache2\u3092\u30ea\u30b9\u30bf\u30fc\u30c8\u3067\u53cd\u6620\u3055\u308c\u308b<\/p>\n<pre>service apache2 restart<\/pre>\n<p>docker-compose\u304c\u7d42\u4e86\u3057\u3066\u518d\u8d77\u52d5\u3059\u308b\u3068\u307e\u305f\u5143\u306b\u623b\u3063\u3061\u3083\u3046\u306e\u3067\u5909\u66f4\u3057\u305fwordpress\u30b3\u30f3\u30c6\u30ca\u3092\u4fdd\u5b58\u3057\u3068\u304f<\/p>\n<pre>docker ps\r\nCONTAINER ID    IMAGE      \u30fb\u30fb\u30fb\r\n7g6524dffd5g    wordpress  \u30fb\u30fb\u30fb\r\n\r\ndocker commit 7g6524dffd5g wordpress_new:0.0.1\r\nsha256:32565498512\u30fb\u30fb\u30fb\u30fb\u30fb\r\n\r\ndocker image\r\nREPOSITORY    TAG     IMAGE ID    \u30fb\u30fb\u30fb\u30fb\r\nwordpress_new 0.0.1   325654985    \u30fb\u30fb\u30fb\r\nwordpress     latest  2d6f58477<\/pre>\n<p>wordpress\u304c\u5143\u306e\u30b3\u30f3\u30c6\u30ca\u30a4\u30e1\u30fc\u30b8\u3067wordpress_new\u304c\u65b0\u3057\u304f\u4f5c\u3063\u305f\u30b3\u30f3\u30c6\u30ca\u30a4\u30e1\u30fc\u30b8<br \/>\n\u306a\u306e\u3067docker-compose.yaml\u3082\u5909\u66f4\u3057\u3066\u304a\u304f<\/p>\n<pre>    image: wordpress_new:0.0.1<\/pre>\n<p>image\u306e\u3068\u3053\u3060\u3051\u5909\u66f4\u3057\u3068\u304f<\/p>\n<p>\u30e1\u30fc\u30eb\u30b5\u30fc\u30d0(imap)\u3082\u30b3\u30f3\u30c6\u30ca\u3067\u7528\u610f\u3059\u308b<\/p>\n<pre>docker pull dovecot\/dovecot\r\n\r\ndocker run -p 143:143 -p 993:993 -d --name imap dovecot\/dovecot\r\n#\u8d77\u52d5\u3057\u305f\u30b3\u30f3\u30c6\u30ca\u306b\u5165\u308adovecot.conf\u3092\u7de8\u96c6\u3059\u308b\r\ndocker exec -it imap \/bin\/bash\r\n\r\napt update\r\napt install vim -y\r\n\r\nvi \/etc\/dovecot\/dovecot.conf\r\n\r\n#\u6700\u7d42\u884c\u306b\u8ffd\u52a0\r\ndisable_plaintext_auth= no<\/pre>\n<p>\u3053\u308c\u3067\u30b3\u30f3\u30c6\u30ca\u518d\u8d77\u52d5<\/p>\n<pre>docker restart imap<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>\u307e\u305a\u3001Ubuntu20.04\u306bDocker\u3068docker-compose\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3059\u308b\u3002 sudo apt update # update packege list sudo mkdir -p \/etc\/apt\/ke&hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4,5,1],"tags":[],"class_list":["post-1068","post","type-post","status-publish","format-standard","hentry","category-mysql","category-php","category-1"],"_links":{"self":[{"href":"https:\/\/plusload.net\/index.php?rest_route=\/wp\/v2\/posts\/1068","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/plusload.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/plusload.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/plusload.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/plusload.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1068"}],"version-history":[{"count":27,"href":"https:\/\/plusload.net\/index.php?rest_route=\/wp\/v2\/posts\/1068\/revisions"}],"predecessor-version":[{"id":1371,"href":"https:\/\/plusload.net\/index.php?rest_route=\/wp\/v2\/posts\/1068\/revisions\/1371"}],"wp:attachment":[{"href":"https:\/\/plusload.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1068"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/plusload.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1068"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/plusload.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1068"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}