컨테이너 포트포워딩 및 데몬으로 실행
도커 허브에서 Apache 이미지를 다운받는다.
https://hub.docker.com/_/httpd
그리고 설치한 httpd 이미지를 다음과 같이 background 환경에서 실행시킨다. (docker run -d -p 8080:80 httpd)
- docker run -d -p 8080:80 httpd
: httpd(아파치 HTTP 서버) 도커 이미지를 기반으로 컨테이너를 백그라운드 모드로 실행하며, 호스트의 8080 포트와 컨테이너의 80 포트를 연결한다.- -d : 컨테이너를 백그라운드 모드로 실행한다.
- 컨테이너는 백그라운드에서 실행되며 출력을 터미널에 표시하지 않는다.
- -p 8080 : 80 : 호스트의 8080 포트와 컨테이너의 80 포트를 연결한다.
- 따라서 호스트의 8080 포트를 통해 컨테이너의 80 포트에 접속할 수 있다.
- httpd : 컨테이너에 사용할 이미지 이름
- -d : 컨테이너를 백그라운드 모드로 실행한다.
이 명령어를 실행하면 httpd 이미지를 기반으로 컨테이너가 백그라운드에서 실행되며, 호스트의 8080 포트를 통해 httpd 서버에 접근할 수 있다. 예를 들어 'http://localhost:8080'으로 접속하면 호스트의 8080 포트로 전달되어 컨테이너의 80 포트에 연결된다.
[실행화면]
- http://localhost:8080으로 접속해 컨테이너의 80 포트에 접속하였다.
docker ps 명령어를 사용해 해당 컨테이너가 정상적으로 실행중인걸 확인할 수 있다.
docker run 옵션
-d 또는 --detach : 컨테이너를 백그라운드 모드로 실행한다.
-it 또는 --interative --tty : 컨테이너를 대화형(interative) 모드로 실행하고 터미널(tty)에 연결한다.
--name : 컨테이너에 사용할 이름을 지정한다.
-p 또는 --publish : 호스트와 컨테이너 간의 포트 매핑을 설정한다.
예를 들어 -v /host/dir:/container/dir은 호스트의 /host/dir과 컨테이너의 /container/dir을 공유한다.
-v 또는 --volume : 호스트와 컨테이너 간의 디렉터리 또는 파일 공유를 설정한다.
예를 들어 -v /host/dir:/container/dir은 호스트의 /host/dir과 컨테이너의 /container/dir을 공유한다.
--env 또는 -e : 환경 변수를 설정한다.
예를 들어 --env KEY=VALUE 환경 변수를 사용한다.
--network : 컨테이너가 연결할 네트워크를 설정한다.
예를 들어 --restart=always는 컨테이너를 항상 자동으로 재시작한다.
--link : 다른 컨테이너에 대한 연결 링크를 설정한다.
이 외에도 다양한 옵션이 존재하며, docker run --help 명령어를 통해 모든 옵션을 확인할 수 있다.
docker run
현재 nginx 이미지는 설치되지 않은 상태이다.
이때 nginx 이미지를 도커 허브로부터 가져와서 컨테이너를 생성하고 컨테이너를 실행하는 작업을 수행해야 한다.
하지만 docker run 명령어를 사용하면 이러한 작업을 간단하게 수행할 수 있다.
- 존재하지 않던 nginx 이미지가 설치되고 실행된 것을 확인할 수 있다.
docker run 명령어는 도커 컨테이너를 생성하고 실행하는 기능을 한다.
컨테이너를 생성하려면 이미지가 필요한데, 필요한 이미지가 없다면 이미지를 내려받는 기능도 겸한다.
http://localhost:8081 주소로 요청을 보내면 다음 화면이 출력한다.
정리
'Docker' 카테고리의 다른 글
docker exec 명령어 변경 (0) | 2023.05.29 |
---|---|
docker dit 옵션과 attach (0) | 2023.05.29 |
도커 컨테이너 실행하기 (0) | 2023.05.24 |
도커 이미지 삭제하기 (0) | 2023.05.24 |
도커 컨테이너의 생애주기와 데이터 저장 (0) | 2023.05.24 |