첫 번째 컨테이너 실행하기

DockerBeginner
지금 연습하기

소개

"첫 번째 컨테이너 실행하기" 챌린지에 오신 것을 환영합니다! 앞서 hello-world 컨테이너를 실행하는 방법을 배우셨을 겁니다. 이제 한 걸음 더 나아가 다른 컨테이너를 실행해 보겠습니다. 이번 챌린지에서는 Docker 기술을 활용하여 컨테이너 내부에서 작은 웹 서버를 구동하는 docker/getting-started 이미지를 시작해 볼 것입니다.

새로운 컨테이너 실행하기

작업

작업은 간단합니다:

  1. docker/getting-started 이미지를 기반으로 Docker 컨테이너를 실행하세요.

요구 사항

이 챌린지를 완료하려면 다음 사항을 준수해야 합니다:

  1. docker run 명령어를 사용하여 컨테이너를 시작하세요.
  2. 이미지는 미리 준비된 docker/getting-started를 사용하세요.
  3. ~/project 디렉토리에서 명령어를 실행하세요.

예시

컨테이너를 성공적으로 실행하면 Docker 가 컨테이너를 포그라운드에서 시작하므로, 터미널이 컨테이너 로그에 연결된 상태로 유지됩니다. 이 로그들은 docker/getting-started 내부의 Nginx 웹 서버에서 출력되는 내용입니다.

/docker-entrypoint.d/ 디렉토리가 비어 있지 않다는 경고 메시지가 나타나더라도 걱정하지 마세요.

/docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configuration
/docker-entrypoint.sh: Looking for shell scripts in /docker-entrypoint.d/
/docker-entrypoint.sh: Launching /docker-entrypoint.d/10-listen-on-ipv6-by-default.sh
10-listen-on-ipv6-by-default.sh: info: Getting the checksum of /etc/nginx/conf.d/default.conf
10-listen-on-ipv6-by-default.sh: info: Enabled listen on IPv6 in /etc/nginx/conf.d/default.conf
/docker-entrypoint.sh: Launching /docker-entrypoint.d/20-envsubst-on-templates.sh
/docker-entrypoint.sh: Launching /docker-entrypoint.d/30-tune-worker-processes.sh
/docker-entrypoint.sh: Configuration complete; ready for start up
2024/10/29 09:26:17 [notice] 1#1: using the "epoll" event method
2024/10/29 09:26:17 [notice] 1#1: nginx/1.23.3
2024/10/29 09:26:17 [notice] 1#1: built by gcc 12.2.1 20220924 (Alpine 12.2.1_git20220924-r4)
2024/10/29 09:26:17 [notice] 1#1: OS: Linux 5.15.0-56-generic
2024/10/29 09:26:17 [notice] 1#1: getrlimit(RLIMIT_NOFILE): 1048576:1048576
2024/10/29 09:26:17 [notice] 1#1: start worker processes
2024/10/29 09:26:17 [notice] 1#1: start worker process 31
2024/10/29 09:26:17 [notice] 1#1: start worker process 32

새 터미널 창을 열고 docker ps 명령어를 사용하여 컨테이너가 실행 중인지 확인할 수 있습니다.

docker ps
CONTAINER ID   IMAGE               COMMAND                  CREATED          STATUS          PORTS     NAMES
f3f3b3b3b3b3   docker/getting-started   "/docker-entrypoint.…"   1 minute ago   Up 1 minute   80/tcp   festive_mendel

참고: docker run docker/getting-started를 실행한 첫 번째 터미널을 그대로 유지하세요. Ctrl+C를 누르거나 해당 터미널을 닫으면 컨테이너가 중지됩니다. docker ps를 실행하려면 두 번째 터미널을 열거나, 컨테이너를 백그라운드에서 실행하려면 docker run -d docker/getting-started를 사용하세요.

요약

이번 챌린지에서는 새로운 컨테이너를 실행해 보며 Docker 기술을 확장했습니다. docker run 명령어를 사용하여 docker/getting-started 이미지를 시작했고, 이를 통해 컨테이너 내부의 웹 서버가 구동되며 터미널에 시작 로그가 출력되는 것을 확인했습니다. 또한 포그라운드에서 시작된 컨테이너는 중지하기 전까지 터미널에 연결된 상태로 유지된다는 점도 배웠습니다. 이번 실습은 컨테이너를 시작하는 기초와 docker ps와 같은 Docker 명령어를 통해 실행 상태를 확인하는 방법을 강화하는 계기가 되었습니다.

✨ 솔루션 확인 및 연습