방명록
- [Network | Docker] 컨테이너 애플리케이션 구축2024년 06월 30일 23시 32분 21초에 업로드 된 글입니다.작성자: 이주여이
1. MYSQL 이미지 다운로드 및 컨테이너 생성
$ docker run -d \ $ --name wordpressdb \ $ -e MYSQL_ROOT_PASSWORD=${pwd } \ $ -e MYSQL_DATABASE=wordpress \ $ mysql:5.7
mysql 이미지를 가져와 데이터베이스 컨테이너를 생성한다.
--name
- 컨테이너 이름${pwd }
- 자기가 원하는 비밀번호를 입력한다.MYSQL_DATABASE
- 컨테이너 생성 시 만들어질 데이터베이스 이름mysql:5.7
- mysql 버전
2. 1. Wordpress 이미지 다운로드 및 컨테이너 생성
$ docker run -d \ $ -e WORDPRESS_DB_HOST=mysql \ $ -e WORDPRESS_DB_USER=root \ $ -e WORDPRESS_DB_PASSWORD=${pwd } \ $ --name wordpress \ $ --link wordpress:mysql \ $ -p 80 \ $ wordpress
wordpress 이미지를 가져와 웹 서버 컨테이너를 생성한다.
-d
- mysql, wordpress와 같이 백그라운드에서 실행되어야 하는 컨테이너 생성 시 붙이는 옵션으로 컨테이너 실행 시 터미널을 차지하지 않고 프로세스가 계속 실행된다.-e
- 컨테이너 내부의 환경변수를 설정하는 옵션으로 컨테이너화된 애플리케이션의 환경변수에서 값을 가져와 쓸 수 있다.(예를들어 ‘WORDPRESS_DB_PASSWORD=1234’는 환경변수의 값을 1234로 지정한다는 뜻 …)WORDPRESS_DB_HOST
- wordpress가 연결한 데이터베이스 호스트WORDPRESS_DB_USER
- 데이터베이스 사용자명WORDPRESS_DB_PASSWORD
- 데이터베이스 비밀번호--link mysql:mysql
- 위에서 만든 mysql 컨테이너를 mysql이라는 별칭으로 링크한다.(같은 호스트 내에 있는 컨테이너들끼리 통신할 수 있는 방법)-p 80
- 호스트 포트 중 하나와 컨테이너의 80 포트와 연결된다.
‘docker ps -a’를 통해 확인하면 아래와 같이 출력된다.
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 2753eeb5d79d wordpress "docker-entrypoint.s…" 12 minutes ago Up 12 minutes 0.0.0.0:32768->80/tcp, :::32768->80/tcp wordpress 2d5d3961e73b mysql:5.7 "docker-entrypoint.s…" 17 minutes ago Up 17 minutes 3306/tcp, 33060/tcp mysql
3. 웹 브라우저에서 확인하기
$ docker port wordpress 80/tcp -> 0.0.0.0:32768 80/tcp -> [::]:32768
위에서 생성한 wordpress에 바인딩된 포트만 확인하고 싶다면
docker port ${컨테이너명 }
을 통해 확인할 수 있다. 내 컨테이너는 호스트의 32768 포트와 연결됐기 때문에 url에192.168.56.103:32768
을 입력하면 워드프레스 설치 화면이 정상적으로 나타난다.4. 개념 설명
📌 -d
- mysql, wordpress와 같이 백그라운드에서 실행되어야 하는 컨테이너 생성 시 붙이는 옵션으로 컨테이너 실행 시 터미널을 차지하지 않고 프로세스가 계속 실행된다.
- mysql과 같이 백그라운드 실행으로 생성한 컨테이너는 기본적으로 컨테이너 내부에 들어갈 수 없다. 하지만 exec 명령어를 사용하면 컨테이너 내부의 셸을 사용할 수 있다.
$ docker exec -it mysql bin/bash bash-4.2 $ echo $MYSQL_ROOT_PASSWORD $ ${password }
📌 --link
$ --link wordpressdb:mysql
- 내부 ip를 알 필요없이 컨테이너의 별명(alias)으로 접근하도록 설정할 수 있다.
- wordpressdb 컨테이너를 mysql이라는 이름으로 설정함으로써 워드프레스 웹 서버 컨테이너는 wordpressdb의 IP를 몰라도 mysql이라는 호스트명으로 접근이 가능하다. ⭐
- --link에 입력된 컨테이너가 실행 중이 아니거나 존재하지 않다면 --link를 적용한 컨테이너 또한 실행시킬 수 없다.
- 현재 deprecated된 옵션이며 추후 삭제될 수 있다.
- 도커 브리지(bridge) 네트워크를 사용하면 --link 옵션과 동일한 기능을 더욱 더 쉽게 사용할 수 있다.
'Network > Docker' 카테고리의 다른 글
[Network | Docker] 데이터베이스 외부 원격 접속 (0) 2024.07.03 [Network | Docker] 볼륨 (0) 2024.07.02 [Network | Docker] 컨테이너 외부 노출 (0) 2024.06.30 [Network | Docker] 설치 및 컨테이너 생성 (0) 2024.06.30 [Network | Docker] 용어 및 개념 (0) 2024.06.30 다음글이 없습니다.이전글이 없습니다.댓글