あなたはITリテラシーと、説明力の高い教授です。
docker と docker-compose の説明、それぞれの関係性について詳しく教えてください。
Dockerfileとは、docker-compose.ymlなどのことですか?
複数のDockerコンテナという表現について、疑問です。
Dockerを使ってwordpressサイトの環境を立ち上げる場合、 webサーバー、データベース、phpmyadmin、CMSなどの一式が入ったものをDockerコンテナといいますか?
webサーバーで一つのDockerコンテナ、データベースで一つのDockerコンテナ、phpmyadminで一つのDockerコンテナ、CMSで一つのDockerコンテナ、合わせて複数のDockerコンテナ、ということですか?
複数のDockerコンテナが組み合わさってできた「wordpressサイトの環境」のことも一つのDockerコンテナといいますか?
Dockerfileとは、単一のDockerコンテナの設定を記載したファイル、docker-compose.ymlは、複数のDockerコンテナを定義するもの、それらをひっくるめて一斉に立ち上げ、シャットダウンなどを制御するのがDocker-Composeという理解であってますか?
docker pull wordpress
docker pull mysql
などでDockerイメージを取得しますが、DockerコンテナとDockerイメージはどのように違いますか?
DockerイメージとDockerfileの違いはなんですか?
Dockerfileに書いてある内容に従ってDockerイメージが出来上がる。 最初は空のdockerコンテナに、Dockerイメージを使って、中身(webサーバーやdbサーバーなど)を入れる。
複数のコンテナを組み合わせて一つの開発環境やデプロイ環境を作るために、docker-composeを使ってひとまとまりにする、というようなイメージでしょうか?
例えば、
dockerコンテナA:apache
dockerコンテナB:MySQL
dockerコンテナC:phpmyadmin
dockerコンテナD:wordpress
というコンテナを取得済みのdockerで、二つのwordpressサイトを立ち上げる場合、
二つのdocker-composeが必要になるかと思いますが、二つのdocker-composeから操作するコンテナはそれぞれ
dockerコンテナA、dockerコンテナB、dockerコンテナC、dockerコンテナDですか?
それとも
docker-composeアルファ用の
dockerコンテナA:apache
dockerコンテナB:MySQL
dockerコンテナC:phpmyadmin
dockerコンテナD:wordpress
と、
docker-composeベータ用の
dockerコンテナE:apache
dockerコンテナF:MySQL
dockerコンテナG:phpmyadmin
dockerコンテナH:wordpress
が必要ですか?
version: '3'
services:
webserver:
image: apache
mysql:
image: mysql
phpmyadmin:
image: phpmyadmin
wordpress_1:
image: wordpress
environment:
WORDPRESS_DB_HOST: mysql
WORDPRESS_DB_NAME: wordpress_1
wordpress_2:
image: wordpress
environment:
WORDPRESS_DB_HOST: mysql
WORDPRESS_DB_NAME: wordpress_2
Wordpress環境(apache/mysql/wordpress5.8)がすでに作られているところにあとから、もう一つのwordpress環境(nginx/MariaDB/wordpress6.1)を追加で作る場合にはどのようになりますか?
FROM nginx:latest
RUN apt-get update && \
apt-get install -y mariadb-client
COPY default.conf /etc/nginx/conf.d/default.conf
version: '3'
services:
nginx:
build: .
ports:
- "8080:80"
depends_on:
- db
db:
image: mariadb
environment:
MYSQL_ROOT_PASSWORD: example
wordpress:
image: wordpress:5.8
depends_on:
- db
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: root
WORDPRESS_DB_PASSWORD: example
ports:
- "8081:80"
docker-compose up
wordpress環境を2つとは別に、ubuntuOSとpython3の環境が必要な場合は.ymlファイルが3つ必要ということですか?
wordpress1.yml
wordpress2.yml
ubuntu-python3.yml
version: "3"
services:
wordpress1:
image: wordpress:5.8-apache
ports:
- "8001:80"
environment:
WORDPRESS_DB_HOST: db1
WORDPRESS_DB_NAME: wordpress
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: example
wordpress2:
image: wordpress:6.1-nginx
ports:
- "8002:80"
environment:
WORDPRESS_DB_HOST: db2
WORDPRESS_DB_NAME: wordpress
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: example
db1:
image: mysql:latest
environment:
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: example
MYSQL_RANDOM_ROOT_PASSWORD: "1"
db2:
image: mariadb:latest
environment:
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: example
MYSQL_RANDOM_ROOT_PASSWORD: "1"
ubuntu-python:
image: ubuntu:latest
command: tail -f /dev/null
Dockerコンテナ(DoclerイメージでありDockerfile)は、どの単位で一つですか? pthon環境のコンテナには、その前提にある何かしらのOSも一緒に含まれているのですか?
apache、MySQL、phpMyAdmin、wordpressで4つのコンテナを使う場合もあれば、 それら4つが設定されたDockerfileでDockerイメージを作成すれば、1つのコンテナでwordpressサイトの環境ができるということですか?