disqus: brainbackdoor | false
kakaoChannel: false
floatFirstTOC: right

<aside> 📌 이 포스팅은 도커 컨테이너를 처음 접하는 분들을 대상으로 작성하였습니다. 도커 컨테이너가 무엇인지 간단하게 나마 이해하고 싶으신 분들은, 도커 컨테이너 살펴보기 포스팅을 참고 바랍니다.

</aside>

Step 1. run & port forwarding

docker image pull gihyodocker/echo:latest
docker container run -t -p 9000:8080 gihyodocker/echo:latest
curl <http://localhost:9000>
docker stop $(docker container ls -q)

Step 2. image

FROM 인스트럭션: 도커 이미지의 바탕이 될 베이스 이미지를 지정한다.
RUN 인스트럭션: 도커 이미지를 실행할 때 컨테이너 안에서 실행할 명령을 정의
COPY 인스트럭션: 도커가 동작중인 호스트머신의 파일이나 디렉터리를 도커 컨테이너 안으로 복사하는 인스트럭션
CMD 인스트럭션: 도커 컨테이너를 실행할 때 컨테이너 안에서 실행할 프로세스를 지정한다. RUN은 이미지를 빌드할 떄 실행되고 CMD는 컨테이너를 시작할 떄 한번 실행된다.

실습

Dockerfile과 index.html 생성 후 생성한 위치에서 docker 명령어를 실행해봅니다.

# Dockerfile
FROM nginx

COPY index.html /usr/share/nginx/html
# index.html
<html>
<head>
    <title>인프라공방</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
    <h1> 도커 컨테이너 실행해보기 </h1>
</body>
</html>
docker image build -t example/echo:latest .
docker container run -d -p 9000:80 example/echo:latest
docker stop $(docker container ls --filter "ancestor=example/echo" -q)

도커 이미지 관련 명령어

- docker image build
- docker search 
- docker image pull
- docker image ls
- docker image tag
- docker image push

docker login -u [도커허브 ID] -p
docker image tag example/echo [도커허브 ID]/echo:latest
docker image push [도커허브 ID]/echo:latest