본문 바로가기

Programming

[docker] docker 설치 (install)

docker imagesdocker VM


안녕하세요 

마푸입니다. 


오늘은 도커의 설치에 대해서 알아보려합니다. 

포스트 내용은 길지만 사실 엄청 짧은 내용입니다. (설치과정을 모두 올려드려서 그렇습니다. ^^)


사실 왠지 한줄로 끝내면 너무 성의 없어 보일까봐 그랫어요 ㅎㅎ;;


참고로 전 Ceontos에서 설치를 진행하여서 yum이라는 유틸리티로 설치 했습니다. 


1. docker 내려받아 설치하기 

 앞서 말씀디린것처럼 centos에서는 yum이라는 유틸리티를 이용해서 프로그램을 설치 할 수 있습니다. 네 매우 쉽습니다. 슥~ 검색해서 install만 붙여주면 된깐요 ^^

자세한 명령어는 아래와 같습니다


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
[root@EYE-Redis ~]# yum install docker-io.x86_64
Loaded plugins: fastestmirror, security
Setting up Install Process
Loading mirror speeds from cached hostfile
 * base: mirror.navercorp.com
 * epel: ftp.yz.yamagata-u.ac.jp
 * extras: mirror.navercorp.com
 * updates: mirror.navercorp.com
Resolving Dependencies
--> Running transaction check
---> Package docker-io.x86_64 0:1.7.1-2.el6 will be installed
--> Processing Dependency: lxc for package: docker-io-1.7.1-2.el6.x86_64
--> Running transaction check
---> Package lxc.x86_64 0:1.0.9-1.el6 will be installed
--> Processing Dependency: lua-lxc(x86-64= 1.0.9-1.el6 for package: lxc-1.0.9-1.el6.x86_64
--> Processing Dependency: lua-alt-getopt for package: lxc-1.0.9-1.el6.x86_64
--> Processing Dependency: liblxc.so.1()(64bit) for package: lxc-1.0.9-1.el6.x86_64
--> Running transaction check
---> Package lua-alt-getopt.noarch 0:0.7.0-1.el6 will be installed
---> Package lua-lxc.x86_64 0:1.0.9-1.el6 will be installed
--> Processing Dependency: lua-filesystem for package: lua-lxc-1.0.9-1.el6.x86_64
---> Package lxc-libs.x86_64 0:1.0.9-1.el6 will be installed
--> Running transaction check
---> Package lua-filesystem.x86_64 0:1.4.2-1.el6 will be installed
--> Finished Dependency Resolution
 
Dependencies Resolved
 
=============================================================================================================================================================================================================================================
 Package                                                       Arch                                                  Version                                                       Repository                                           Size
=============================================================================================================================================================================================================================================
Installing:
 docker-io                                                     x86_64                                                1.7.1-2.el6                                                   epel                                                4.6 M
Installing for dependencies:
 lua-alt-getopt                                                noarch                                                0.7.0-1.el6                                                   epel                                                6.9 k
 lua-filesystem                                                x86_64                                                1.4.2-1.el6                                                   epel                                                 24 k
 lua-lxc                                                       x86_64                                                1.0.9-1.el6                                                   epel                                                 16 k
 lxc                                                           x86_64                                                1.0.9-1.el6                                                   epel                                                122 k
 lxc-libs                                                      x86_64                                                1.0.9-1.el6                                                   epel                                                257 k
 
Transaction Summary
=============================================================================================================================================================================================================================================
Install       6 Package(s)
 
Total size: 5.0 M
Installed size: 20 M
Is this ok [y/N]: y
Downloading Packages:
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing : lxc-libs-1.0.9-1.el6.x86_64                                                                                                                                                                                               1/6
  Installing : lua-filesystem-1.4.2-1.el6.x86_64                                                                                                                                                                                         2/6
  Installing : lua-lxc-1.0.9-1.el6.x86_64                                                                                                                                                                                                3/6
  Installing : lua-alt-getopt-0.7.0-1.el6.noarch                                                                                                                                                                                         4/6
  Installing : lxc-1.0.9-1.el6.x86_64                                                                                                                                                                                                    5/6
  Installing : docker-io-1.7.1-2.el6.x86_64                                                                                                                                                                                              6/6
  Verifying  : lua-lxc-1.0.9-1.el6.x86_64                                                                                                                                                                                                1/6
  Verifying  : lxc-libs-1.0.9-1.el6.x86_64                                                                                                                                                                                               2/6
  Verifying  : lxc-1.0.9-1.el6.x86_64                                                                                                                                                                                                    3/6
  Verifying  : docker-io-1.7.1-2.el6.x86_64                                                                                                                                                                                              4/6
  Verifying  : lua-alt-getopt-0.7.0-1.el6.noarch                                                                                                                                                                                         5/6
  Verifying  : lua-filesystem-1.4.2-1.el6.x86_64                                                                                                                                                                                         6/6
 
Installed:
  docker-io.x86_64 0:1.7.1-2.el6
 
Dependency Installed:
  lua-alt-getopt.noarch 0:0.7.0-1.el6                 lua-filesystem.x86_64 0:1.4.2-1.el6                 lua-lxc.x86_64 0:1.0.9-1.el6                 lxc.x86_64 0:1.0.9-1.el6                 lxc-libs.x86_64 0:1.0.9-1.el6
 
Complete!
 
cs


먼가 상당히 많은 양의 텍스트가 보이지만 사실 설치 명령어는 "yum install docker-io.x86_64" 입니다. 매우 간단하죠? ^^;

설치에 필요한 유틸리티를 확인하고 추가적으로 y를 입력한다면 별일이 없다면 인스톨이 됩니다. 


만약 docker가 먼저 설치 되어있다면 아래의 명령어를 이용해서 지우고 다시 설치 해주세요 


1
yum remove package-name
cs



그럼 이제 설치된 docker를 서비스로 실행 해 보도록 하겠습니다. 


1
2
3
4
[root@EYE-Redis ~]# service docker start
Starting cgconfig service:                                 [  OK  ]
Starting docker:                                           [  OK  ]
 

cs

 

정상적으로 올라온게 확인 되었다면 이제 각종 프로그램을 다운받고 독립적으로 실행 할 수 있습니다.


자 잠시 지난 포스트에서 알려드린 내용을 다시 언급해 보도록 하겠습니다. 먼저, 우리는 각종 프로그램을 여러개 실행시키기위한 설치파일인 이미지를 다운받아 보겠습니다. (* 여기서는 편의상 설치파일이라 말씀드리지만 이미지는 사실 배포버전의 패키지입니다. )


먼저 mysql의 이미지를 docker hub에서 검색해 봅시다. 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
[root@EYE-Redis ~]# docker search mysql
NAME                            DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
mysql                           MySQL is a widely used, open-source relati...   4313      [OK]
mysql/mysql-server              Optimized MySQL Server Docker images. Crea...   295                  [OK]
centurylink/mysql               Image containing mysql. Optimized to be li...   51                   [OK]
zabbix/zabbix-server-mysql      Zabbix Server with MySQL database support       39                   [OK]
zabbix/zabbix-web-nginx-mysql   Zabbix frontend based on Nginx web-server ...   21                   [OK]
imega/mysql                     Size: 149 MB, alpine:3.5, Mysql Server: 10...   11                   [OK]
appcontainers/mysql             Centos/Debian Based Customizable MySQL Con...   8                    [OK]
zabbix/zabbix-proxy-mysql       Zabbix proxy with MySQL database support        7                    [OK]
marvambass/mysql                MySQL Server based on Ubuntu 14.04              7                    [OK]
bitnami/mysql                   Bitnami MySQL Docker Image                      5                    [OK]
dnhsoft/mysql-utf8              Inherits the official MySQL image configur...   5                    [OK]
debezium/example-mysql          Example MySQL database server with a simpl...   4                    [OK]
alterway/mysql                  Docker Mysql                                    3                    [OK]
frodenas/mysql                  A Docker Image for MySQL                        3                    [OK]
drupaldocker/mysql              MySQL for Drupal                                2                    [OK]
yfix/mysql                      Yfix docker built mysql                         2                    [OK]
lysender/mysql                  MySQL base image using Ubuntu 16.04 Xenial      1                    [OK]
coscale/mysql                   CoScale custom configuration of the offici...   1                    [OK]
tozd/mysql                      MySQL (MariaDB fork) Docker image.              1                    [OK]
1maa/mysql                      MySQL database                                  0                    [OK]
datajoint/mysql                 MySQL image pre-configured to work smoothl...   0                    [OK]
nanobox/mysql                   MySQL service for nanobox.io                    0                    [OK]
cloudposse/mysql                Improved `mysql` service with support for ...   0                    [OK]
projectomakase/mysql            Docker image for MySQL                          0                    [OK]
captomd/mysql                   CaptoMD mysql configuration                     0                    [OK]
 
cs


주르륵 뜹니다. 이 모든 이미지가 모두 mysql을 독립적으로 실행 시킬 수 있는 이미지(패키지) 입니다. 


우리는 mysql/mysql-server 를 다운받아서 실행 해 보도록 할께요 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[root@EYE-Redis ~]# docker pull mysql/mysql-server
latest: Pulling from mysql/mysql-server
3690474eb5b4: Pull complete
939edc12a269: Pull complete
b2c7842ef512: Pull complete
07c67e5f5698: Pull complete
79d74b424a1f: Pull complete
e14d41b737bd: Pull complete
b700b551096e: Pull complete
9f2efacbde7a: Pull complete
992f982b03a0: Pull complete
1c3826eee7df: Pull complete
8b2b1825dce2: Pull complete
Digest: sha256:73c9492733c6c88fe47d8b538a18367cbd6152e26c48c001efe64abca11ad6ef
Status: Downloaded newer image for mysql/mysql-server:latest
 
cs


위에서 보시면 pull image-name을 이용해서 해당 이미지를 다운받는것을 볼 수 있습니다. 

앞에 난수처럼 보이는 시리얼이 전체이미지의 개별 이미지의 목록입니다. 즉 저 리스트의 이미지를 모아서 mysql/mysql-server를 구성하는 것이지요 


자 그럼 재대로 이미지가 설치되었는지는 아래의 리스트 명령어로 확인 할 수 있습니다. 

1
2
3
4
[root@EYE-Redis mysql-data]# docker images
REPOSITORY           TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
mysql/mysql-server   latest              8b2b1825dce2        19 hours ago        214.9 MB
 
cs


쉽지요 그냥 images라고 치면 host에 설치한 이미지 리스트를 확인할 수 있습니다.

우리는 이 이미지를 통해서 다수의 mysql 서버를 서비스 할 수 있게 되는 것이지요 ^^


그럼 이 image를 통해서 container로 실행(등록)하는 방법을 알아 보겠습니다. 

1
2
3
4
5
6
7
8
[root@EYE-Redis mysql-data]# docker run --name test-mysql-01 \
> -e MYSQL_ROOT_PASSWORD=your-password \
> -d \
> -/home/mysql-data:/var/lib/mysql \
> -4958:3306 \
> mysql/mysql-server
d49a868310894ece35ca82aea704516fed02138f72e03b19996737be5c7735a8
 
cs


이러한 환경변수는 docker hub에 각 이미지 마다 메뉴얼이 있으므로 찾아보는면 될듯합니다. github에서의 md파일처럼 안내 문서가 있을듯한데 아직은 모르겠네요 ^^;;;


그럼 옵션을 하나씩 살펴 보도록 하겠습니다. 


 --name : 컨테이너 이름을 지정합니다. 

 -e : Mysql root의 비밀번호를 설정합니다. 

 -d : 컨테이너를 데몬의 형태로 서비스 합니다. (host에 접속한 세션이 끊어져도 서비스는 계속 된다는 뜻 같습니다. ^^;;)

 -v : DATABASE Dir을 지정할 수 있습니다. 

 -p : 포트 포워딩을 설정합니다. 

  


자 그럼 이제 mysql이 서비스 되고있습니다. 

당연히 제대로 구동 중인지 확인이 필요하겠지요 


접속하기 전에 등록된 container가 정상적으로 구동 중인지 확인 해 봅시다. 

1
2
3
4
[root@EYE-Redis mysql-data]# docker ps
CONTAINER ID        IMAGE                COMMAND                CREATED             STATUS              PORTS                               NAMES
d49a86831089        mysql/mysql-server   "/entrypoint.sh mysq   42 seconds ago      Up 41 seconds       33060/tcp, 0.0.0.0:4958->3306/tcp   test-mysql-01
cs


자 그럼 이제 접속을 해볼까요?

이전 포스트에서도 말씀을 드렸지만 컨테이너는 독립적인 인스턴스(OS가 없지만 독자적으로 구동된다는 뜻입니다.)입니다.

그래서 Host의 일반적인 mysql client 유틸리티로 ip를 지정해서 접속할 수 있고 컨테이너를 직접 지정해서 접속 할 수 있습니다. 


아래와 같이 말이죠


접속은 퇴근하고 집에서 올려야겠네요 ㅎㅎ;;

반응형