티스토리 뷰
도커 기본동작
도커의 기본 설치 이후 동작을 위해서는 도커의 기본 동작 흐름만 이해하면, 컨테이너 자체를 만드는 것은 어렵지 않다.
기본 로직을 이해하면 몇가지 옵션들과 함께 간편하게 도커를 구동할 수 있다.
도커를 구동하는 로직은 아래와 같은 로직을 따른다.
아래에서 다시 소개하겠지만, 이 가운데 docker run은 이미지의 다운로드, 생성, 동작, 접속까지 한번에 실행할 수 있다.
또한 docker search, docker pull, docker create, docker start, docker attach, docker run 등은 제공되는 옵션에 따라 단계별로 생략하고 구동할 수도 있도록 해 두었다.
Docker CLI는 아래 Reference를 참조하면 된다.
Docker Hub로 부터 이미지 검색과 다운로드
# 필요한 이미지 검색
docker search centos
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
centos The official build of CentOS. 5421 [OK]
ansible/centos7-ansible Ansible on Centos7 121 [OK]
이하 생략
# official image 검색
docker search --filter "is-official=true” centos
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
centos The official build of CentOS. 5421 [OK]
# Docker Image Download
docker pull centos
Using default tag: latest
latest: Pulling from library/centos
8ba884070f61: Pull complete
Digest: sha256:b5e66c4651870a1ad435cd75922fe2cb943c9e973a9673822d1414824a1d0475
Status: Downloaded newer image for centos:latest
# Docker Images 확인
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos latest 9f38484d220f 3 months ago 202MB
Docker Image 기반으로 Container 생성과 구동
이미지 다운로드 - 이미지 기반 컨테이너 생성 - 컨테이너 동작 - 컨테이너 접속
# Image를 가지고 컨테이너 생성
docker create -it centos
4d2617211b6c04256596c471bd4b0e1abababb8e6933f079ade20eb4d83c099d
# Image를 가지고 컨테이너 생성
docker create --name centos01 -it centos
44c1e6bac8d0c78bf4f83cd61bdc8cea7c2458d14be432f6220b15a8a15e638f
docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
44c1e6bac8d0 centos "/bin/bash" 2 seconds ago Created centos01
# 컨테이너 동작
docker start centos01
centos01
docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
44c1e6bac8d0 centos "/bin/bash" About a minute ago Up 26 seconds centos01
# 컨테이너 접속
docker attach centos01
[root@44c1e6bac8d0 /]# cat /etc/*-release
CentOS Linux release 7.6.1810 (Core)
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"
CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"
CentOS Linux release 7.6.1810 (Core)
CentOS Linux release 7.6.1810 (Core)
# 컨테이너 종료 및 접속 종료
[root@44c1e6bac8d0 /]# exit
exit
docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
44c1e6bac8d0 centos "/bin/bash" 3 minutes ago Exited (127) 6 seconds ago centos01
docker rm centos01
centos01
docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
docker run 명령을 통한 한꺼번에 명령 수행하기
# Docker run을 사용하면, image가 없으면 자동으로 다운로드 받고 컨테이너를 생성하고 컨테이너 접속까지 수행 시킬 수 있음.
docker run —-name centos01 -it centos
[root@c82edce497d8 /]# cat /etc/*-release
CentOS Linux release 7.6.1810 (Core)
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"
CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"
CentOS Linux release 7.6.1810 (Core)
CentOS Linux release 7.6.1810 (Core)
터미널 종료시 ctrl + p, ctrl+q 를 사용하면, 백그라운드로 동작
Port Forwarding을 통한 컨네티너 구동
# nginx 공식 이미지 검색
docker search --filter "is-official=true” nginx
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
nginx Official build of Nginx. 11588 [OK]
# nginx 공식 이미지 다운로드
docker pull nginx
# nginx 동작을 8080포트로 포트포워딩 시킴.
docker run --name ngnix-test -p 8080:80 nginx
# 정상적으로 port forwarding 되는지 curl을 통해 확인.
curl http://10.72.78.151:8080
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
body {
width: 35em;
margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif;
}
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>
<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>
<p><em>Thank you for using nginx.</em></p>
</body>
</html>
# docker ps를 통해 현재 동작 중인 docker 확인 ( -a 옵션을 사용하면 정지 중인 도커 까지 확인 할 수 있음)
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
2d877849958e nginx "nginx -g 'daemon of…" 4 minutes ago Up 2 minutes 0.0.0.0:8080->80/tcp ngnix-test
c82edce497d8 centos "/bin/bash" 15 hours ago Up 15 hours centos01
'가상화 > Docker_K8s' 카테고리의 다른 글
Docker 강좌 - 4. 도커 이미지1 - 도커이미지 만들기 (1) | 2019.10.26 |
---|---|
Docker 강좌 - 3. Docker 네트워크 2 (macvlan) (1) | 2019.07.22 |
Docker 강좌 - 3. Docker 네트워크 1 - 소개 및 Bridge (1) | 2019.07.02 |
Docker 명령어 cheatsheet (0) | 2019.06.25 |
Docker 강좌 - 1.Overview (0) | 2019.06.21 |
공지사항