点数
73点
感想
Dockerについて細かい解説をするのではなくとにかく動かす、という内容でわかりやすかった。
そのため、dockerコマンドは使わずに、docker composeコマンドを使ってコンテナを起動している。
前半に書かれているWEBサーバやDBサーバは使うことが多いが、後半は特殊なコンテナが扱われているため参考にならなかった。
dockerでnginxを動かすための設定・書き方
version: "3"
services:
nginx:
image: nginx:latest
container_name: nginx
ports:
- "8080:80"
volumes:
- ./default.conf:/etc/nginx/conf.d/default.conf
- ./html:/var/www/html
server {
listen 80;
server_name localhost;
location / {
root /var/www/html;
index index.html;
}
}
dockerでMySQLを動かすための設定・書き方
version: "3"
services:
db:
image: mysql:8.0
volumes:
- ./dbdata:/var/lib/mysql
- ./my.cnf:/etc/mysql/conf.d/my.cnf
- ./init.sql:/docker-entrypoint-initdb.d/init.sql
ports:
- "3306:3306"
environment:
MYSQL_ROOT_PASSWORD: hoge
MYSQL_USER: taro
MYSQL_PASSWORD: taro123
MYSQL_DATABASE: sample
TZ: Asia/Tokyo
user: "1000:1000"
[mysqld]
character_set_server=utf8mb4
collation-server=utf8mb4_unicode_ci
[mysql]
default-character-set=utf8mb4
[client]
default-character-set=utf8mb4
create table books(id MEDIUMINT NOT NULL AUTO_INCREMENT, name varchar(100),PRIMARY KEY (id));
insert into books(name) values("test book");
dockerでWordPressを動かすための設定・書き方
wordpressイメージにはApacheが内包されている。
wordpress:
image: wordpress:6.4.2-php8.3
ports:
- "8081:80"
volumes:
- ./wordpress/html:/var/www/html
- ./wordpress/php.ini:/usr/local/etc/php/php.ini
depends_on:
- wp-db
environment:
WORDPRESS_DB_HOST: wp-db
WORDPRESS_DB_USER: wpuser
WORDPRESS_DB_PASSWORD: hogehoge123
WORDPRESS_DB_NAME: wptest
TZ: Asia/Tokyo
wp-db:
image: mysql:8.0
volumes:
- ./wordpress/dbdata:/var/lib/mysql
- ./my.cnf:/etc/mysql/conf.d/my.cnf
ports:
- "3306:3306"
environment:
MYSQL_ROOT_PASSWORD: hoge
MYSQL_USER: wpuser
MYSQL_PASSWORD: hogehoge123
MYSQL_DATABASE: wptest
TZ: Asia/Tokyo
user: "1000:1000"
post_max_size = 50M
upload_max_size = 50M
[mysqld]
character_set_server=utf8mb4
collation-server=utf8mb4_unicode_ci
[mysql]
default-character-set=utf8mb4
[client]
default-character-set=utf8mb4
dockerでWordPressを動かすための設定・書き方(nginxの場合)
- nginxの場合、PHPはFastCGIとして動作するものを使うのでイメージはwordpress:x.x.x-phpx.x-fpmを使う。
- nginxのみホストからのアクセスが必要となるのでportsを定義し、wordpressとwp-dbはコンテナ間のアクセスのみ必要になるのでexposeを定義する。
version: "3"
services:
nginx:
image: nginx:latest
ports:
- "8080:80"
depends_on:
- wordpress
volumes:
- ./default.conf:/etc/nginx/conf.d/default.conf
- ./html:/var/www/html
wordpress:
image: wordpress:6.4.3-php8.3-fpm
volumes:
- ./html:/var/www/html
- ./php.ini:/usr/local/etc/php/php.ini
expose:
- '9000'
depends_on:
- wp-db
environment:
WORDPRESS_DB_HOST: wp-db
WORDPRESS_DB_USER: wpuser
WORDPRESS_DB_PASSWORD: hogehoge123
WORDPRESS_DB_NAME: wptest
TZ: Asia/Tokyo
wp-db:
image: mysql:8.0
volumes:
- ./dbdata:/var/lib/mysql
- ./my.cnf:/etc/mysql/conf.d/my.cnf
expose:
- '3306'
environment:
MYSQL_ROOT_PASSWORD: hoge
MYSQL_USER: wpuser
MYSQL_PASSWORD: hogehoge123
MYSQL_DATABASE: wptest
TZ: Asia/Tokyo
user: "1000:1000"
server {
listen 80;
server_name localhost;
root /var/www/html;
index index.php;
access_log /var/log/nginx/access.Log;
error_log /var/log/nginx/error.Log;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass wordpress:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
}
post_max_size = 50M
upload_max_size = 50M
[mysqld]
character_set_server=utf8mb4
collation-server=utf8mb4_unicode_ci
[mysql]
default-character-set=utf8mb4
[client]
default-character-set=utf8mb4