English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Docker Hello World

Docker는 컨테이너 내에서 애플리케이션을 실행할 수 있도록 허용하며, docker run 컨테이너에서 애플리케이션을 실행하는 명령어.

Hello world를 출력합니다.

w3codebox@w3codebox:~$ docker run ubuntu:15.10 /bin/echo "Hello world"
Hello world

각 파라미터 해석:

  • docker: Docker의 바이너리 실행 파일.

  • run: docker와 조합하여 컨테이너를 실행합니다.

  • ubuntu:15.10 실행할 이미지를 지정하면, Docker는 먼저 로컬 호스트에서 이미지가 존재하는지 확인합니다. 존재하지 않으면, Docker는 Docker Hub에서 공공 이미지를 다운로드합니다.

  • /bin/echo "Hello world": 실행된 컨테이너에서 실행하는 명령어

위 명령어의 전체 의미는 다음과 같습니다: Docker는 ubuntu로 실행된 컨테이너에서 명령어를 실행합니다.15.10 이미지가 새 컨테이너를 생성한 후, 컨테이너에서 bin을 실행합니다./echo "Hello world"를 출력하고, 그 다음 결과를 출력합니다.

인터랙티브한 컨테이너를 실행합니다.

docker의 두 가지 파라미터를 통해 -i -t, docker가 실행하는 컨테이너에"대화"의 능력:

w3codebox@w3codebox:~$ docker run -i -t ubuntu:15.10 /bin/bash
root@0123ce188bd8:/#

각 파라미터 해석:

  • -t: 새 컨테이너에서 가상 터미널 또는 터미널을 지정하십시오.

  • -i: 컨테이너 내의 표준 입력 (STDIN)과 상호작용할 수 있도록 허용합니다.

주의, 두 번째 줄에 root@0123ce188bd8:/#, 이때 우리는 ubuntu15.10 시스템의 컨테이너

우리는 컨테이너에서 명령어를 실행하려고 시도했습니다 cat /proc/versionls현재 시스템의 버전 정보와 현재 디렉토리에 있는 파일 목록을 각각 확인합니다.

root@0123ce188bd8:/#  cat /proc/version
Linux version 4.4.0-151-generic (buildd@lgw01-amd64-043) (gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.10) ) #178-Ubuntu SMP Tue Jun 11 08:30:22 UTC 2019
root@0123ce188bd8:/# ls
bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
root@0123ce188bd8:/#

exit 명령어를 실행하거나 CTRL+D 로 컨테이너를退出합니다.

root@0123ce188bd8:/#  exit
exit
root@w3codebox:~#

주의, 세 번째 줄에 root@w3codebox:~# 이미 현재 컨테이너에서 나와 현재 호스트로 돌아왔음을 나타냅니다.

컨테이너 시작(백그라운드 모드)

다음 명령어를 사용하여 프로세스 방식으로 실행되는 컨테이너를 생성합니다.

w3codebox@w3codebox:~$ docker run -d ubuntu:15.10 /bin/sh -c "while true; do echo hello world; sleep 1; done"
2b1b7a428627c51ab8810d541d759f072b4fc75487eed05812646b8534a2fe63

출력에서 기대한 "hello world" 대신 긴 문자열을 볼 수 없었습니다.

2b1b7a428627c51ab8810d541d759f072b4fc75487eed05812646b8534a2fe63

이 긴 문자열은 컨테이너 ID라고 불리며, 각 컨테이너마다 독특합니다. 컨테이너 ID를 통해 해당 컨테이너에서 무엇이 일어났는지 확인할 수 있습니다.

먼저, 우리는 컨테이너가 실행 중인지 확인해야 합니다. 이를 통해: docker ps 보기를:

w3codebox@w3codebox:~$ docker ps
CONTAINER ID          IMAGE                  COMMAND              ...  
5917eac21c36        ubuntu:15.10           "/bin/sh -c 'while t…"    ...

출력 세부 정보 소개:

CONTAINER ID: 컨테이너 ID.

IMAGE: 사용하는 이미지.

COMMAND: 컨테이너를 시작할 때 실행되는 명령어.

생성: 컨테이너 생성 시간.

상태: 컨테이너 상태.

상태가 있습니다:7종류:

  • created(생성)

  • restarting(재시작 중)

  • running 또는 Up(운영 중)

  • removing(이동 중)

  • paused(정지)

  • exited(중지)

  • dead(사망)

포트: 컨테이너의 포트 정보 및 사용하는 연결 유형(tcp\udp).

이름: 자동 할당된 컨테이너 이름.

호스트主机에서 docker logs 명령어를 사용하여 컨테이너 내의 표준 출력을 확인합니다:

w3codebox@w3codebox:~$ docker logs 2b1b7a428627

w3codebox@w3codebox:~$ docker logs amazing_cori

컨테이너 중지

우리는 다음을 사용합니다: docker stop 명령어로 컨테이너를 중지합니다:

docker stop 2b1b7a428627

docker ps를 통해 확인하면, 컨테이너가 중지되었습니다:

w3codebox@w3codebox:~$ docker ps

컨테이너가 더 이상 없습니다.

아래 명령어로도 중지할 수 있습니다:

w3codebox@w3codebox:~$ docker stop amazing_cori