728x90
docker 설치
https://docs.docker.com/engine/install/ubuntu/ Docker를 ubuntu환경에 설치하는 방법은 위의 링크에 잘 나와있지만 내 나름대로 한 번 정리해 보았다. Docker 설치하기sudo apt update #패키지 목록 가져오기sudo apt install -y 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 ### 도커 리스트 sudo apt update #설치하기전에 업데이트 sudo apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin ###설치명령어 Docker 설치후 확인systemctl status docker #docker 실행 확인docker ps #해보면 오류가 남 sudo doker ps #해보면 오류가 안남 ### docker 명령어는 기본적으로 root사용자 또는 docker 그룹내의 사용자만 사용할 수 있음 Docker 그룹에 사용자 넣어주기tail /etc/group에서 docker라는 그룹이 같이 세팅이 되고 ps -ef | grep dockerd 하면 root에 의해서 실행되는거 확인 가능 id vagrant사용자는 vagrant그룹에 되어있다. sudo usermod -aG docker vagrant vagrant 사용자를 docker그룹에 넣는것이다. 이렇게 해주고 나서 터미널을 닫았다가 열어주어야한다.이거는 로그인할 때 변경사항이 적용되기 때문에 나갔다가 들어와야함 docker ps #정상적으로 이제 작동하는거 확인 |
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 컨테이너 실행
###생성한 볼륨을 사용하여 MySQL 컨테이너를 시작합니다.
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
### 참고 - 외부 접속(virtualbox 사용하는 경우)
### local(포트 3307) ---> mysql container(포트 3306)
docker run -d --name mysql-server -p 3307:3306 -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 컨테이너 생성 docker run --name {컨테이너 이름} -e MYSQL_ROOT_PASSWORD={루트 계정 비밀번호} -d, -p {포트포워딩} mysql # Example docker run --name test_mysql -e MYSQL_ROOT_PASSWORD=rootpwexample -d -p 3307:3306 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
배포 확인
Drupal 설치 실패시 재설치 방법 You can do it with the following steps too :
|
크롬창에 리눅스 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은 디렉토리 안에 내용이 있어도 강제로 제거
728x90
반응형
'프로그램 활용 > 클라우드 가상화 도커' 카테고리의 다른 글
Ubuntu 22.04에서 Docker로 Drupal을 설치하는 방법 (0) | 2023.07.28 |
---|---|
Drupal - 도커 설치 (0) | 2023.07.28 |
Docker 컨테이너에 데이터 저장 (볼륨/바인드 마운트) (0) | 2023.07.28 |
[Docker] Docker X PostgreSQL 설치 및 연동 (0) | 2023.07.28 |
[Docker] 데이터 관리(1) Volume 과 Bind mounts (0) | 2023.07.28 |