docker로 drupal 배포

강재민·2022년 5월 10일
1

Docker

목록 보기
2/7

docker 설치


drupal 설치

docker pull mysql:5.7
docker pull drupal

###mysql은 5.7버전을 받아주고 drupal은 가장 최신 버전을 받아준다.

DB전용 volume 생성

docker volume create mysql-data		#DB전용 볼륨 생성
docker volume inspect mysql-data
### 아래와 같은 결과가 출력된다.
[
    {
        "CreatedAt": "2022-05-10T13:24:39Z",
        "Driver": "local",
        "Labels": {},
        "Mountpoint": "/var/lib/docker/volumes/mysql-data/_data",
        "Name": "mysql-data",
        "Options": {},
        "Scope": "local"
    }
]

바로가기 편한 디렉토리 연결

sudo ln -s /var/lib/docker/volumes/mysql-data/_data /mysql

###데이터베이스에 접근할 수 있는 바로가기 디렉토리를 하나 연결해준다.

DB 컨테이너 실행

docker run -d --name mysql-server -v mysql-data:/var/lib/mysql -e "MYSQL_ROOT_PASSWORD=dkagh1." -e MYSQL_USER=drupal -e "MYSQL_PASSWORD=dkagh1." -e "MYSQL_DATABASE=drupal" mysql:5.7

###생성한 볼륨을 사용하여 MySQL 컨테이너를 시작합니다.

drupal 데이터 저장용 볼륨 생성

docker volume create drupal-modules
docker volume create drupal-profiles
docker volume create drupal-sites
docker volume create drupal-themes

###도커 볼륨을 만들어 Drupal 영구 데이터를 저장
docker volume inspect drupal-modules
docker volume inspect drupal-profiles
docker volume inspect drupal-sites
docker volume inspect drupal-themes

###생성한 볼륨 확인
sudo mkdir /drupal
sudo ln -s /var/lib/docker/volumes/drupal-modules/_data /drupal/modules
sudo ln -s /var/lib/docker/volumes/drupal-profiles/_data /drupal/profiles
sudo ln -s /var/lib/docker/volumes/drupal-sites/_data /drupal/sites
sudo ln -s /var/lib/docker/volumes/drupal-themes/_data /drupal/themes

###선택적으로 더 쉬운 액세스 위치에 대한 기호 링크를 만듭니다.

생성한 볼륨을 사용하여 drupal 컨테이너 실행

docker run -d --name drupal -p 80:80 -v drupal-modules:/var/www/html/modules -v drupal-profiles:/var/www/html/profiles -v drupal-sites:/var/www/html/sites -v drupal-themes:/var/www/html/themes --link mysql-server:mysql -e MYSQL_USER=drupal -e "MYSQL_PASSWORD=dkagh1." drupal

배포 확인

크롬창에 리눅스 private ip 주소를 입력해서 drupal 사이트에 접속해본다.

결과 사진

제거

제거할 때 루트 /에 있는 drupal과 mysql 디렉토리를 지워주는 것을 잊지말자

docker ps -a			#제거할 컨테이너 id 확인
docker rm -f 497 19b	#컨테이너 강제 삭제
docker volume prune		#사용하지 않는 볼륨 모두 삭제
docker images			#제거할 이미지 id 확인
docker rmi -f 8aa e82 	#이미지 강제 삭제
cd /					#루트 디렉토리로 이동
sudo rm -d -r drupal	#-d는 디렉토리 제거
sudo rm -d -r mysql		#-r은 디렉토리 안에 내용이 있어도 강제로 제거

0개의 댓글