- 서비스를 컨테이너화 할 때 여러 개의 어플리케이션을 한 컨테이너에 설치할 수 있지만, 컨테이너에 어플리케이션을 하나만 동작시키면 컨테이너 간의 독립성을 보장함과 동시에 어플리케이션의 버전 관리, 소스코드 모듈화 등이 더욱 쉬워짐
- 데이터베이스와 웹 서버 컨테이너를 구분하는 편이 도커 이미지를 관리하고 컴포넌트의 독립성을 유지하기가 쉽다
- 한 컨테이너에 프로세스 하나만 실행하는 것이 도커 공식 홈페이지에서도 권장하는 구조임
mysql 이미지를 사용해 데이터베이스 컨테이너를 생성
가독성을 위해서 \을 사용하여 명령어를 입력해줌
위에 준비된 워드프레스 이미지를 이용해 워드프레스 웹 서버 컨테이너를 생성
워드프레스 웹 서버 컨테이너의 -p 옵션에서 80을 입력했으므로 호스트의 포트 중 하나와 컨테이너의 80번 포트가 연결됨
- 호스트와 바인딩된 포트만 확인하려면 다음 명령어를 입력
- docker port wordpress
다음과 같이 [호스트 IP]:바인딩된 포트번호 를 검색하면 다음과 같은 화면이 나타남
컨테이너 성공적으로 생성!
- 위 컨테이너 생성 설명
- -d
- 위에서 컨테이너를 선언해줄때 이전에 했던 -i -t 가 아닌 -d로 선언해준것을 알 수 있다
- -i, -t는 표준 입출력이 활성화 가능하고, 상호작용이 가능한 셸 환경이 사용할 수 있는 환경이다
- -d를 사용해준 이유는 mysql과 데이터베이스는 이미 터미널을 차지하는 포그라운드 프로그램이 있기 때문이다
- 그렇기 때문에 컨테이너는 종료되지않고 유지할 수 있다
- 반대로 -i -t 로 mysql컨테이너를 만들어줄 경우 오류가 나온다
- MySQL 이미지는 컨테이너가 시작될 때 mysqld가 동작하기 때문이다
- -e
- -e 옵션은 컨테이너 내부의 환경변수를 설정함
- 컨테이너화된 어플리케이션은 환경변수에서 값을 가져와 쓰는 경우가 많으므로 자주 사용하는 옵션 중 하나이다
- exec
- exec 명령어를 사용하면 컨테이너 내부에서 명령어를 실행한 뒤 그 결과값을 반환받을 수 있음
- —link
- —link 옵션은 내부 IP를 알 필요 없이 항상 컨테이너에 별명으로 접근하도록 설정
- 원래 설정한 wordpressdb 컨테이너를 mysql이라는 이름으로 설정
- -d
'서버 > 도커' 카테고리의 다른 글
[도커] 도커 네트워크 (0) | 2022.02.25 |
---|---|
[도커] 도커 볼륨 (0) | 2022.02.24 |
[도커] 컨테이너 삭제 (0) | 2022.02.19 |
[도커]리눅스 putty 연결 (0) | 2022.02.19 |
[도커] 리눅스 환경에서 컨테이너 활성화하기 (0) | 2022.02.17 |
댓글