순서
- mysql 컨테이너 실행
- wordpress 컨테이너 실행, link 컨테이너이름:호스트이름
mysql 이미지로 데이터베이스 컨테이너를 생성하고 실행했다. 이때 컨테이너 내부의 환경변수로 필요한 데이터베이스 이름과 루트 계정의 비밀번호를 -e 옵션으로 넘겨주었다.
docker run -d --name wordpressdb \\
-e MYSQL_ROOT_PASSWORD=password \\
-e MYSQL_DATABASE=wordpress \\
mysql
wordpress 이미지로 워드프레스 웹 서버 컨테이너를 생성하고 실행했다. 웹 서버는 mysql을 사용하므로 DB 사용에 필요한 환경변수를 넘겨주고, link 옵션으로 다른 컨테이너에 alias로 접근 가능하도록 설정했다. 포트 포워딩은 컨테이너 쪽 포트를 80번으로 지정했다. 바인딩되는 호스트의 포트는 시스템이 지정한다. docker ps -로 바인딩된 주소를 확인할 수 있다.
docker run -d \\
-e WORDPRESS_DB_HOST=mysql \\
-e WORDPRESS_DB_USER=root \\
-e WORDPRESS_DB_PASSWORD=password \\
--name wordpress \\
--link wordpressdb:mysql \\
-p 80 \\
wordpress \\
잘 띄워진 모습!
run 명령어의 옵션을 알아보자.
- -d : 백그라운드로 동작한다. 컨테이너 내부에서 프로그램이 시작되어야 한다.
- -e : 컨테이너 실행에 필요한 환경변수 세팅
- —link : 컨테이너는 재실행될 때마다 다른 내부 IP를 받는다. 그래서 다른 컨테이너를 참조할 때 IP가 아닌 컨테이너의 별명으로 접근한다. 컨테이너이름:호스트이름으로 설정하면 해당 컨테이너에서 다른 컨테이너를 호스트 이름으로 접근할 수 있다.
- exec : 실행되고 있는 컨테이너 내부에 명령어를 실행하여 결과값을 받는다.
'Cloud > Docker' 카테고리의 다른 글
컨테이너 로깅, 컨테이너 자원 할당 제한 (0) | 2023.04.22 |
---|---|
도커 네트워크 (0) | 2023.04.22 |
도커 볼륨 (0) | 2023.04.22 |
컨테이너 포트 포워딩 (0) | 2023.04.22 |
컨테이너 생성과 실행, 쉘 접속, 목록 확인, 삭제 (0) | 2023.04.22 |