본문 바로가기
도커&쿠버네티스/도커

도커란?

by 취미툰 2020. 9. 1.
반응형

도커(docker)는 리눅스 컨테이너에 여러 기능을 추가함으로써 애플리케이션을 컨테이너로서 좀 더 쉽게 하용할 수 있게 만들어진 오픈소스 프로젝트입니다.

 

일반적으로 도커라고 하면 도커 엔진 혹은 도커와 관련된 모든 프로젝트를 의미합니다. 보통 도커엔진이라는 의미로 더 많이 쓰이는데 도커 엔진은 컨테이너를 생성하고 관리하는 주체로서 이 자체로도 컨테이너를 제어할 수 있고 다양한 기능을 제공하는 도커의 주 프로젝트입니다.

1가상머신과 도커 컨테이너

기존의 가상화 기술은 하이퍼바이저를 이용해 어러 개의 운영체제를 하나의 호스트에서 생성해 사용하는 방식이었습니다. 대표적인 가상화 툴로는 VMware,VirtualBox 등이 있습니다.

도커 컨테이너는 가상화된 공간을 생성하기 위해 리눅스의 자체 기능인 chroot, 네임스페이스(namespace),cgroup을 사용함으로써 프로세스 단위의 격리 환경을 만들기 때문에 성능 손실이 거의 없고, 컨테이너에 필요한 커널은 호스트의 커널을 공유해 사용하고, 컨테이너 안에는 애플리케이션을 구동하는 데 필요한 라이브러리 및 실행 파일만 존재하기 때문에 컨테이너를 이미지로 만들었을 때 이미지의 용량 또한 가상 머신에 비해 대폭 줄어들고 컨테이너를 이미지로 만들어 배포하는 시간이 가상머신에 비해서 빠릅니다.

 

 

2.도커엔진 설치

 

2017년 이전의 도커 엔진은 1.xx버전으로 표기되어 왔습니다. 하지만 1.13을 마지막으로 2017년 3월부터 도커 EE(Enterprise Edition)과 CE(Communuty Edition)으로 구분되어 제공하고 있으며 버전 이름 또한 17.03-EE 또는 17.03-CE와 같은 형태로 변하였습니다.

 

EE는 유료로 제공되는 기업용 솔루션, CE는 무료로 제공되는 도커엔진입니다.

 

리눅스(Ubuntu)에 도커 설치하기

-VM은 인터넷이 되는 환경이어야 합니다.

 

버전확인

ysbae@ysbae-VirtualBox:~$ uname -r
5.3.0-28-generic

 

설치에 필요한 curl 패키지 설치

ysbae@ysbae-VirtualBox:~$ sudo apt-get install curl

Reading package lists... Done

Building dependency tree

Reading state information... Done

The following additional packages will be installed:

  libcurl4

The following NEW packages will be installed:

  curl libcurl4

0 upgraded, 2 newly installed, 0 to remove and 273 not upgraded.

Need to get 373 kB of archives.

After this operation, 1,038 kB of additional disk space will be used.

Do you want to continue? [Y/n] y

Get:1 http://kr.archive.ubuntu.com/ubuntu bionic-updates/main amd64 libcurl4 amd64 7.58.0-2ubuntu3.10 [214 kB]

Get:2 http://kr.archive.ubuntu.com/ubuntu bionic-updates/main amd64 curl amd64 7.58.0-2ubuntu3.10 [159 kB]

Fetched 373 kB in 1s (252 kB/s)

Selecting previously unselected package libcurl4:amd64.

(Reading database ... 129917 files and directories currently installed.)

Preparing to unpack .../libcurl4_7.58.0-2ubuntu3.10_amd64.deb ...

Unpacking libcurl4:amd64 (7.58.0-2ubuntu3.10) ...

Selecting previously unselected package curl.

Preparing to unpack .../curl_7.58.0-2ubuntu3.10_amd64.deb ...

Unpacking curl (7.58.0-2ubuntu3.10) ...

Setting up libcurl4:amd64 (7.58.0-2ubuntu3.10) ...

Setting up curl (7.58.0-2ubuntu3.10) ...

Processing triggers for man-db (2.8.3-2ubuntu0.1) ...

Processing triggers for libc-bin (2.27-3ubuntu1) ...

 

curl은 다양한 프로토콜을 지원하는 데이터전송용 command line Tool입니다.

curl을 사용해서 docker사이트를 추가해줍니다.

 

ysbae@ysbae-VirtualBox:~$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

OK

 

repository에 docker다운로드 경로를 추가합니다.

 

ysbae@ysbae-VirtualBox:~$ sudo add-apt-repository \

      "deb [arch=amd64] https://download.docker.com/linux/ubuntu \

      $(lsb_release -cs) \

      stable"

Get:1 https://download.docker.com/linux/ubuntu bionic InRelease [64.4 kB]

Get:2 https://download.docker.com/linux/ubuntu bionic/stable amd64 Packages [12.5 kB]

Hit:3 http://kr.archive.ubuntu.com/ubuntu bionic InRelease

Get:4 http://kr.archive.ubuntu.com/ubuntu bionic-updates InRelease [88.7 kB]

Get:5 http://security.ubuntu.com/ubuntu bionic-security InRelease [88.7 kB]

Get:6 http://kr.archive.ubuntu.com/ubuntu bionic-backports InRelease [74.6 kB]

Get:7 http://kr.archive.ubuntu.com/ubuntu bionic-updates/universe Translation-en [343 kB]

Fetched 672 kB in 3s (199 kB/s)

Reading package lists... Done

ysbae@ysbae-VirtualBox:~$ apt-get update

Reading package lists... Done

E: Could not open lock file /var/lib/apt/lists/lock - open (13: Permission denied)

E: Unable to lock directory /var/lib/apt/lists/

W: Problem unlinking the file /var/cache/apt/pkgcache.bin - RemoveCaches (13: Permission denied)

W: Problem unlinking the file /var/cache/apt/srcpkgcache.bin - RemoveCaches (13: Permission denied)

ysbae@ysbae-VirtualBox:~$ sudo apt-get update

Hit:1 https://download.docker.com/linux/ubuntu bionic InRelease

Get:2 http://security.ubuntu.com/ubuntu bionic-security InRelease [88.7 kB]

Hit:3 http://kr.archive.ubuntu.com/ubuntu bionic InRelease

Hit:4 http://kr.archive.ubuntu.com/ubuntu bionic-updates InRelease

Get:5 http://kr.archive.ubuntu.com/ubuntu bionic-backports InRelease [74.6 kB]

Fetched 163 kB in 2s (91.5 kB/s)

Reading package lists... Done

 

apt-get을 최신상태로 업데이터합니다.

ysbae@ysbae-VirtualBox:~$ sudo apt-get update

추가된것을 확인할 수 있습니다.

 

Hit:1 https://download.docker.com/linux/ubuntu bionic InRelease

Get:2 http://security.ubuntu.com/ubuntu bionic-security InRelease [88.7 kB]

Hit:3 http://kr.archive.ubuntu.com/ubuntu bionic InRelease

Hit:4 http://kr.archive.ubuntu.com/ubuntu bionic-updates InRelease

Get:5 http://kr.archive.ubuntu.com/ubuntu bionic-backports InRelease [74.6 kB] 

 

docker-ce버전을 설치합니다.

ysbae@ysbae-VirtualBox:~$ sudo apt-get install docker-ce

Reading package lists... Done

Building dependency tree

Reading state information... Done

The following additional packages will be installed:

  aufs-tools cgroupfs-mount containerd.io docker-ce-cli git git-man liberror-perl pigz

Suggested packages:

  git-daemon-run | git-daemon-sysvinit git-doc git-el git-email git-gui gitk gitweb git-cvs

  git-mediawiki git-svn

The following NEW packages will be installed:

  aufs-tools cgroupfs-mount containerd.io docker-ce docker-ce-cli git git-man liberror-perl pigz

0 upgraded, 9 newly installed, 0 to remove and 273 not upgraded.

...생략

 

설치 확인

 

ysbae@ysbae-VirtualBox:~$ docker info

Client:

 Debug Mode: false

 

Server:

ERROR: Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.40/info: dial unix /var/run/docker.sock: connect: permission denied

errors pretty printing info

 

위의 에러가 나오면, ysbae유저를 docker를 사용할수있게 변경 후 docker시스템을 재기동하고 세션을 다시 엽니다.

ysbae@ysbae-VirtualBox:~$ sudo usermod -a -G docker $USER
ysbae@ysbae-VirtualBox:~$ sudo service docker restart

 

 

ysbae@ysbae-VirtualBox:~$ docker info

Client:

 Debug Mode: false

 

Server:

 Containers: 0

  Running: 0

  Paused: 0

  Stopped: 0

 Images: 0

 Server Version: 19.03.12

 Storage Driver: overlay2

  Backing Filesystem: extfs

  Supports d_type: true

  Native Overlay Diff: true

 Logging Driver: json-file

 Cgroup Driver: cgroupfs

 Plugins:

  Volume: local

  Network: bridge host ipvlan macvlan null overlay

  Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog

 Swarm: inactive

 Runtimes: runc

 Default Runtime: runc

 Init Binary: docker-init

 containerd version: 7ad184331fa3e55e52b890ea95e65ba581ae3429

 runc version: dc9208a3303feef5b3839f4323d9beb36df0a9dd

 init version: fec3683

 Security Options:

  apparmor

  seccomp

   Profile: default

 Kernel Version: 5.3.0-28-generic

 Operating System: Ubuntu 18.04.4 LTS

 OSType: linux

 Architecture: x86_64

 CPUs: 1

 Total Memory: 3.844GiB

 Name: ysbae-VirtualBox

 ID: KJJ6:DAYW:MUQZ:HJH7:H6GY:EDGI:U3BO:2N7S:I7LH:GOKP:CYVF:TQIQ

 Docker Root Dir: /var/lib/docker

 Debug Mode: false

 Registry: https://index.docker.io/v1/

 Labels:

 Experimental: false

 Insecure Registries:

  127.0.0.0/8

 Live Restore Enabled: false

 

WARNING: No swap limit support

 

설치완료

 

 

도커와 쿠버네티스의 공부를 시작하였습니다. 앞으로 책을 통해 공부후 블로그에 자주 정리할수 있도록 하겠습니다.

 

출처 : 시작하세요! 도커/쿠버네티스

 

반응형

'도커&쿠버네티스 > 도커' 카테고리의 다른 글

환경변수옵션을 사용하여 MYSQL 설치하기  (0) 2020.09.07
도커의 유용한 명령어  (0) 2020.09.07
도커엔진  (0) 2020.09.04

댓글