Docker
소프트웨어를 컨테이너내에서 빌드, 배포, 실행 등 환경을 가상화하는 플랫폼으로 관리 측면에서 보면
매우 매력적이다.
이전의 가상화 환경에서는 추가되는 레이어 덕분에 throughput 이나 latency 측면에서 손해되는 부분이 있었지만
Docker 는 Guest OS 가 없다는 부분이 시션을 끌었다.
번외로 개발환경 맞춘다고 환경을 통으로 들고 다닌(?) 적도 있었지만 지금은 Docker 하나면 충분할듯 하다.
도커에 대한 설명은 이래저래 사이트들에서 이해했고 한번 써보자
host OS 환경
CentOS 7.6 환경에서 진행한다.
$ cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)
Docker 설치
다음 명령으로 쉽게 설치 가능
$ curl -fsSL https://get.docker.com/ | sudo sh
sudo 없이 Docker 사용하기
docker 는 기본적으로 root 권한으로 실행되기 되는데 일반적으로 root 로 작업하는 경우는 없다.
그래서 sudo 가 함께 사용되는데 번거롭기 때문에 아래와 같이 docker 그룹에 docker 를 사용할
일반계정을 추가한다.
$ sudo usermod -aG docker $USER
$ sudo usermod -aG docker your-user
Docker 설치 확인
다음 명령으로 설치된 version 확인 한다.
$ docker version
Client:
Version: 18.09.2
API version: 1.39
Go version: go1.10.6
Git commit: 6247962
Built: Sun Feb 10 04:13:27 2019
OS/Arch: linux/amd64
Experimental: false
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
Client 설명이 나오고 아래처럼 오류가 발생했다.
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
해당 오류는 docker 하나의 바이너리로 clinet, server 의 버전을 확인하는데 client 와 별개로 서버는 설치이후 데몬을
별도로 실행하지 않아서 발생한 것으로 service 명령어로 데몬을 실행해 준다.
chlee@localhost:~
$ sudo systemctl start docker
chlee@localhost:~
$ docker version
Client:
Version: 18.09.2
API version: 1.39
Go version: go1.10.6
Git commit: 6247962
Built: Sun Feb 10 04:13:27 2019
OS/Arch: linux/amd64
Experimental: false
Server: Docker Engine - Community
Engine:
Version: 18.09.2
API version: 1.39 (minimum version 1.12)
Go version: go1.10.6
Git commit: 6247962
Built: Sun Feb 10 03:47:25 2019
OS/Arch: linux/amd64
Experimental: false
Docker Container 실행하기
컨테이를 실행하는 옵션은 매우 다양한다. 정상설치 확인을 위해 hello-wolrd 라는 이미지를 실행해 보았다.
$ docker run hello-world
Hello from Docker!
This message shows that your installation appears to be working correctly.
To generate this message, Docker took the following steps:
1. The Docker client contacted the Docker daemon.
2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
(amd64)
3. The Docker daemon created a new container from that image which runs the
executable that produces the output you are currently reading.
4. The Docker daemon streamed that output to the Docker client, which sent it
to your terminal.
To try something more ambitious, you can run an Ubuntu container with:
$ docker run -it ubuntu bash
Share images, automate workflows, and more with a free Docker ID:
https://hub.docker.com/
For more examples and ideas, visit:
https://docs.docker.com/get-started/
컨테이너 hello-world 를 실행하면 어떻게 실행이되고 결과가 출력되는지 설명이 나오며
이후 종료를 하게 된다.