대부분의 서비스는 단일 프로그램으로 동작하지 않는다.
여러 에이전트나 데이터베이스 등과 연결되어 완전한 서비스로써 동작하는 것이 일반적이다.
이런 서비스를 컨테이너화 (Containerize) 할 때, 여러 개의 어플리케이션을 한 컨테이너에 설치할 수도 있으나, 컨테이너에 애플리케이션 하나만 동작시킬 경우에 컨테이너간의 독립성을 보장하고 동시에 어플리케이션의 버전 관리, 소스코드 모듈화 등이 더욱 쉬워진다.
그래서 이번에 데이터베이스와 워드프레스 웹 서버 컨테이너를 연동해 워드프레스 기반 블로그 서비스를 만들어 보도록하자.
다음명령어를 입력해 각 컨테이너를 생성한다
$ docker run -d --platform linux/amd64 --name wordpressdb -e MYSQL_ROOT_PASSWORD=password -e MYSQL_DATABASE=wordpress mysql $ 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
👉--platform linux/amd64 는 MacOS M1 에서 docker mysql 문제가 있어서 추가된 명령어로, 해당되지 않으면 생략해도 된다.
첫 번째 명령어는 mysql 이미지를 사용해 데이터베이스 컨테이너를, 두 번째 명령어는 워드프레스 이미지를 이용해 워드프레스 웹 서버 컨테이너를 생성한다.
워드프레스 웹 서버 컨테이너의 -p 옵션에서 80을 입력했으므로, 호스트의 포트 중 하나와 컨테이너의 80번 포트가 연결된다.
docker ps 명령어로 호스트의 어느 포트와 연결됐는지 확인해보자.
59898 포트에 연결된 것을 확인할 수 있다, 또한 이미지에서 보는 바와 같이 docker port 명령어를 통해 바인딩된 포트만 확인이 가능하다.
위 예제에서 나온 새로운 명령어들을 확인해보자