サイトアイコン 上尾市のWEBプログラマーによるブログ

「Dockerを基本から学ぶ」の感想・備忘録

kindle本「Dockerを基本から学ぶ」のまとめ。

点数

77点

感想

短い内容だが、わかりやすかった。

最終章のAWS ECSの説明は、もう少し丁寧に書いて欲しかった。

Docker Hubからイメージを取得する

docker image pull httpd

イメージを取得しなくても、docker container runだけでイメージ取得⇒コンテナ起動、まで行われる。

コンテナ起動

docker container run -d -p 8081:80 httpd

データの永続化

docker container run -d -p 8081:80 -v /usr/hoge/htdocs:/usr/local/apache2/htdocs/ httpd

※ 相対パスにしたい場合は$(PWD)/htdocsのようにする

終了時にコンテナを削除

一時的にプログラムをコンテナで確認したい場合などは–rmを付ける。

docker container run -v ./hoge:/data/hoge/ -it -rm python /bin/bash

⇒exitでターミナルを終了するとコンテナも削除される。

CentOSでApacheを動かすDockerfile

FROM centos
RUN yum -y update
RUN yum -y install httpd
COPY htdocs/ /var/www/html
CMD ["/usr/sbin/httpd", "-D", "FOREGROUND"]

Docker Composeで複数のコンテナを起動する

  1. docker-compose.ymlファイルを作成
  2. docker-compose up -dでコンテナ起動
version: '3'
services:
  web:
    build: ./nginx
    ports:
      - '8080:80'
    links:
      - php-fpm
    volumes:
      - ./data:/usr/share/nginx/html
  php-fpm:
    build: ./php-fpm
    links:
      - db
    volumes:
      - ./data:/usr/share/nginx/html
  db:
    build: ./mysql
    command: --default-authentication-plugin=mysql_native_password
    environment:
       MYSQL_ROOT_PASSWORD: rootpass
       MYSQL_USER: user
       MYSQL_PASSWORD: userpass
       MYSQL_DATABASE: sample

mysqlイメージ

以下の記述でルートパスワード、ユーザー、ユーザーのパスワード、データベース名、を指定している。

environment:
  MYSQL_ROOT_PASSWORD: rootpass
  MYSQL_USER: user
  MYSQL_PASSWORD: userpass
  MYSQL_DATABASE: sample

以下のサイトに説明がある。
https://hub.docker.com/_/mysql

モバイルバージョンを終了