PostgreSQLも追記。
仮想マシン作成
vagrant box add centos7.2 https://github.com/CommanderK5/packer-centos-template/releases/download/0.7.2/vagrant-centos-7.2.box
vagrant init centos7.2
vagrant up
vagrant init centos7.2
vagrant up
vagrant で centos7.xを立ち上げる
Docker インストール
vagrant ssh
sudo yum update
sudo yum install -y docker
sudo systemctl enable docker
sudo systemctl start docker
sudo yum update
sudo yum install -y docker
sudo systemctl enable docker
sudo systemctl start docker
Dockerの実行に権限変更が必要。
sudo groupadd docker
sudo usermod -g docker vagrant
sudo /bin/systemctl restart docker.service
exit
vagrant ssh
sudo usermod -g docker vagrant
sudo /bin/systemctl restart docker.service
exit
vagrant ssh
Docker compose インストール
sudo curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
MySQL立ち上げ
docker-compose.yml 作成
version: '3.7' services: db: image: mysql:5.7 ports: - "43306:3306" volumes: # 初期データを投入するSQLが格納されているdir - ./mysql_init:/docker-entrypoint-initdb.d # 永続化するときにマウントするdir - ./mysql_data:/var/lib/mysql - ./mysql_conf/:/etc/mysql/conf.d environment: MYSQL_ROOT_PASSWORD: root MYSQL_USER: test MYSQL_PASSWORD: test
mysql5.7より新しいバージョンだと若干面倒。
MySQL立ち上げ、動作確認
docker-compose up -d
確認
[vagrant@localhost ~]$ docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
4542ee84ec0b mysql:5.7 "docker-entrypoint..." 3 minutes ago Up About a minute 33060/tcp, 0.0.0.0:43306->3306/tcp mysql_db_1
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
4542ee84ec0b mysql:5.7 "docker-entrypoint..." 3 minutes ago Up About a minute 33060/tcp, 0.0.0.0:43306->3306/tcp mysql_db_1
共有ディレクトリにデータを置くとパフォーマンスに問題が出てくるので注意。
ホストOSからアクセス
ここまで手順通りならアクセス情報は下記になる。A5SQLなどで確認。
Host:192.168.33.10
Username:root
Password:root
Port:43306
Username:root
Password:root
Port:43306
PostgreSQLの構築
version: '3.7' postgresql: image: postgres:12.5 container_name: postgresql ports: - 45432:5432 volumes: - ./postgres/init:/docker-entrypoint-initdb.d environment: POSTGRES_USER: root POSTGRES_PASSWORD: root POSTGRES_DB: test POSTGRES_INITDB_ARGS: "--encoding=UTF-8" hostname: postgres restart: always user: root
参考
https://qiita.com/TAMIYAN/items/ed9ec892d91e5af962c6
https://budougumi0617.github.io/2018/05/20/create-instant-mysql-by-docker/