WordPressをDocker上に建てる

- Windows 11
- Git Bash
- Virtualbox
- Vagrant
- Docker CE
- WordPress

[Git Bash]

$ mkdir wpvm
$ cd wpvm
$ vagrant init bento/ubuntu-22.04
$ vim Vagrantfile
----
#config.vm.network "private_network", ip: "192.168.33.10"
config.vm.network "private_network", ip: "192.168.56.10" # 自PCの環境に合わせて適切に書き換える
----
$ vagrant up
$ vagrant ssh

[VM内]

OSバージョン確認
$ cat /etc/lsb-release
⇒ バージョン 22.04

dockerバージョン確認
$ sudo apt info docker
⇒ バージョン 1.5-2 は古い

dockerリポジトリを最新化
$ sudo apt-get update
$ sudo apt-get install apt-transport-https ca-certificates curl gnupg lsb-release
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
$ echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
$ cat /etc/apt/sources.list.d/docker.list
$ sudo apt-get update

docker ceのバージョン確認
$ sudo apt info docker-ce
dockerのインストール
$ sudo apt-get install docker-ce docker-ce-cli docker-compose containerd.io docker-compose-plugin
$ sudo docker version
⇒バージョン 20.10.16

$ docker version
⇒ 一般ユーザーでの操作だとパーミッションエラー

dockerグループにvagrantユーザーを加える
$ sudo usermod -aG docker vagrant
$ exit

[Git Bash]

$ vagrant ssh

[VM内]

$ docker version
⇒ パーミッションエラーなし

$ mkdir wp
$ cd wp
$ vim docker-compose.yml
----
version: '3'

services:
db:
image: mysql:5.7
volumes:
- db_data:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: somewordpress
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress

wordpress:
depends_on:
- db
image: wordpress:latest
ports:
- "8000:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
volumes:
db_data:
----

$ docker container ls

起動
$ docker-compose up -d

$ docker container ls

ブラウザで以下にアクセス
http://192.168.56.10:8000

停止
$ docker-compose stop

$ docker container ls
⇒起動中のものはなくなっている

$ docker container ls -a
⇒CONTAINER ID を確認する

お掃除
$ docker container rm