호랭이 분석가

Docker #2. 도커 link로 애플리케이션 구축 본문

Docker

Docker #2. 도커 link로 애플리케이션 구축

데이터호랑이 2022. 7. 25. 23:38
반응형

1. link

 

A 컨테이너에서 B 컨테이너로 접근하는 방법 중 하나로 할당받은 IP를 사용하여 접근하는 방법이 있습니다.

따라서 도커가 내부에 할당한 IP를 통해 A에서 B로 접근이 가능한데, 

도커 엔진은 컨테이너를 시작할 때마다 IP를 재할당하기 때문에 매번 변경이 되어, IP를 통해 접근하기는 쉽지가 않습니다.

이럴 때 --link 옵션을 사용하는데 내부 IP를 확인할 필요가 없이 컨테이너의 별칭으로(--name xx) 접근하도록 설정합니다.

 

2. 애플리케이션 구축

 

데이터베이스와 웹서버를 연동한 서비스를 구축해보도록 하겠습니다.

 

# Mysql DB 컨테이너 생성 
docker -run -d \
--name wordpressdb \
-e MYSQL_ROOT_PASSWORD=password \
-e MYSQL_DATABASE=wordpress \
mysql:5.7

 

# 워드프레스 웹 서버 컨테이너 생성 
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

 

docker ps 명령어

 

docker run -d 옵션을 사용하여 백그라운드에서 동작하도록 실행하도록 하였고

--link 옵션을 사용하여 처음 생성한 wordpressdb 컨테이너와 연동이 된 것을 확인할 수 있습니다.

 

추가로 -e 옵션은 컨테이너 내부의 환경변수를 설정합니다. 

 

docker exec -i -t wordpressdb /bin/bash

 

docker run -d로 생성된 컨테이너를 exec 명령어를 사용하면 입출력이 가능한 상태로 컨테이너 내부로 접속이 됩니다.

wordpressdb 컨테이너의 MYSQL_ROOT_PASSWORD 환경변수가 password로 잘 저장되었는지 확인해보겠습니다.

 

 

echo ${변수명}으로 환경변수를 확인하면 password로 잘 저장된 것을 확인할 수 있습니다.

 

그럼 이제 생성된 웹 서버에 접속해보겠습니다.

wordpress 컨테이너의 PORTS 부분을 보면 0.0.0.0:54804 -> 80/tcp로 확인되는데,

host의 54804 port와 연결되었다는 의미입니다.

따라서 아래 주소로 웹 서버에 접근할 수 있으며 이미지와 같은 화면이 보인다면 성공적으로 생성이 완료된 것입니다. 

 

http://localhost:54804

 

도커를 활용한 애플리케이션 구축

 

마지막으로 도커를 재시작을 할 때, wordpressdb가 정지된 상태에서 wordpress 컨테이너를 실행하면 오류가 납니다.

 

 

--link 옵션은 컨테이너의 연결과 실행 순서의 의존성도 부여하기 때문에

wordpressdb가 실행되어야 같이 실행할 수 있습니다.

Comments