Docker 화 응용 프로그램:Hello World
9458 단어 Docker
메모:BOoot2docker 와 같은 원 격 Docker daemon 을 사용 하면 docker 전에 sudo 명령 을 입력 하지 않 아 도 됩 니 다.다음 예제 명령 에 있 습 니 다.
Hello World
$ sudo docker run ubuntu:14.04 /bin/echo 'Hello world'
Hello world
첫 번 째 용 기 를 실 행 했 습 니 다.무슨 일이 일 어 났 는 지,docker run 명령 이 무엇 을 했 는 지 단계별 로 분석 해 보 겠 습 니 다.
우선,우 리 는 docker 바 이 너 리 를 지정 합 니 다.run 은 명령 을 수행 하고 싶 음 을 표시 합 니 다.docker run 연결 실행 중인 용기 입 니 다.
그리고 우 리 는 image:Ubuntu:14.04 를 만 듭 니 다.이것 은 우리 가 운행 하 는 용기 의 출처 다.Docker 는 그것 을 image 라 고 부른다.이 예 에서 우 리 는 Ubuntu 14.04 운영 체제 image 를 사용 했다.
image 를 지정 하면 Docker 는 먼저 Docker 로 컬 호스트 에서 image 를 검색 합 니 다.존재 하지 않 으 면 Docker Hub 에서 다운로드 합 니 다.
다음 단 계 는 Docker 에 게 새로운 container 에서 어떤 명령 을 실행 하 는 지 알려 줍 니 다.
/bin/echo 'Hello world'
용기 가 Ubuntu 14.04 환경 을 만 들 고/bin/echo 명령 을 실행 합 니 다.출력 결과:
Hello world
Docker container 는 명령 을 실행 하 는 동안 active 입 니 다.Hello World 가 출력 하면 container 도 멈 춥 니 다.
대화 식 용기
docker run 을 다시 실행 합 니 다.용기 에 새 명령 을 지정 하여 실행 합 니 다:
$ sudo docker run -t -i ubuntu:14.04 /bin/bash
root@af8bae53bdd3:/#
우 리 는 docker run 명령 을 다시 지정 하여 Ubuntu:14.04 image 를 실행 합 니 다.그러나 우 리 는 두 개의 표 지 를 입력 했다.-t 와-i.t 표 지 는 가짜 단말기 인형 을 분배 합 니 다.이 단말 기 는 우리 의 새 용기 에 있 습 니 다.-i 표 지 는 우리 가 상호작용 연결 을 구축 하고 용기 의 표준 입력(STDIN)을 차지 할 수 있 도록 합 니 다.
용기 실행 을 위 한 새로운 명령 을 지정 합 니 다:/bin/bash.이것 은 Bash 셸 을 실행 하 는 용기 입 니 다.
우리 의 용기 가 실 행 될 때 명령 의 힌트 를 볼 수 있 습 니 다.
root@af8bae53bdd3:/#
우리 용기 에서 명령 을 실행 하려 고 시도 합 니 다:
root@af8bae53bdd3:/# pwd
/
root@af8bae53bdd3:/# ls
bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
현재 디 렉 터 리 를 표시 하기 위해 pwd 를 실행 합 니 다./루트 디 렉 터 리 에서 볼 수 있 습 니 다.전형 적 인 Liux 파일 시스템 의 루트 디 렉 터 리 아래 디 렉 터 리 목록 을 볼 수 있 습 니 다.CTRL+D 와 exit 명령 을 사용 하여 현재 용 기 를 종료 할 수 있 습 니 다.하루 Bash 셸 프로 세 스 가 끝나 면 용기 도 끝 납 니 다.
Daemonized Hello world
하나의 용기 가 명령 을 실행 한 후에 종료 하 는 것 은 그다지 쓸모 가 없다.대부분의 Docker 에서 실행 되 는 것 처럼 daemon 으로 실행 되 는 용 기 를 만 듭 니 다.
docker run 명령 을 다시 실행 합 니 다:
$ sudo docker run -d ubuntu:14.04 /bin/sh -c "while true; do echo hello world; sleep 1; done"
1e5535038e285177d5214659a068137486f96ee5c2e85a4ac52dc83f2ebe4147
뭘 기 다 려?"Hello world'어디 있어 요?익숙 해 보 입 니 다.docker run 을 실 행 했 지만 이번 에는 탭 을 지정 하 였 습 니 다:-d-d 라벨 은 Docker 에 게 배경 에서 용 기 를 실행 하고 데 몬(daemonize)을 지 키 라 고 알려 줍 니 다.
저희 도 똑 같은 이미 지 를 지 정 했 습 니 다.Ubuntu:14.04
마지막 으로,우 리 는 실행 명령 을 지정 합 니 다.
/bin/sh -c "while true; do echo hello world; sleep 1; done"
이것 은 silliest daemon:hello World 를 계속 출력 하 는 셸 스 크 립 트 입 니 다.그럼 왜 우 리 는 hello world 를 보지 못 했 습 니까?대신 Docker 는 긴 문자열 을 되 돌려 줍 니 다.
1e5535038e285177d5214659a068137486f96ee5c2e85a4ac52dc83f2ebe4147
이 긴 문자열 을 container ID 라 고 합 니 다.이것 은 우리 가 일 하 는 것 을 표시 하 는 유일한 용기 이다.
메모:이 container ID 는 긴 비트 이 고 사용 하기 어 려 운 것 입 니 다.나중에 우 리 는 비교적 짧 은 ID 를 볼 수 있 습 니 다.container 라 는 이름 을 가 지 는 방법 을 사용 하면 작업 이 더욱 간단 합 니 다.
저 희 는 container ID 를 사용 하여 Hello World daemon 에 무슨 일이 일 어 났 는 지 관찰 할 수 있 습 니 다.
우선 우리 용기 가 작 동 하고 있 는 지 확인 하 세 요.docker ps 명령 으로 볼 수 있 습 니 다.docker ps 명령 은 Docker daemon 이 알 고 있 는 모든 용기 의 정 보 를 봅 니 다.
$ sudo docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1e5535038e28 ubuntu:14.04 /bin/sh -c 'while tr 2 minutes ago Up 1 minute insane_babbage
우 리 는 daemonized container 를 보 았 다.docker ps 는 축 소 된 container ID:1e 5535038 e 28 의 유용 한 정 보 를 되 돌려 주 었 습 니 다.
이전에 빌 드 에 사 용 된 image:Ubuntu:14.04,명령,stauts,자동 으로 분 배 된 이름:insanebabbage。
메모:Docker 가 시작 하 는 모든 용기 의 자동 이름 을 지정 합 니 다.나중에 자신의 이름 을 지정 하 는 방법 을 설명 할 것 입 니 다.
명령 이 실행 되 었 습 니 다.그러면 그것 이 실행 되 고 있 습 니까?우리 가 요청 한 것 은?우 리 는 명령 을 사용 합 니 다:docker logs 는 용기 에서 발생 한 것 을 봅 니 다.우 리 는 Docker 가 할당 한 용기 이름 을 사용 합 니 다:
$ sudo docker logs insane_babbage
hello world
hello world
hello world
. . .
docker logs 명령 은 용기 에서 표준 출력 을 되 돌려 줍 니 다.이 예 에서 hello World 를 출력 합 니 다.우리 의 daemon 이 일 을 하고 있 습 니 다.우 리 는 첫 번 째 Dockerized 응용 프로그램 을 만 들 었 습 니 다.
현재 우 리 는 용 기 를 만 들 고 용 기 를 멈 추 었 습 니 다.docker stop 명령 을 사용 할 수 있 습 니 다.
$ sudo docker stop insane_babbage
insane_babbage
이 docker stop 명령 은 Docker politely 에 실행 중인 용 기 를 중단 하 라 고 알려 줍 니 다.실행 에 성공 하면 방금 멈 춘 용기 의 이름 을 되 돌려 줍 니 다.
닫 혔 는 지 확인 해 보 겠 습 니 다.명령 을 통 해 docker ps:
$ sudo docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
우리 의 용 기 는 이미 멈 추 었 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
첫 번째 Docker for Mac참고 , 나는 옆에 있는 Mac에 Docker를 설치하고 컨테이너를 세워 보고 싶다. Docker Hub를 처음 사용할 때는 계정을 만들어야 합니다. Docker.dmg을 실행하면 Docker가 설치됩니다. Dock...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.