본문 바로가기

개발 관련/Docker

여러 개의 컨테이너를 연동해 실행하기

워드 프로세스는 웹 사이트를 만들기 위한 소프트웨어로, 워드프레스 컨테이너와 MySQL 컨테이너로 구성된다.

프로그램이 MySQL에 저장된 데이터를 읽고 쓸 수 있어야 하기 때문에 두 컨테이너가 연결돼 있어야 한다.

 

도커 네트워크를 생성하는 커맨드는 다음과 같다.

# 도커 네트워크 생성하기
docker network create {network name}

# 도커 네트워크 삭제하기
docker network rm {network name}

 

그럼 워드프레스와 MySQL 컨테이너 생성 및 실행을 해보겠다.

 

1. 네트워크를 생성한다.

docker network create wordpress000net1

 

2. MySQL 이미지로 컨테이너를 생성 및 실행하는 명령어를 입력한다.

 

참고로 나는 Mac M1칩을 사용중인데, 

이런 오류가 떴다.

구글링 해보니, docker hub에 계정을 생성하고 docker login을 하라는 해결책이 있었다.

도커 로그인에 성공했다. 그런데도 제대로 mysql이 실행되지 않았다.

이유는 아래와 같이 플랫폼을 명시하여 설치해야 하기 때문이었다.

docker pull --platform linux/amd64 mysql

다음과 컨테이너를 실행할 때도 플랫폼을 명시해줘야 한다고 한다.

docker run --platform linux/amd64 --name localMySql1 -e MYSQL_ROOT_PASSWORD=rootroot -d mysql

 

무튼 제대로 잘 다운이 받아졌다.

docker run --platform linux/amd64 --name mysql000ex11 -dit --net=wordpress000net1 -e MYSQL_ROOT_PASSWORD={myrootpass} -e MYSQL_DATABASE=wordpress000db -e MYSQL_USER=wordpress000so -e MYSQL_PASSWORD={password} mysql --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --default-authentication-plugin=mysql_native_password

 

3. run 커맨드로 워드프레스 컨테이서 생성 및 실행

docker run --name wordpress000ex12 -dit --net=wordpress000net1 -p 8085:80 -e WORDPRESS_DB_HOST=mysql000ex11 -e WORDPRESS_DB_NAME=wordpress000db -e WORDPRESS_DB_USER=wordpress000so -e WORDPRESS_DB_PASSWORD={password} wordpress

 

4. docker ps 로 컨테이너 상태 확인하기

 

5. 웹 브라우저 접속해 워드프레스 확인하기 (http://localhost:8085)

6. 컨테이너 종료 및 삭제

docker stop wordpress000ex12
docker stop mysql000ex11
docker rm wordpress000ex12
docker rm mysql000ex11
# 이미지 삭제
docker image rm wordpress
docker image rm mysql
# 네트워크 삭제
docker network rm wordpress000net1