컴퓨터 지식 네트워크 - 컴퓨터 백과사전 - 프로그램에서 도커 컨테이너를 호출하는 방법

프로그램에서 도커 컨테이너를 호출하는 방법

1. Docker 컨테이너 시작

[root@localhost ~]# docker run -i -t Ubuntu /bin/bash

이미지를 찾을 수 없습니다. ubuntu' 로컬로

Ubuntu 저장소 가져오기

04c5d3b7b065: 다운로드 완료

511136ea3c5a: 다운로드 완료

c7b7c6419568: 다운로드 완료

70c8faa62a44: 다운로드 완료

d735006ad9c1: 다운로드 완료

상태: ubuntu용 최신 이미지 다운로드됨: 최신

참고:

-i: 컨테이너에서 STDIN 열기

-t: 컨테이너에 pseudo-tty 터미널 할당

위에서 볼 수 있듯이 먼저 Docker는 우분투 이미지가 이미지가 로컬에서 발견되지 않으면 Docker는 공식

Docker Hub Registry로 이동하여 Docker Hub에서 이미지를 사용할 수 있는지 확인합니다.

Docker는 이미지를 찾으면 이미지를 다운로드하여 로컬 호스트에 저장합니다.

그런 다음 Docker는 파일 시스템 내부에 이 이미지를 사용하여 새 컨테이너를 만듭니다. 컨테이너에는 자체 네트워크, IP 주소 및 호스트와 통신하는 데 사용되는 브리지 네트워크 인터페이스가 있습니다. 마지막으로 Docker에게 새 컨테이너에서 실행할 명령을 알려줍니다.

컨테이너가 생성되면 Docker는 컨테이너에서 /bin/bash 명령을 실행합니다. 이때 컨테이너에서 쉘을 볼 수 있습니다

root@8c342c0c275c:/#

참고: 8c342c0c275c는 컨테이너의 ID를 나타냅니다

2. 컨테이너

컨테이너의 호스트 이름 보기

root@8c342c0c275c:/# 호스트 이름

8c342c0c275c

컨테이너의 호스트 이름은 컨테이너의 ID입니다.

호스트의 호스트 파일 보기

root@8c342c0c275c:/# cat /etc/hosts

172.17.0.2 8c342c0c275c

ff00::0 ip6-mcastprefix

ff02::1 ip6-allnodes

ff02::2 ip6-allrouters

127.0.0.1 localhost

::1 localhost ip6-localhost ip6-loopback

fe00::0 ip6-localnet

Docker가 있는 것을 볼 수 있습니다 컨테이너 호스트 구성 항목에 IP 주소를 추가했습니다.

컨테이너의 IP 주소 보기

root@8c342c0c275c:/# ip a

1: lo: "LOOPBACK, UP, LOWER_UP" mtu 65536 qdisc noqueue 상태 UNKNOWN 그룹 기본값

link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00

inet 127.0.0.1/ 8 범위 호스트 lo

valid_lft 영원히 favorite_lft 영원히

inet6::1/128 범위 호스트

valid_lft 영원히_lft 영원히

4: eth0 : "BROADCAST, UP, LOWER_UP" mtu 1500 qdisc pfifo_fast 상태 UP 그룹 기본 qlen 1000

link/ether 02:42:ac:11:00:02 brd ff:ff:ff:ff:ff: ff

inet 172.17.0.2/16 범위 전역 eth0

valid_lft 영원히 우선_lft 영원히

inet6 fe80::42:acff:fe11:2/64 범위 링크

valid_lft 영원히 favorite_lft 영원히

컨테이너에서 실행 중인 프로세스 보기

root@8c342c0c275c:/# ps -aux

사용자 PID CPU MEM VSZ RSS TTY STAT 시작 시간 명령

root 1 0.0 0.1 18168 1976? SS 09:38 0:00 /bin/bash

루트 19 0.0 0.0 15568 1144? R 09:55 0:00 ps -aux

컨테이너에 패키지 설치

root@8c342c0c275c:/# apt-get update amp apt-get install vim

trusty-updates InRelease 무시

trusty-updates InRelease 무시

trusty-security InRelease 무시

trusty Release.gpg 누르기

Get: 1 trusty-updates Release.gpg[933 B]

Get: 2 trusty-security Release.gpg[933 B]

Trusty Release 히트

받기: 3개의 trusty-updates 릴리스[62.0kB]

받기: 4개의 trusty-security 릴리스[62.0kB]

받기: 5개의 trusty/main 소스[1335kB] <

/p>

Get:신뢰할 수 있는/제한된 소스 6개 [5335 B]

Get: 신뢰할 수 있는/유니버스 소스 7개 [7926 kB]

Get: 신뢰할 수 있는/기본 amd64 패키지 8개 [1743 kB]

Get: 9개의 신뢰할 수 있는/제한된 amd64 패키지 [16.0 kB]

Get: 10개의 신뢰할 수 있는/유니버스 amd64 패키지 [7589 kB]

Get :11개의 trusty-updates/주 소스 [193 kB]

Get:12개의 trusty-updates/제한된 소스 [1874 B]

Get:13개의 trusty-updates/유니버스 소스 [119 kB]

받기: 14 trusty-updates/main amd64 패키지 [493 kB]

받기: 15 trusty-updates/restricted amd64 패키지 [14.8 kB]

Get: 16 trusty-updates/universe amd64 패키지 [298 kB]

Get: 17 trusty-security/주 소스 [70.1 kB]

Get: 18 trusty-security/restricted 소스 [1874 B]

Get:19 trusty-security/universe 소스 [19.1 kB]

Get:20 trusty-security/main amd64 패키지 [229 kB]

Get: 21 trusty-security/restricted amd64 패키지 [14.8 kB]

Get: 22 trusty-security/universe amd64 패키지 [98.1 kB]

41초 안에 20.3 MB를 가져옴 (490 kB/s)

패키지 목록을 읽는 중입니다. . 완료

패키지 목록을 읽었습니다. . 완료

의존성 트리 구축

상태 정보를 읽는 중.. .

완료

다음 추가 패키지가 설치됩니다:

libgpm2 libpython2.7 libpython2.7-minimal libpython2.7-stdlib vim-runtime

추천 패키지:

gpm ctags vim-doc vim-scripts

다음 새 패키지가 설치됩니다:

libgpm2 libpython2.7 libpython2.7-minimal libpython2.7- stdlib vim

vim-runtime

업그레이드 0개, 새로 설치 6개, 제거할 0개, 업그레이드하지 않은 2개.

9083kB의 아카이브가 필요합니다.

이 작업 후에는 42.9MB의 추가 디스크 공간이 사용됩니다.

계속하시겠습니까? [Y/n] y

Get:1 /ubuntu/ trusty/main libgpm2 amd64 1.20.4-6.1 [16.5 kB]

Get:2 /ubuntu/ trusty/main libpython2 .7-최소 amd64 2.7.6-8 [307 kB]

Get: 3 /ubuntu/ trusty/main libpython2.7-stdlib amd64 2.7.6-8 [1872 kB]

가져오기: 4 /ubuntu/ trusty/main libpython2.7 amd64 2.7.6-8 [1044 kB]

가져오기: 5 /ubuntu/ trusty/main vim-runtime all 2: 7.4.052- 1ubuntu3 [4888 kB]

가져오기: 6 /ubuntu/ trusty/main vim amd64 2:7.4.052-1ubuntu3 [956 kB]

51초 안에 9083 kB를 가져옴(175 kB/ s)

이전에 선택하지 않은 패키지 libgpm2 선택: amd64.

(데이터베이스를 읽는 중... 현재 설치된 파일 및 디렉터리 11527개.)

압축 풀기 준비 중. . . /libgpm2_1.20.4-6.1_amd64.deb . . .

libgpm2 압축 풀기: amd64(1.20.4-6.1). . .

이전에 선택하지 않은 패키지 libpython2.7-minimal: amd64를 선택합니다.

압축 풀기 준비 중입니다. . .

/libpython2.7-minimal_2.7.6-8_amd64.deb . . .

libpython2.7-minimal 압축 풀기: amd64(2.7.6-8). . .

이전에 선택하지 않은 패키지 libpython2.7-stdlib:amd64를 선택합니다.

압축 풀기 준비 중입니다. . . /libpython2.7-stdlib_2.7.6-8_amd64.deb. . .

libpython2.7-stdlib 압축 풀기: amd64(2.7.6-8). . .

이전에 선택하지 않은 패키지 libpython2.7: amd64를 선택합니다.

압축 풀기 준비 중입니다. . . /libpython2.7_2.7.6-8_amd64.deb . . .

libpython2.7 압축 풀기: amd64(2.7.6-8). . .

이전에 선택하지 않은 vim-runtime 패키지를 선택하는 중입니다.

압축 풀기 준비 중입니다. . . /vim-runtime_23a7.4.052-1ubuntu3_all.deb . . .

'vim-runtime을 통해 /usr/share/vim/vim74/doc/help.txt를 /usr/share/vim/vim74/doc/help.txt.vim-tiny로 전환' 추가'

'vim-runtime을 통해 /usr/share/vim/vim74/doc/tags.vim-tiny로 /usr/share/vim/vim74/doc/tags 전환' 추가'

vim-runtime(2:7.4.052-1ubuntu3) 압축 풀기. . .

이전에 선택하지 않은 vim 패키지를 선택합니다.

압축 풀기 준비 중입니다. . . /vim_23a7.4.052-1ubuntu3_amd64.deb. . .

vim(2:7.4.052-1ubuntu3) 압축을 푸는 중입니다. . .

libgpm2 설정: amd64(1.20.4-6.1). . .

libpython2.7-최소 설정: amd64(2.7.6-8). . .

libpython2.7-stdlib 설정: amd64(2.7.6-8). . .

libpython2.7 설정: amd64(2.7.6-8). . .

vim-runtime 설정(2:7.4.052-1ubuntu3). . .

/usr/share/vim/addons/doc 처리 중

vim(2:7.4.052-1ubuntu3) 설정 중. . .

update-alternatives: /usr/bin/vim.basic을 사용하여 자동 모드에서 /usr/bin/vim(vim) 제공

update-alternatives: /usr/bin 사용 /vim.basic은 자동 모드에서 /usr/bin/vimdiff(vimdiff)를 제공합니다.

update-alternatives: /usr/bin/vim.basic을 사용하여 자동 모드에서 /usr/bin/vim(rvim)을 제공합니다. 자동 모드

update-alternatives: /usr/bin/vim.basic을 사용하여 자동 모드에서 /usr/bin/rview(rview) 제공

update-alternatives: /usr 사용 /bin/vim.basic 자동 모드에서 /usr/bin/vi (vi) 제공

update-alternatives: /usr/bin/vim.basic을 사용하여 /usr/bin/view 제공(보기 ) 자동 모드에서

update-alternatives: 자동 모드에서 /usr/bin/ex를 제공하기 위해 /usr/bin/vim.basic 사용

update-alternatives: 사용 /usr/bin/vim.basic은 자동 모드에서 /usr/bin/editor(편집기)를 제공합니다

libc-bin(2.19-0ubuntu6.4)에 대한 처리 트리거. . .

컨테이너 종료

root@8c342c0c275c:/# 종료

exit

exit를 입력하면 컨테이너 작동이 중지됩니다. 컨테이너는 지정된 /bin/bash 명령이 실행 중일 때만 실행됩니다. 컨테이너가 종료되면 /bin/bash 명령이 종료되고 컨테이너가 중지됩니다.

시스템의 컨테이너 목록 보기

[root@localhost ~]# docker ps -a

컨테이너 ID 이미지 명령 생성 상태 포트 이름

p>

8c342c0c275c ubuntu: 최신 "/bin/bash" 26분 전 종료(0) 5분 전 Sharp_bohr

8c342c0c275c: 컨테이너의 ID를 나타냅니다.

ubuntu : 최신: 생성된 컨테이너 이미지

“/bin/bash” :컨테이너가 마지막으로 실행한 명령

26분 전:생성 시간

종료(0 ) 5분 :컨테이너 종료 상태

sharp_bohr : 컨테이너 이름

Docker에서 컨테이너 이름 지정

Docker가 자동으로 컨테이너에 대한 임의의 이름을 생성합니다. 컨테이너를 만들 때. 따라서 컨테이너를 생성할 때 컨테이너 이름을 지정하려면 다음 명령을 사용할 수 있습니다:

[root@localhost ~]# docker run --name ovcer_the_container -i -t ubuntu /bin /bash

root@1ce9f640478d:/#

위 명령은 ovcer_the_container라는 컨테이너를 생성합니다. 유효한 컨테이너 이름에는 소문자 a~z, 대문자 A~Z, 숫자 0~9, 밑줄, 점, 수평선 문자만 포함될 수 있습니다.

上篇: 투르크메니스탄 발전기 下篇: Guose Tianxiang은 무료로 입장할 수 있나요?
관련 내용