「手軽に使うDockerの本」の感想・備忘録

スポンサーリンク

点数

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

コメント