
이 글은 2026년 06월 30일 작성된 글입니다.
Docker를 학습하면서 컨테이너의 포트 매핑부터 네트워크 통신, 바인드 마운트, Dockerfile 작성, 이미지 빌드와 레이어 구조까지 학습했다. 특히 컨테이너 간 통신 방식과 Docker Image가 생성되는 과정을 중심으로 정리했다.
Docker 컨테이너는 외부와 격리되어 실행되므로, 서비스를 외부에서 사용하려면 포트를 연결해야 한다.
-p : 호스트 포트와 컨테이너 포트를 직접 연결-P : 노출된 포트를 임의의 호스트 포트에 자동 연결docker run -d -p 8080:80 nginx
| 옵션 | 설명 |
|---|---|
-p | 원하는 포트를 직접 매핑 |
-P | Docker가 임의의 포트를 자동 할당 |
실행 중인 컨테이너의 설정과 네트워크 정보를 확인할 수 있다.
docker inspect mynginx
특정 정보만 확인할 수도 있다.
docker inspect mynginx | grep '"IPAddress"'
실행 중인 컨테이너에 접속하거나 파일을 복사할 수 있다.
docker exec : 컨테이너 내부 명령 실행docker cp : 호스트 ↔ 컨테이너 파일 복사docker exec -it mynginx bash
docker cp index.html mynginx:/usr/share/nginx/html/
호스트 디렉터리와 컨테이너 디렉터리를 연결하는 기능이다.
docker run \
-v ./html:/usr/share/nginx/html
컨테이너끼리 다양한 방법으로 통신할 수 있다.
docker network create common
| 방식 | 특징 |
|---|---|
| Bridge | 기본 네트워크 |
| User Network | 컨테이너 이름(DNS) 지원 |
| Host Port | 호스트 포트를 통해 통신 |
| host.docker.internal | 호스트 OS 접근 |
컨테이너 내부를 직접 수정하지 않아도 필요한 파일을 쉽게 관리할 수 있다.
docker cp sub.html mynginx:/usr/share/nginx/html/
Docker 이미지는 애플리케이션뿐 아니라 실행 환경까지 함께 포함하는 패키지이다.
FROM nginx:latest
COPY source/index.html /usr/share/nginx/html/
이미지 생성
docker build -t myname/nginx:1 .
Docker 이미지는 여러 개의 Layer로 구성된다.
FROM nginx:latest
COPY source/index.html /usr/share/nginx/html/
RUN apt-get update
| 명령어 | 역할 |
|---|---|
| FROM | 기본 이미지 |
| COPY | 파일 복사 |
| RUN | 명령 실행 |
Docker는 변경되지 않은 Layer를 캐시하여 빌드 시간을 줄인다.
FROM
↓
COPY
↓
RUN
COPY가 변경되면 이후 RUN도 다시 실행된다.docker inspect, docker exec, docker cp를 이용하면 실행 중인 컨테이너를 쉽게 관리할 수 있다.host.docker.internal을 이용하면 컨테이너에서 호스트 OS의 서비스에도 접근할 수 있다.