on
Vagrant에서 Docker로 wordpress+mysql 연동/배포하기
Vagrant에서 Docker로 wordpress+mysql 연동/배포하기
vagrant control vm과 node를 2개 생성하겠다.
기존 vagrant를 destroy하고 진행한다.
$ vagrant destroy -f
Vagranfile을 수정한다.
# -*- mode: ruby -*- # vi: set ft=ruby : Vagrant.configure("2") do |config| # kube-control1 VM config.vm.define "kube-control1" do |config| config.vm.box = "ubuntu/focal64" config.vm.provider "virtualbox" do |vb| vb.name = "kube-control1" vb.cpus = 2 vb.memory = 3000 end config.vm.hostname = "kube-control1" config.vm.network "private_network", ip: "192.168.100.11" end # kube-node1 VM config.vm.define "kube-node1" do |config| config.vm.box = "ubuntu/focal64" config.vm.provider "virtualbox" do |vb| vb.name = "kube-node1" vb.cpus = 2 vb.memory = 3000 end config.vm.hostname = "kube-node1" config.vm.network "private_network", ip: "192.168.100.21" end # kube-node2 VM config.vm.define "kube-node2" do |config| config.vm.box = "ubuntu/focal64" config.vm.provider "virtualbox" do |vb| vb.name = "kube-node2" vb.cpus = 2 vb.memory = 3000 end config.vm.hostname = "kube-node2" config.vm.network "private_network", ip: "192.168.100.22" end # Hostmanager Plugin config.hostmanager.enabled = true config.hostmanager.manage_guest = true # Provision config.vm.provision "shell", inline: <<-SHELL sed -i 's/ChallengeResponseAuthentication no/ChallengeResponseAuthentication yes/g' /etc/ssh/sshd_config sed -i 's/archive.ubuntu.com/ftp.daum.net/g' /etc/apt/sources.list sed -i 's/security.ubuntu.com/ftp.daum.net/g' /etc/apt/sources.list systemctl restart ssh apt update apt install -y chrony SHELL end
vagrant에서 host manager plug in을 설치한다.
$ vagrant plugin install vagrant-hostmanager
vm을 생성하고 가동한다.
$ vagrant up
vm 으로 접속한다.
$ vagrant ssh kube-control1
나중의 Kubernetes 사용을 위해 docker를 설치한다.
# Update the apt package index and install packages to allow apt to use a repository over HTTPS: $ sudo apt-get update $ sudo apt-get install \\ apt-transport-https \\ ca-certificates \\ curl \\ gnupg \\ lsb-release# Add Docker’s official GPG key:$ curl -fsSL[https://download.docker.com/linux/ubuntu/gpg](https://download.docker.com/linux/ubuntu/gpg)| sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg# Add stable reposoitory$ echo \\ "deb \[arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg\][https://download.docker.com/linux/ubuntu](https://download.docker.com/linux/ubuntu)\\ $(lsb\_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null # Install docker engine$ sudo apt-get update$ sudo apt-get install docker-ce docker-ce-cli containerd.io
$ systemctl status docker 명령어로 docker 상태를 확인한다.
enable, active상태가 아니라면 $ systemctl enable docker --now 를 입력해준다.
sudo 명령어 없이 docker를 사용할 수 있도록 vagrant그룹을 docker의 소유권에 추가한다.
$ sudo usermod -aG docker vagrant
이제 wordpress와 mysql 컨테이너를 각각 생성해보자
mysql5.7 설치하기 mysql 환경변수 MYSQL_ROOT_PASSWORD=... MYSQL_DATABASE=... MYSQL_USER=... MYSQL_PASSWORD=... 볼륨 /var/lib/mysql
$ docker run -d --name wpdb -e MYSQL\_ROOT\_PASSWORD=toor -e MYSQL\_DATABASE=wpdb -e MYSQL\_USER=wp -e MYSQL\_PASSWORD=wppass -v wpdb:/var/lib/mysql mysql:5.7
워드프레스5.7 설치하기 워드 프레스 환경변수 -e WORDPRESS_DB_HOST=... -e WORDPRESS_DB_USER=... -e WORDPRESS_DB_PASSWORD=... -e WORDPRESS_DB_NAME=... 볼륨 /var/www/html 포트포워딩 필요
https://hub.docker.com/_/wordpress
$ docker run -d -p 8080:80 --name wp --link wpdb:wpdb -e WORDPRESS\_DB\_HOST=wpdb -e WORDPRESS\_DB\_USER=wp -e WORDPRESS\_DB\_PASSWORD=wppass -e WORDPRESS\_DB\_NAME=wpdb -v wp:/var/www/html wordpress:5.7
--link wpdb:wpdb 옵션으로 db와 직접 연결해줘야한다.
$ curl localhost:8080 으로 접속 시 컨테이너의 80포트로 포트포워딩 되어 접속이 가능하다!
from http://zzerii.tistory.com/50 by ccl(A) rewrite - 2021-06-22 15:59:05