(今更ながら)さくっとdocker-composeでworpdressを作ったので忘備録。
ubuntu18.04で書いてるけど、CentOSでもcomposeの操作は全く同じ。
dokcerとdocker-composeをインストール
dockerは公式の情報そのまんま入れます。
composeも最後に一緒に入れます。
・関連パッケージインストールとGPGキーの追加
sudo apt update
sudo apt install -y apt-transport-https ca-certificates curl gnupg-agent software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
・フィンガープリント確認
9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88
と表示されていることを確認する
sudo apt-key fingerprint 0EBFCD88
・リポジトリ追加
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
・dockerとdocker-composeのインストール
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io
↑ここで一緒にdocker-composeも入れてOKだけど、ubuntu16.04などでは古いバージョンが入って
下記のymlファイルが上手く読み込めないので最新を取ってきます。
(2019/09/24時点での最新は1.24.1)
・docker-composeのインストール
インストールと言うより直接実行ファイルをダウンロードして実行権限をつけるだけ
curl -L https://github.com/docker/compose/releases/download/1.24.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
docker-compose.ymlを作る
下記の内容で~/workなど適当なディレクトリにdocker-compose.ymlという名前で保存する
version: '3.1'
services:
wordpress:
image: wordpress
restart: always
ports:
- 8080:80
environment:
WORDPRESS_DB_HOST: db
WORDPRESS_DB_USER: exampleuser
WORDPRESS_DB_PASSWORD: examplepass
WORDPRESS_DB_NAME: exampledb
volumes:
- wordpress:/var/www/html
db:
image: mysql:5.7
restart: always
environment:
MYSQL_DATABASE: exampledb
MYSQL_USER: exampleuser
MYSQL_PASSWORD: examplepass
MYSQL_RANDOM_ROOT_PASSWORD: '1'
volumes:
- db:/var/lib/mysql
volumes:
wordpress:
db:
・設定で気になるところを直す
例えば
・ ports: 待ち受けポート 8080じゃなくて80にしてもよい
・ DB_USER / DB_PASSWORD / DB_NAME : DB接続情報。好きな値に変更してOK
変更した場合は下のMYSQL_DATABASE/MYSQL_USER/MYSQL_PASSWORD も同じ内容に変更する
起動
root以外でも使いたい場合は下記コマンドで使用ユーザを指定してログインしなおす
sudo usermod -aG docker ユーザ名
※dokcerが使える=サーバを色々操作できる強力な権限を与える為、必要無いならこのコマンド入れずに下記コマンドの頭にsudoつける方法でもよい。
docker-compose.ymlがあるディレクトリに移動して
docker-compose up -d
これで起動完了。
サーバ落とすなどで起動を一旦停止する場合は
docker-compose stop
再度動かす場合は
docker-compose start
コンテナ自体を削除する場合は
docker-compose down
でOK
あとは http://自分のサーバIP(or ドメイン):指定したポート
でアクセスできる。
wordpressのインストール画面が出てきたら完了です。
dockerのrunコマンドでパラメータ指定するよりdocker-compose.ymlで設定するほうが見やすのでcomposeオススメ。
複数コンテナもまとめて書けるので管理がしやすい。
参考:
docker 公式ページ(インストール方法など):https://docs.docker.com/install/linux/docker-ce/ubuntu/
Docker Hub - wordpress : https://hub.docker.com/_/wordpress