際際滷

際際滷Share a Scribd company logo
?? ??? ????
??? ????? ????? ??? ???????.
PYRASIS.COM ???
??? ??? ??? 60??? ? ??? ?? ? ????!
Version 1.0.3, 2015.2.9
???
?? ?? ??
2
?? ?? ??? ????? ???? ???. ?? ??? ?? ????.
??, ??? ?? ???? ?? ??? ????? ? ??? ??? ?
????.
??, ???? ?? ??? ???? ??? ???? ???? ???? ?
??? ??? ? ????.
???
?? ?? ? ???? ??
3
???
????: http://pyrasis.com
??:
? ?? ?? ??? ??(Docker)
? ??? ? ???? ??? ??
? ??? ???? ?? ????:
Subversion, Trac, CruiseControl.NET
? ????? ?? ?? ??? ???
??? ??? ???????.
?? ?? ??? ??? ? ???
?? ????? ???? ????.
?? ??? ????: ??? ??? ??? 60??? ? ??? ?? ? ????!
???
??? 2013? 3? Docker, Inc?? ???
?? ?? ???? ????
?? ?????? ? ??? ?? ??
??? ?????
??
5
???
AWS, Google Cloud Platform, Microsoft Azure ??
???? ????? ?? ??
??? ?????
??
6
???
??? ?????
??
??? ? ??? ?? ????
???
??? ?????
??
??? ??? ???????
????? ??? ??? ? ??
???
??? ?????
??
??, ???, ??? ??? ??? ????
????? ??? ? ?? ??!
???
??? ?????
??
????(???)?
? ?? ???? ??
???
??? ?????
??
?? ??? ?????
???
??? ?????
??
??? ???? ????
???? ??? ??
???
??? ?????
??
GitHub? ??? ???
Docker Hub ??!
???
??? ?????
??
??? ???? ??? ???
???
??? ?????
??
????? ?????
?? ??? ??!
???
??? ?????
??
?? ?? ?? ?????...
?? ??? ??
???
??? ??? ???? ????? ?? ??
1960? ?? ??? ??? ?? ??
?? ??? ??
?? ??? ??
18
???
??? ??? ??? ?????
PC??? ?? ??
??? ??? ???
????´
?? ??? ??
?? ??? ??
19
???
?? ??? ?? ? ????
?? ??? ??
?? ??? ??
20
???
??? ?? ???? ???
??? ?? ?? -_-;
?? ??? ??
?? ??? ??
21
???
??? ?? ??? ?? ?
??? ?? ? ???!
?? ??? ??
?? ??? ??
22
???
??? IT ??? ??????
??? ????
?? ??? ??
?? ??? ??
23
???
?? ??? ?? ???
????? ???
?? ??? ??
?? ??? ??
24
???
?? ??? ?? ?? ????, DB ?? ????
???????? ????? ??
?? ??? ??
?? ??? ??
25
???
?? ??? ?? ?? ????
?? ??? ???? ????
??? ??? ??? ?? ???? ? ??
?? ??? ??
?? ??? ??
26
???
??? ??? ???? ???
????? ???? ???? ???
?? ??? ??
?? ??? ??
27
???
??? ?? ??? ? ??? ??
?? ??? ???
?? ??? ??
28
???
???? ??? ????? ??´
?? ?? ??? ??
?? ??? ???
?? ??? ??
29
???
??? AMD? CPU ?? ???
??? ?? ??
?? ??? ???
?? ??? ??
30
???
??? ??´
?? ??? ???
?? ??? ??
31
???
???? ??? ????
???? ??? ??
?? ??? ???
?? ??? ??
32
???
??? ??? ?? ???´
?? ??? ???
?? ??? ??
33
???
?? ??? ???
?? ??? ??
34
?? ??? ??? ???
??? ??? OS? ???? ?
?????? A ?????? B
??????(Hypervisor)
?? ??/?????
??? OS
?? ??/?????
??? OS
??? OS
??
https://www.docker.com/whatisdocker/
???
?? ??? ???
?? ??? ??
35
??? ?? OS? ???? ??? ??? ??? ??
?????? ??? ???? ?? ?? ? ? ?????
???
?? ??? ???
?? ??? ??
36
???? ??? ?????? OS ???? ? ??
? ??? ?? ??? ??
???
?? ??? ???
?? ??? ??
37
?? ??? ?? ??? ?? ??
??? ????? ??
???
???? ?? ?? ??? ????
?? ??? ????? ?? ??
??? ????
?? ??? ??
38
???
?? ??? ???
cgroups? namespaces?
???? ??
??? ????
?? ??? ??
39
???
???? ?? ??
??? ????
?? ??? ??
40
???
??? ??? ????? ??!
? ???? LXC(LinuX Container)? ???? ??
? ?? 0.9??? LXC? ???? libcontainer? ???? ??
? ?? ???? ?? ??
??? ??
LXC
cgroups namespaces
??
libvirt systemd-nspawn
libcontainer
http://blog.docker.com/2014/03/docker-0-9-introducing-execution-drivers-and-libcontainer
??? ????
?? ??? ??
41
??? ??
???
??? ??? OS? ???? ??
????? ?? ??? ?? ?????
?????? ???? ??
???? ??? ?? ???
????? OS ??(??? ?)? ??
?????? A ?????? B
?? ??/????? ?? ??/?????
??? OS
??
https://www.docker.com/whatisdocker/
?? ??
??? ??
??? ??
43
???
???
?? ????
1
0.9945CPU
1
0.9826??? ??
1
1.0025??? ??
0.9811??? I/O
1
0.9626????
1
??? ???? ??? ??? ??
? ??? ??, ?? ???, ???? ?? ??? ?? ??? ?? ??? ??
? ???? ?? ???? ??? ?? ??? ?? ??(?? ?? ?)
?? 1.1.2?? ??? 14.04 ???? ??? 14.04 ???? ?? ??
??? ??
??? ??
44
???
??? ??
??? ??
45
??? ???
??? ??? ??? ??
???
??? ??
??? ??
46
??? ?? ??? ????
?? ???? ???? ??? ?? ? ??
(push/pull)
???
??? ??
??? ??
47
GitHub? ??? ???
?? ???? ???? Docker Hub ??
(GitHub ?? ?? ???? ??)
???
??? ??
??? ??
48
??? API? ???? ??? ?? ??? ??
??? ?? ??? ?? ??!
???
??? ???? ?????
?? ?? ???
?? ??? ???
?? ??? ??
49
?? ???? ????
???
?? ???
?? ???? ????
51
???? ??? ??? ??? ?? ????,
?? ??, ???? ?? ??? ?? ??
???
?? ???
?? ???? ????
52
???? ??? ??? ???
(push/pull)
???
?? ????
?? ???? ????
53
????? ???? ??? ??!
???
?? ????
?? ???? ????
54
???? ?? ?? ????? ?? ? ??
???
?? ????
?? ???? ????
55
????? ?? ???? ??????
????? ????
???
??? ??? ?? ??
?? ???? ????
56
??? ???? ?? ???
??? ?????
???
??? ??? ?? ??
?? ???? ????
57
??? ?? ??? ??
(aufs, btrfs, devicemapper)
???
?? ??/?????
?? ??/?????
??
??
??
??
?????? A
??? ???
?? ??
?????? A¨ ?????? A¨¨
?????? A
+
?? ??
?????? A
??? ??? ????? ?? ??? ???? ??
????? ??? ?? ??? ???? ?? ??? ??? ??
??? ??? ?? ??
?? ???? ????
58
http://www.slideshare.net/dotCloud/why-docker
???
??? ??? ?? ??
?? ???? ????
59
Docker Hub ? ?? ?????
???? ??? ?
?? ??? ?? ??
???
? ???? ?? ?? ??
??? ??? ?? ??
?? ???? ????
60
??? ?? ??? ??
???
????? ?? ??
??? ?? ??? ??
62
?????
?? ??? ?? ?? ??
???
????? ?? ??
??? ?? ??? ??
63
??? ?? IDC ????? ???
??
???
????? ?? ??
??? ?? ??? ??
64
?? ??? ??? ?? ?? ??
??? ?? ??
???
???? ??
??? ?? ??? ??
65
???? ?????
???? ???? ??
???
???? ??
??? ?? ??? ??
66
?? ??? ????
??? ??? ?? ??
???
???? ??
??? ?? ??? ??
67
?? ? ? ??? ?? ??? ??
???
???? ??
??? ?? ??? ??
68
?? ???? ??? ????
??????´
???
???? ??
??? ?? ??? ??
69
?? ??? ?????
??? ??? ???? ????
???
???? ??
??? ?? ??? ??
70
?? ?? ??? ??? ????
???
Immutable Infrastructure
??? ?? ??? ??
71
Immutable Infrastructure??
????? ??
???
Immutable Infrastructure
??? ?? ??? ??
72
??? OS? ??? ?? ??
(?? ????, ?? ??, ??? ? ????)? ??
???
Immutable Infrastructure
??? ?? ??? ??
73
? ? ??? ?? ???
???? ???(Immutable)? ??
???
??? ?? ??? ???? ??? ?
??? ???? ??
?? ?? rev. 10
????
??
??? ?? ?? ??? ??
?? ? ??
?? ?? rev. 11
?? ?? rev. 12
?? ?? rev. 12
????
??
?? ?? rev. 12
Immutable Infrastructure
??? ?? ??? ??
74
???
Immutable Infrastructure
??? ?? ??? ??
75
???? ?????? ?? ?? ??? ????
??, ???? ?? ???? ??
???
Immutable Infrastructure
??? ?? ??? ??
76
???? ????? ??? ?? ??? ?? ??
Immutable Infrastructure?
??? ?? ?? ???? ? ? ?? ??
???
? ??? ?? ???? ???? ?
? ?? ??? ?? ???? ??? ??
? ??? ??? ?? ?? ??? ??
??? ??
? ??? ??? ??? ?? ??? ? ??
? ???? ???? ?? ??(Auto
Scaling) ??? ???? ??? ???
??
??
? ??? PC, ??? ???? ????
??? ?? ??? ?? ??? ???
??? ???
? ???? ??
???
? ????? ??? ??? ????
???(Lightweight) ???? ??
???(Portable) ?? ??
???
Immutable Infrastructure? ??
??? ?? ??? ??
77
???
Immutable Infrastructure
??? ?? ??? ??
78
??? Immutable Infrastructure?
??? ????
?? ??
???
??? ???? ??
?? ??
80
?? ?? ?? ??? ????
???
??? ???? ??
?? ??
81
????? ?? ??? ??
???
??? ???? ??
?? ??
82
??? ???? ?? ?? ????(???)? ????
??? ??? ??(??)? ??
???
??? ???? ??
?? ??
83
??(Docker)? ?? ???? ??
????? ??? ??? ??? ???
???
??? ??? ?? ??? ???
??? ???? ????
?? ???? ??
Build Ship Run
??? ????
?? ??
84
?? ????
???
?? ????
?? ????
86
?? ??? ????? ??? ????
?? ??? ???? ??????.
???
? ??? ??? ??? ??? ???? ???? ?? ???? ????? ????? ??
$ sudo wget CqO- https://get.docker.com/ | sh
get.docket.com ????? ??? ???? hello-world ???? ?? ???.
Hello-world ???? ???? ?? ???? ?? ??
$ sudo docker rm `sudo docker ps -aq`
$ sudo docker rmi hello-world
?? ?? ????
?? ????: ???
87
???
? ?? ?? ????? ???? ?? ????? ?? ????.
??? 14.04 LTS 64?? ??
$ sudo apt-get update
$ sudo apt-get install docker.io
$ sudo ln -sf /usr/bin/docker.io /usr/local/bin/docker
/usr/bin/docker.io ?? ??? /usr/local/bin/docker? ???? ??
???
?? ????: ???
88
???
? ?? ?? ????? ???? ?? ??? ?????? ???(RHEL)? CentOS?? ????
?? ????
? RHEL? CentOS 6 ??? ????? docker-io? ???? EPEL(Fedora Extra
Packages For Enterprise Linux) ???? ??? ? ??? ??
$ sudo yum install http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
$ sudo yum install docker-io
CentOS 6
RedHat Enterprise Linux, CentOS
?? ????: ???
89
???
? AWS EC2? ???? Amazon Linux(RHEL ??)? EPEL ???? ?? ??? ?
???? epel-release-6-8.noarch.rpm? ???? ??? ?
? CentOS 7??? docker ???? ??
$ sudo yum install docker
CentOS 7
$ sudo service docker start
Docker ??? ????
$ sudo chkconfig docker on
???? ? ???? ????
RedHat Enterprise Linux, CentOS
?? ????: ???
90
???
? ??? ??? ??????, CentOS ?? ???? ???? ?????? ?? ??? ???
?? ??? ??
? ??? ? ???? ?? ?? ? ????? ?? ???? ??
$ sudo service docker stop
$ sudo wget https://get.docker.com/builds/Linux/x86_64/docker-latest 
-O $(type -P docker)
$ sudo service docker start
?? ???? ???? ?
?? ???? ????
?? ????: ???
91
???
$ wget https://get.docker.com/builds/Linux/x86_64/docker-latest
$ chmod +x docker-latest
$ sudo mv docker-latest /usr/local/bin/docker
$ sudo /usr/local/bin/docker -d
?? ??? ?
URL? docker-latest? ???? ?? ?? ??? ??, docker-1.3.0?? ???? ??
??? ??
?? ???? ????
?? ????: ???
92
???
? Mac OS X??? Boot2Docker? ???? ??? ??? ? ??
? ?? URL?? .pkg ??? ??
?https://github.com/boot2docker/osx-installer/releases
Mac OS X
?? ????
93
???
? ?? ????? ???? .pkg ?? ??
? ????? ???? ?? ??? ??
Mac OS X
?? ????
94
???
? ?? ??? ??
Mac OS X
?? ????
95
???
? ?? ???? ???? ??? ??? ???? ????? ?? ??? ??
1
2
Mac OS X
?? ????
96
???
? ??? ?????? ?? ?? ??
Mac OS X
?? ????
97
???
? Finder? ???? ?? ?????? boot2docker? ??
1
2
Mac OS X
?? ????
98
???
? boot2docker? ???? ??? ?? ???
? ?? ???? ???? boot2docker.iso? ???? ?? ??? ????, ?? ???
???(Boot2Docker? ????? VirtualBox? ?? ???)
Mac OS X
?? ????
99
???
? Windows??? Boot2Docker? ???? Docker? ??? ? ??
? ?? URL?? docker-install.exe ??? ??
?https://github.com/boot2docker/windows-installer/releases
Windows
?? ????
100
???
? ?? ????? ???? docker-install.exe ??? ??
? ?? ??? ???? Next ??? ??
Windows
?? ????
101
???
? ?? ??? ??
? Next ?? ??
Windows
?? ????
102
???
? ??? ?? ??
? Boot2Docker Management script and ISO: Boot2Docker? ??? ???? ??? ??
? VirtualBox: VirtualBox? ???? ???? ? ??? ??
? MSYS-git UNIX tools: Windows? Git? ???? ???? ? ??? ??
? ??? ?????? Next ??? ??
Windows
?? ????
103
???
? ?? ??? ??? ?? ??
? ?? ? ??? ???? Next ??? ??
Windows
?? ????
104
???
? Boot2Docker ??? ?? ??? ???? ??
? ??? ??? ????, Next ??? ??
Windows
?? ????
105
???
? Install ??? ???? Boot2Docker? ??
Windows
?? ????
106
???
? ??? ???? Finish ??? ??
Windows
?? ????
107
???
? ??? ?? ? ????? ??? Boot2Docker Start ???? ?? ??. ?? ?? ?? ?? ?? ???
Git Bash? sh.exe? ??
? ?? ???? ?? ??? ? ?? ???? ???? boot2docker.iso? ???? ?? ??? ????, ??
??? ???. ??? VirtualBox ??? ?? ?? ?? ??? ?(Y) ??? ??
Windows
?? ????
108
?? ?????
???
???? ??? docker <??> ??
??) docker run, docker push
??? root ???? ??
docker <??>+
?? ??
?? ?????
110
???
?? ?????
?? ?????
111
??? ??? ?? ??? ????
????? ??? ?????.
???
docker search <??? ??>
$ sudo docker search ubuntu
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
ubuntu Official Ubuntu base image 383
stackbrew/ubuntu Official Ubuntu base image 40
crashsystems/gitlab-docker A trusted, regularly updated build of GitL... 19 [OK]
dockerfile/ubuntu Trusted Ubuntu (http://www.ubuntu.com/) Bu... 15 [OK]
ubuntu-upstart Upstart is an event-based replacement for ... 7
cmfatih/phantomjs PhantomJS [ phantomjs 1.9.7, casperjs 1.1.... 5 [OK]
dockerfile/ubuntu-desktop Trusted Ubuntu Desktop (LXDE) (http://lxde... 5 [OK]
lukasz/docker-scala Dockerfile for installing Scala 2.10.3, Ja... 5 [OK]
litaio/ruby Ubuntu 14.04 with Ruby 2.1.2 compiled from... 5 [OK]
? Docker Hub?? ??? ?????
? ?? ubuntu, centos, redis ? OS? ???? ??? ?? ???? ?? ???
? ???? ????? ???? ??? ???
search ???? ??? ????
?? ?????
112
???
???? Docker Hub(https://registry.hub.docker.com)? ?? ????
???? ???? ???? ??
??? ??? ???? ?? ?? ????(Redis, Nginx ?)? ???? ??
Docker Hub?? ?? ? ??
????? ??? ??? ????? Docker Hub? ????? ???? ??
search ???? ??? ????
?? ?????
113
???
? Docker Hub?? ???? ??? ? ?? ???? Tags ??? ???? ??? ? ? ??
search ???? ??? ????
?? ?????
114
???
? sudo? ?? ???? ?????
$ sudo su
#
???? root ???? ?????? sudo su ??? ???? root ???? ??
$ sudo usermod -aG docker ${USER}
$ sudo service docker restart
??, ?? ??? docker ??? ??(docker ??? root ??? ????? ? ??? ??? ??)
?? ???? ????? ? ?? ???
sudo ???? ??
?? ?????
115
???
docker pull <??? ??>:<??>
? Docker Hub?? ??? ??? ????
? ??? ?? ?? latest? ???? ?? ??? ??
? ubuntu:14.04, ubuntu:12.10?? ??? ??? ? ??
? ??? ???? pyrasis/ubuntu?? / ?? ????? ???? ?? ???? ?? ????
??(?? ???? ????? ?? ??)
? ???? ??? ??? ???? ?? ???? ??? ??? ??? ?. ? CentOS?? ???
????? ??? ? ??
$ sudo docker pull ubuntu:latest
pull ???? ??? ??
?? ?????
116
???
docker images
? ?? ???? ?????
docker images ubuntu?? ??? ??? ???? ??? ??? ??? ?? ???? ???
$ sudo docker images
REPOSITORY TAG IMAGE ID CREATED V IRTUAL SIZE
ubuntu latest e54ca5efa2e9 Less than a second ago 276.1 MB
images ???? ??? ?? ????
?? ?????
117
???
docker run <??> <??? ??> <??? ??>
? ???? ????? ??? ? Bash ? ?????
ubuntu ???? ????? ??? ? ubuntu ??? ?? /bin/bash? ??
?-i(interactive), -t(Pseudo-tty) ??? ???? ??? Bash ?? ?? ? ?? ??
?--name ???? ????? ??? ??? ? ??. ??? ???? ??? ??? ???? ???
???? ??
$ sudo docker run -i -t --name hello ubuntu /bin/bash
run ???? ???? ????
?? ?????
118
???
cd, ls ???? ???? ??? ??? ? exit? ???? Bash ??? ??
???
???? ????? /bin/bash ?? ??? ???? ??? ??? ?????
????? ??(stop)?
run ???? ???? ????
?? ?????
119
???
$ sudo service docker restart
# /etc/sysconfig/docker
#
# Other arguments to pass to the docker daemon process
# These will be parsed by the sysv initscript and appended
# to the arguments list passed to docker Cd
other_args="--selinux-enabled --exec-driver=lxc"
unable to remount sys readonly: unable to mount sys as readonly max retries reached
??
CentOS?? ??? ?? ??? ?????
/etc/sysconfig/docker ???? ??? ?? C-exec-driver=lxc? ??
Docker ??? ???
run ???? ???? ????
?? ?????
120
???
docker ps
? ?? ???? ??? ????
? -a ??? ???? ??? ?????? ?? ???
? ??? ???? ??? ???? ?? ????? ???
$ sudo docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
6338ce52d07c ubuntu:latest /bin/bash 4 seconds ago Exited (0) Less than a second ago hello
?? ????? ??? ??. ??? ????? ??? ? ??? hello? ?????? ????
????? hello? ??
ps ???? ???? ?? ????
?? ?????
121
???
docker start <???? ??>
? ?? ??? ????? ?? ????
???? ?? ?? ???? ID? ???? ?
$ sudo docker start hello
$ sudo docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
6338ce52d07c ubuntu:latest /bin/bash 15 minutes ago Up 3 seconds hello
? ????? ????? ???? ?? ?????
hello ????? ?????
start ???? ???? ????
?? ?????
122
???
docker restart <???? ??>
? OS ????? ????? ?? ?????
???? ?? ?? ???? ID? ???? ?
$ sudo docker restart hello
restart ???? ???? ?????
?? ?????
123
???
docker attach <???? ??>
? ?? ??? ????? ?????
? ??? ??? ? ??? ? ? ? ???? Bash ?? ???
? ???? ?? ?? ???? ID? ???? ?
? ???? /bin/bash? ???? ??? ??? ???? ??? ? ??. ? DB? ??
??????? ???? ??? ? ? ?? ??? ???
? Bash ??? exit ?? Ctrl+D? ???? ????? ???
$ sudo docker attach hello
root@6338ce52d07c:/#
???? Ctrl+P, Ctrl+Q? ???? ???? ????? ???? ??, ?? ???
attach ???? ????? ????
?? ?????
124
???
docker exec <???? ??> <??> <?? ??>
? ?? ????? /bin/bash? ??? ??
? /bin/bash? ??? ?? ???? ???? ?? ?? ?????
? ???? ?? ?? ???? ID? ???? ?
? ????? ???? ?? ????? ??? ? ??? ??? ????? ??? ? ??
$ sudo docker exec hello echo "Hello World"
Hello World
???? ?? echo ??? ???? ?? ??? "Hello World"? ???? ??? Hello
World? ???
? docker exec ??? ?? ??? ????? apt-get, yum ???? ???? ????? ?? ??? ???
? ??
exec ???? ???? ???? ?? ?? ????
?? ?????
125
???
docker stop <???? ??>
? ?? ??? ???? ?? ????
$ sudo docker stop hello
hello ????? ???? ??? ???? ??? ??
$ sudo docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
6338ce52d07c ubuntu:latest /bin/bash 51 minutes ago Up 2 minutes hello
? ???? ?????(???? ?? ?? ???? ID? ???? ?)
? ??? ???? ??? ?????
$ sudo docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
stop ???? ???? ????
?? ?????
126
???
docker rm <???? ??>
? ??? ????? ?????
$ sudo docker rm hello
hello ????? ???? ??? ???? ??? ??
? ?? ???? ??? ?????
$ sudo docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
???? ?? ?? ???? ID? ???? ?
rm ???? ???? ????
?? ?????
127
???
docker rmi <??? ??>:<??>
? ??? ?????
$ sudo docker rmi ubuntu:latest
ubuntu ???? ???? ??? ???? ??? ??
? ??? ??? ?????
$ sudo docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
? ??? ?? ?? ??? ID? ???? ?
? docker rmi ubuntu?? ??? ??? ???? ??? ???? ubuntu
??? ?? ?? ???? ???
rmi ???? ??? ????
?? ?????
128
?? ??? ????
???
Dockerfile
??? ??? ?? ??
?Dockerfile? ??? ?? ???? ???? ?
Dockerfile ????
?? ??? ????
130
???
? ?? example ????? ??? ? example ????? ????
~$ mkdir example
~$ cd example
Dockerfile ????
?? ??? ????
131
???
? ?? ??? example ???? ??? Dockerfile? ????
? ??? 14.04? ???? nginx ??? ??? ?? ???? ???? ??
FROM ubuntu:14.04
MAINTAINER Foo Bar foo@bar.com
RUN apt-get update
RUN apt-get install -y nginx
RUN echo "ndaemon off;" >> /etc/nginx/nginx.conf
RUN chown -R www-data:www-data /var/lib/nginx
VOLUME ["/data", "/etc/nginx/site-enabled", "/var/log/nginx"]
WORKDIR /etc/nginx
CMD ["nginx"]
EXPOSE 80
EXPOSE 443
example/Dockerfile
# ?? ???? ???? ?? ??. <??? ??>:<??> ??
# ????? ??
# RUN?? ? ???? ?? ?? ??
# ??? ?? ??? ??? ??? ?? ? ????
apt-get install?? Cy ?? ??
# ???? ??? ???? ??
# ?? CMD?? ??? ?? ??? ??? ????
# ????? ????? ? ??? ?? ?? ?? ????
# ???? ??? ?? ??
Dockerfile ????
?? ??? ????
132
https://github.com/pyrasis/dockerbook/blob/master/Chapter04/Dockerfile
???
docker build <??> <Dockerfile ??>
? ??? ??? Dockerfile? ??? ?????
? Dockerfile? ??? example ?????? ?? ??
~/example$ sudo docker build --tag hello:0.1 .
hello:0.1 ???? ???
? --tag ???? ??? ??? ??? ??? ? ??
? ??? ??? ???? ??? latest? ???
? ?? ???? ???? ???. ??? ?? ?????
$ sudo docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
ubuntu 14.04 e54ca5efa2e9 Less than a second ago 276.1 MB
ubuntu latest e54ca5efa2e9 Less than a second ago 276.1 MB
hello 0.1 2031ee0736e8 9 minutes ago 298.4 MB
build ???? ??? ????
?? ??? ????
133
???
? ??? ??? ???? ?????
$ sudo docker run --name hello-nginx -d -p 80:80 -v /root/data:/data hello:0.1
? -d ??? ????? ?????? ??
? -p 80:80 ???? ???? 80? ??? ????? 80? ??? ???? ??? ??
? -v /root/data:/data ???? ???? /root/data ????? ????? /data
????? ??
build ???? ??? ????
?? ??? ????
134
???
? ??? ???? ??? ?????
$ sudo docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
3c06a0bebab6 hello:0.1 nginx 10 minutes ago Up 10 minutes 443/tcp, 0.0.0.0:80->80/tcp hello-nginx
hello-nginx ????? ?????
? ????? ???? http://<??? IP>:80?? ????
Welcome to nginx! ???? ???
build ???? ??? ????
?? ??? ????
135
???
? ?? Boot2Docker? ??????
? Boot2Docker? ?? ?? ?? ??? ??? ???? ??? IP?? ngnix? ?? ??? ? ??.
? boot2docker ip ???? ?? ??? IP ?? ????
? Windows??? Git Bash?? ?? ?? ??
$ boot2docker ip
The VM's Host only interface IP address is: 192.168.59.103
Boot2Docker ?? ??? IP ??? ???
? ????? ???? http://<Boot2Docker VM? IP>:80?? ????
Welcome to nginx! ???? ???
build ???? ??? ????
?? ??? ????
136
???
? ??? ???...
137
? ??? ??? ?? ?? ??? ???
??????. ? ??? ?? ?????
???? ????.
http://www.pyrasis.com/private/2014/11/30/publish-docker-for-the-
really-impatient-book
? Docker ?? ??? ????
? Dockerfile ?? ??
? Docker? ?????? ????
? Docker ??????
? Amazon Web Services?? Docker ????
? Google Cloud Platform?? Docker ????
? Microsoft Azure?? Docker ????
? Docker Hub ????
? Docker Remote API ????
? CoreOS ????
? Docker? ????? ??? ????(MySQL)
? Docker? Ruby on Rails ?????? ????(MySQL, PostgreSQL)
? Docker? Django ?????? ????(Oracle, MySQL, PostgreSQL)
? Docker ?? ????
? Docker ??? ? ?? ??
???
YouTube ??? ??
138
???? ????? ???? ?? ??? ?????.
https://www.youtube.com/watch?v=Bhzz9E3xuXY
?????

More Related Content

?? ??? ????: ??? ??? ??? 60??? ? ??? ?? ? ????!

  • 1. ?? ??? ???? ??? ????? ????? ??? ???????. PYRASIS.COM ??? ??? ??? ??? 60??? ? ??? ?? ? ????! Version 1.0.3, 2015.2.9
  • 2. ??? ?? ?? ?? 2 ?? ?? ??? ????? ???? ???. ?? ??? ?? ????. ??, ??? ?? ???? ?? ??? ????? ? ??? ??? ? ????. ??, ???? ?? ??? ???? ??? ???? ???? ???? ? ??? ??? ? ????.
  • 3. ??? ?? ?? ? ???? ?? 3 ??? ????: http://pyrasis.com ??: ? ?? ?? ??? ??(Docker) ? ??? ? ???? ??? ?? ? ??? ???? ?? ????: Subversion, Trac, CruiseControl.NET ? ????? ?? ?? ??? ??? ??? ??? ???????. ?? ?? ??? ??? ? ??? ?? ????? ???? ????.
  • 5. ??? ??? 2013? 3? Docker, Inc?? ??? ?? ?? ???? ???? ?? ?????? ? ??? ?? ?? ??? ????? ?? 5
  • 6. ??? AWS, Google Cloud Platform, Microsoft Azure ?? ???? ????? ?? ?? ??? ????? ?? 6
  • 8. ??? ??? ????? ?? ??? ??? ??????? ????? ??? ??? ? ??
  • 9. ??? ??? ????? ?? ??, ???, ??? ??? ??? ???? ????? ??? ? ?? ??!
  • 12. ??? ??? ????? ?? ??? ???? ???? ???? ??? ??
  • 13. ??? ??? ????? ?? GitHub? ??? ??? Docker Hub ??!
  • 16. ??? ??? ????? ?? ?? ?? ?? ?????...
  • 18. ??? ??? ??? ???? ????? ?? ?? 1960? ?? ??? ??? ?? ?? ?? ??? ?? ?? ??? ?? 18
  • 19. ??? ??? ??? ??? ????? PC??? ?? ?? ??? ??? ??? ????´ ?? ??? ?? ?? ??? ?? 19
  • 20. ??? ?? ??? ?? ? ???? ?? ??? ?? ?? ??? ?? 20
  • 21. ??? ??? ?? ???? ??? ??? ?? ?? -_-; ?? ??? ?? ?? ??? ?? 21
  • 22. ??? ??? ?? ??? ?? ? ??? ?? ? ???! ?? ??? ?? ?? ??? ?? 22
  • 23. ??? ??? IT ??? ?????? ??? ???? ?? ??? ?? ?? ??? ?? 23
  • 24. ??? ?? ??? ?? ??? ????? ??? ?? ??? ?? ?? ??? ?? 24
  • 25. ??? ?? ??? ?? ?? ????, DB ?? ???? ???????? ????? ?? ?? ??? ?? ?? ??? ?? 25
  • 26. ??? ?? ??? ?? ?? ???? ?? ??? ???? ???? ??? ??? ??? ?? ???? ? ?? ?? ??? ?? ?? ??? ?? 26
  • 27. ??? ??? ??? ???? ??? ????? ???? ???? ??? ?? ??? ?? ?? ??? ?? 27
  • 28. ??? ??? ?? ??? ? ??? ?? ?? ??? ??? ?? ??? ?? 28
  • 29. ??? ???? ??? ????? ??´ ?? ?? ??? ?? ?? ??? ??? ?? ??? ?? 29
  • 30. ??? ??? AMD? CPU ?? ??? ??? ?? ?? ?? ??? ??? ?? ??? ?? 30
  • 31. ??? ??? ??´ ?? ??? ??? ?? ??? ?? 31
  • 32. ??? ???? ??? ???? ???? ??? ?? ?? ??? ??? ?? ??? ?? 32
  • 33. ??? ??? ??? ?? ???´ ?? ??? ??? ?? ??? ?? 33
  • 34. ??? ?? ??? ??? ?? ??? ?? 34 ?? ??? ??? ??? ??? ??? OS? ???? ? ?????? A ?????? B ??????(Hypervisor) ?? ??/????? ??? OS ?? ??/????? ??? OS ??? OS ?? https://www.docker.com/whatisdocker/
  • 35. ??? ?? ??? ??? ?? ??? ?? 35 ??? ?? OS? ???? ??? ??? ??? ?? ?????? ??? ???? ?? ?? ? ? ?????
  • 36. ??? ?? ??? ??? ?? ??? ?? 36 ???? ??? ?????? OS ???? ? ?? ? ??? ?? ??? ??
  • 37. ??? ?? ??? ??? ?? ??? ?? 37 ?? ??? ?? ??? ?? ?? ??? ????? ??
  • 38. ??? ???? ?? ?? ??? ???? ?? ??? ????? ?? ?? ??? ???? ?? ??? ?? 38
  • 39. ??? ?? ??? ??? cgroups? namespaces? ???? ?? ??? ???? ?? ??? ?? 39
  • 40. ??? ???? ?? ?? ??? ???? ?? ??? ?? 40
  • 41. ??? ??? ??? ????? ??! ? ???? LXC(LinuX Container)? ???? ?? ? ?? 0.9??? LXC? ???? libcontainer? ???? ?? ? ?? ???? ?? ?? ??? ?? LXC cgroups namespaces ?? libvirt systemd-nspawn libcontainer http://blog.docker.com/2014/03/docker-0-9-introducing-execution-drivers-and-libcontainer ??? ???? ?? ??? ?? 41
  • 43. ??? ??? ??? OS? ???? ?? ????? ?? ??? ?? ????? ?????? ???? ?? ???? ??? ?? ??? ????? OS ??(??? ?)? ?? ?????? A ?????? B ?? ??/????? ?? ??/????? ??? OS ?? https://www.docker.com/whatisdocker/ ?? ?? ??? ?? ??? ?? 43
  • 44. ??? ??? ?? ???? 1 0.9945CPU 1 0.9826??? ?? 1 1.0025??? ?? 0.9811??? I/O 1 0.9626???? 1 ??? ???? ??? ??? ?? ? ??? ??, ?? ???, ???? ?? ??? ?? ??? ?? ??? ?? ? ???? ?? ???? ??? ?? ??? ?? ??(?? ?? ?) ?? 1.1.2?? ??? 14.04 ???? ??? 14.04 ???? ?? ?? ??? ?? ??? ?? 44
  • 45. ??? ??? ?? ??? ?? 45 ??? ??? ??? ??? ??? ??
  • 46. ??? ??? ?? ??? ?? 46 ??? ?? ??? ???? ?? ???? ???? ??? ?? ? ?? (push/pull)
  • 47. ??? ??? ?? ??? ?? 47 GitHub? ??? ??? ?? ???? ???? Docker Hub ?? (GitHub ?? ?? ???? ??)
  • 48. ??? ??? ?? ??? ?? 48 ??? API? ???? ??? ?? ??? ?? ??? ?? ??? ?? ??!
  • 49. ??? ??? ???? ????? ?? ?? ??? ?? ??? ??? ?? ??? ?? 49
  • 51. ??? ?? ??? ?? ???? ???? 51 ???? ??? ??? ??? ?? ????, ?? ??, ???? ?? ??? ?? ??
  • 52. ??? ?? ??? ?? ???? ???? 52 ???? ??? ??? ??? (push/pull)
  • 53. ??? ?? ???? ?? ???? ???? 53 ????? ???? ??? ??!
  • 54. ??? ?? ???? ?? ???? ???? 54 ???? ?? ?? ????? ?? ? ??
  • 55. ??? ?? ???? ?? ???? ???? 55 ????? ?? ???? ?????? ????? ????
  • 56. ??? ??? ??? ?? ?? ?? ???? ???? 56 ??? ???? ?? ??? ??? ?????
  • 57. ??? ??? ??? ?? ?? ?? ???? ???? 57 ??? ?? ??? ?? (aufs, btrfs, devicemapper)
  • 58. ??? ?? ??/????? ?? ??/????? ?? ?? ?? ?? ?????? A ??? ??? ?? ?? ?????? A¨ ?????? A¨¨ ?????? A + ?? ?? ?????? A ??? ??? ????? ?? ??? ???? ?? ????? ??? ?? ??? ???? ?? ??? ??? ?? ??? ??? ?? ?? ?? ???? ???? 58 http://www.slideshare.net/dotCloud/why-docker
  • 59. ??? ??? ??? ?? ?? ?? ???? ???? 59 Docker Hub ? ?? ????? ???? ??? ? ?? ??? ?? ??
  • 60. ??? ? ???? ?? ?? ?? ??? ??? ?? ?? ?? ???? ???? 60
  • 62. ??? ????? ?? ?? ??? ?? ??? ?? 62 ????? ?? ??? ?? ?? ??
  • 63. ??? ????? ?? ?? ??? ?? ??? ?? 63 ??? ?? IDC ????? ??? ??
  • 64. ??? ????? ?? ?? ??? ?? ??? ?? 64 ?? ??? ??? ?? ?? ?? ??? ?? ??
  • 65. ??? ???? ?? ??? ?? ??? ?? 65 ???? ????? ???? ???? ??
  • 66. ??? ???? ?? ??? ?? ??? ?? 66 ?? ??? ???? ??? ??? ?? ??
  • 67. ??? ???? ?? ??? ?? ??? ?? 67 ?? ? ? ??? ?? ??? ??
  • 68. ??? ???? ?? ??? ?? ??? ?? 68 ?? ???? ??? ???? ??????´
  • 69. ??? ???? ?? ??? ?? ??? ?? 69 ?? ??? ????? ??? ??? ???? ????
  • 70. ??? ???? ?? ??? ?? ??? ?? 70 ?? ?? ??? ??? ????
  • 71. ??? Immutable Infrastructure ??? ?? ??? ?? 71 Immutable Infrastructure?? ????? ??
  • 72. ??? Immutable Infrastructure ??? ?? ??? ?? 72 ??? OS? ??? ?? ?? (?? ????, ?? ??, ??? ? ????)? ??
  • 73. ??? Immutable Infrastructure ??? ?? ??? ?? 73 ? ? ??? ?? ??? ???? ???(Immutable)? ??
  • 74. ??? ??? ?? ??? ???? ??? ? ??? ???? ?? ?? ?? rev. 10 ???? ?? ??? ?? ?? ??? ?? ?? ? ?? ?? ?? rev. 11 ?? ?? rev. 12 ?? ?? rev. 12 ???? ?? ?? ?? rev. 12 Immutable Infrastructure ??? ?? ??? ?? 74
  • 75. ??? Immutable Infrastructure ??? ?? ??? ?? 75 ???? ?????? ?? ?? ??? ???? ??, ???? ?? ???? ??
  • 76. ??? Immutable Infrastructure ??? ?? ??? ?? 76 ???? ????? ??? ?? ??? ?? ?? Immutable Infrastructure? ??? ?? ?? ???? ? ? ?? ??
  • 77. ??? ? ??? ?? ???? ???? ? ? ?? ??? ?? ???? ??? ?? ? ??? ??? ?? ?? ??? ?? ??? ?? ? ??? ??? ??? ?? ??? ? ?? ? ???? ???? ?? ??(Auto Scaling) ??? ???? ??? ??? ?? ?? ? ??? PC, ??? ???? ???? ??? ?? ??? ?? ??? ??? ??? ??? ? ???? ?? ??? ? ????? ??? ??? ???? ???(Lightweight) ???? ?? ???(Portable) ?? ?? ??? Immutable Infrastructure? ?? ??? ?? ??? ?? 77
  • 78. ??? Immutable Infrastructure ??? ?? ??? ?? 78 ??? Immutable Infrastructure? ??? ????
  • 79. ?? ??
  • 80. ??? ??? ???? ?? ?? ?? 80 ?? ?? ?? ??? ????
  • 81. ??? ??? ???? ?? ?? ?? 81 ????? ?? ??? ??
  • 82. ??? ??? ???? ?? ?? ?? 82 ??? ???? ?? ?? ????(???)? ???? ??? ??? ??(??)? ??
  • 83. ??? ??? ???? ?? ?? ?? 83 ??(Docker)? ?? ???? ?? ????? ??? ??? ??? ???
  • 84. ??? ??? ??? ?? ??? ??? ??? ???? ???? ?? ???? ?? Build Ship Run ??? ???? ?? ?? 84
  • 86. ??? ?? ???? ?? ???? 86 ?? ??? ????? ??? ???? ?? ??? ???? ??????.
  • 87. ??? ? ??? ??? ??? ??? ???? ???? ?? ???? ????? ????? ?? $ sudo wget CqO- https://get.docker.com/ | sh get.docket.com ????? ??? ???? hello-world ???? ?? ???. Hello-world ???? ???? ?? ???? ?? ?? $ sudo docker rm `sudo docker ps -aq` $ sudo docker rmi hello-world ?? ?? ???? ?? ????: ??? 87
  • 88. ??? ? ?? ?? ????? ???? ?? ????? ?? ????. ??? 14.04 LTS 64?? ?? $ sudo apt-get update $ sudo apt-get install docker.io $ sudo ln -sf /usr/bin/docker.io /usr/local/bin/docker /usr/bin/docker.io ?? ??? /usr/local/bin/docker? ???? ?? ??? ?? ????: ??? 88
  • 89. ??? ? ?? ?? ????? ???? ?? ??? ?????? ???(RHEL)? CentOS?? ???? ?? ???? ? RHEL? CentOS 6 ??? ????? docker-io? ???? EPEL(Fedora Extra Packages For Enterprise Linux) ???? ??? ? ??? ?? $ sudo yum install http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm $ sudo yum install docker-io CentOS 6 RedHat Enterprise Linux, CentOS ?? ????: ??? 89
  • 90. ??? ? AWS EC2? ???? Amazon Linux(RHEL ??)? EPEL ???? ?? ??? ? ???? epel-release-6-8.noarch.rpm? ???? ??? ? ? CentOS 7??? docker ???? ?? $ sudo yum install docker CentOS 7 $ sudo service docker start Docker ??? ???? $ sudo chkconfig docker on ???? ? ???? ???? RedHat Enterprise Linux, CentOS ?? ????: ??? 90
  • 91. ??? ? ??? ??? ??????, CentOS ?? ???? ???? ?????? ?? ??? ??? ?? ??? ?? ? ??? ? ???? ?? ?? ? ????? ?? ???? ?? $ sudo service docker stop $ sudo wget https://get.docker.com/builds/Linux/x86_64/docker-latest -O $(type -P docker) $ sudo service docker start ?? ???? ???? ? ?? ???? ???? ?? ????: ??? 91
  • 92. ??? $ wget https://get.docker.com/builds/Linux/x86_64/docker-latest $ chmod +x docker-latest $ sudo mv docker-latest /usr/local/bin/docker $ sudo /usr/local/bin/docker -d ?? ??? ? URL? docker-latest? ???? ?? ?? ??? ??, docker-1.3.0?? ???? ?? ??? ?? ?? ???? ???? ?? ????: ??? 92
  • 93. ??? ? Mac OS X??? Boot2Docker? ???? ??? ??? ? ?? ? ?? URL?? .pkg ??? ?? ?https://github.com/boot2docker/osx-installer/releases Mac OS X ?? ???? 93
  • 94. ??? ? ?? ????? ???? .pkg ?? ?? ? ????? ???? ?? ??? ?? Mac OS X ?? ???? 94
  • 95. ??? ? ?? ??? ?? Mac OS X ?? ???? 95
  • 96. ??? ? ?? ???? ???? ??? ??? ???? ????? ?? ??? ?? 1 2 Mac OS X ?? ???? 96
  • 97. ??? ? ??? ?????? ?? ?? ?? Mac OS X ?? ???? 97
  • 98. ??? ? Finder? ???? ?? ?????? boot2docker? ?? 1 2 Mac OS X ?? ???? 98
  • 99. ??? ? boot2docker? ???? ??? ?? ??? ? ?? ???? ???? boot2docker.iso? ???? ?? ??? ????, ?? ??? ???(Boot2Docker? ????? VirtualBox? ?? ???) Mac OS X ?? ???? 99
  • 100. ??? ? Windows??? Boot2Docker? ???? Docker? ??? ? ?? ? ?? URL?? docker-install.exe ??? ?? ?https://github.com/boot2docker/windows-installer/releases Windows ?? ???? 100
  • 101. ??? ? ?? ????? ???? docker-install.exe ??? ?? ? ?? ??? ???? Next ??? ?? Windows ?? ???? 101
  • 102. ??? ? ?? ??? ?? ? Next ?? ?? Windows ?? ???? 102
  • 103. ??? ? ??? ?? ?? ? Boot2Docker Management script and ISO: Boot2Docker? ??? ???? ??? ?? ? VirtualBox: VirtualBox? ???? ???? ? ??? ?? ? MSYS-git UNIX tools: Windows? Git? ???? ???? ? ??? ?? ? ??? ?????? Next ??? ?? Windows ?? ???? 103
  • 104. ??? ? ?? ??? ??? ?? ?? ? ?? ? ??? ???? Next ??? ?? Windows ?? ???? 104
  • 105. ??? ? Boot2Docker ??? ?? ??? ???? ?? ? ??? ??? ????, Next ??? ?? Windows ?? ???? 105
  • 106. ??? ? Install ??? ???? Boot2Docker? ?? Windows ?? ???? 106
  • 107. ??? ? ??? ???? Finish ??? ?? Windows ?? ???? 107
  • 108. ??? ? ??? ?? ? ????? ??? Boot2Docker Start ???? ?? ??. ?? ?? ?? ?? ?? ??? Git Bash? sh.exe? ?? ? ?? ???? ?? ??? ? ?? ???? ???? boot2docker.iso? ???? ?? ??? ????, ?? ??? ???. ??? VirtualBox ??? ?? ?? ?? ??? ?(Y) ??? ?? Windows ?? ???? 108
  • 110. ??? ???? ??? docker <??> ?? ??) docker run, docker push ??? root ???? ?? docker <??>+ ?? ?? ?? ????? 110
  • 111. ??? ?? ????? ?? ????? 111 ??? ??? ?? ??? ???? ????? ??? ?????.
  • 112. ??? docker search <??? ??> $ sudo docker search ubuntu NAME DESCRIPTION STARS OFFICIAL AUTOMATED ubuntu Official Ubuntu base image 383 stackbrew/ubuntu Official Ubuntu base image 40 crashsystems/gitlab-docker A trusted, regularly updated build of GitL... 19 [OK] dockerfile/ubuntu Trusted Ubuntu (http://www.ubuntu.com/) Bu... 15 [OK] ubuntu-upstart Upstart is an event-based replacement for ... 7 cmfatih/phantomjs PhantomJS [ phantomjs 1.9.7, casperjs 1.1.... 5 [OK] dockerfile/ubuntu-desktop Trusted Ubuntu Desktop (LXDE) (http://lxde... 5 [OK] lukasz/docker-scala Dockerfile for installing Scala 2.10.3, Ja... 5 [OK] litaio/ruby Ubuntu 14.04 with Ruby 2.1.2 compiled from... 5 [OK] ? Docker Hub?? ??? ????? ? ?? ubuntu, centos, redis ? OS? ???? ??? ?? ???? ?? ??? ? ???? ????? ???? ??? ??? search ???? ??? ???? ?? ????? 112
  • 113. ??? ???? Docker Hub(https://registry.hub.docker.com)? ?? ???? ???? ???? ???? ?? ??? ??? ???? ?? ?? ????(Redis, Nginx ?)? ???? ?? Docker Hub?? ?? ? ?? ????? ??? ??? ????? Docker Hub? ????? ???? ?? search ???? ??? ???? ?? ????? 113
  • 114. ??? ? Docker Hub?? ???? ??? ? ?? ???? Tags ??? ???? ??? ? ? ?? search ???? ??? ???? ?? ????? 114
  • 115. ??? ? sudo? ?? ???? ????? $ sudo su # ???? root ???? ?????? sudo su ??? ???? root ???? ?? $ sudo usermod -aG docker ${USER} $ sudo service docker restart ??, ?? ??? docker ??? ??(docker ??? root ??? ????? ? ??? ??? ??) ?? ???? ????? ? ?? ??? sudo ???? ?? ?? ????? 115
  • 116. ??? docker pull <??? ??>:<??> ? Docker Hub?? ??? ??? ???? ? ??? ?? ?? latest? ???? ?? ??? ?? ? ubuntu:14.04, ubuntu:12.10?? ??? ??? ? ?? ? ??? ???? pyrasis/ubuntu?? / ?? ????? ???? ?? ???? ?? ???? ??(?? ???? ????? ?? ??) ? ???? ??? ??? ???? ?? ???? ??? ??? ??? ?. ? CentOS?? ??? ????? ??? ? ?? $ sudo docker pull ubuntu:latest pull ???? ??? ?? ?? ????? 116
  • 117. ??? docker images ? ?? ???? ????? docker images ubuntu?? ??? ??? ???? ??? ??? ??? ?? ???? ??? $ sudo docker images REPOSITORY TAG IMAGE ID CREATED V IRTUAL SIZE ubuntu latest e54ca5efa2e9 Less than a second ago 276.1 MB images ???? ??? ?? ???? ?? ????? 117
  • 118. ??? docker run <??> <??? ??> <??? ??> ? ???? ????? ??? ? Bash ? ????? ubuntu ???? ????? ??? ? ubuntu ??? ?? /bin/bash? ?? ?-i(interactive), -t(Pseudo-tty) ??? ???? ??? Bash ?? ?? ? ?? ?? ?--name ???? ????? ??? ??? ? ??. ??? ???? ??? ??? ???? ??? ???? ?? $ sudo docker run -i -t --name hello ubuntu /bin/bash run ???? ???? ???? ?? ????? 118
  • 119. ??? cd, ls ???? ???? ??? ??? ? exit? ???? Bash ??? ?? ??? ???? ????? /bin/bash ?? ??? ???? ??? ??? ????? ????? ??(stop)? run ???? ???? ???? ?? ????? 119
  • 120. ??? $ sudo service docker restart # /etc/sysconfig/docker # # Other arguments to pass to the docker daemon process # These will be parsed by the sysv initscript and appended # to the arguments list passed to docker Cd other_args="--selinux-enabled --exec-driver=lxc" unable to remount sys readonly: unable to mount sys as readonly max retries reached ?? CentOS?? ??? ?? ??? ????? /etc/sysconfig/docker ???? ??? ?? C-exec-driver=lxc? ?? Docker ??? ??? run ???? ???? ???? ?? ????? 120
  • 121. ??? docker ps ? ?? ???? ??? ???? ? -a ??? ???? ??? ?????? ?? ??? ? ??? ???? ??? ???? ?? ????? ??? $ sudo docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 6338ce52d07c ubuntu:latest /bin/bash 4 seconds ago Exited (0) Less than a second ago hello ?? ????? ??? ??. ??? ????? ??? ? ??? hello? ?????? ???? ????? hello? ?? ps ???? ???? ?? ???? ?? ????? 121
  • 122. ??? docker start <???? ??> ? ?? ??? ????? ?? ???? ???? ?? ?? ???? ID? ???? ? $ sudo docker start hello $ sudo docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 6338ce52d07c ubuntu:latest /bin/bash 15 minutes ago Up 3 seconds hello ? ????? ????? ???? ?? ????? hello ????? ????? start ???? ???? ???? ?? ????? 122
  • 123. ??? docker restart <???? ??> ? OS ????? ????? ?? ????? ???? ?? ?? ???? ID? ???? ? $ sudo docker restart hello restart ???? ???? ????? ?? ????? 123
  • 124. ??? docker attach <???? ??> ? ?? ??? ????? ????? ? ??? ??? ? ??? ? ? ? ???? Bash ?? ??? ? ???? ?? ?? ???? ID? ???? ? ? ???? /bin/bash? ???? ??? ??? ???? ??? ? ??. ? DB? ?? ??????? ???? ??? ? ? ?? ??? ??? ? Bash ??? exit ?? Ctrl+D? ???? ????? ??? $ sudo docker attach hello root@6338ce52d07c:/# ???? Ctrl+P, Ctrl+Q? ???? ???? ????? ???? ??, ?? ??? attach ???? ????? ???? ?? ????? 124
  • 125. ??? docker exec <???? ??> <??> <?? ??> ? ?? ????? /bin/bash? ??? ?? ? /bin/bash? ??? ?? ???? ???? ?? ?? ????? ? ???? ?? ?? ???? ID? ???? ? ? ????? ???? ?? ????? ??? ? ??? ??? ????? ??? ? ?? $ sudo docker exec hello echo "Hello World" Hello World ???? ?? echo ??? ???? ?? ??? "Hello World"? ???? ??? Hello World? ??? ? docker exec ??? ?? ??? ????? apt-get, yum ???? ???? ????? ?? ??? ??? ? ?? exec ???? ???? ???? ?? ?? ???? ?? ????? 125
  • 126. ??? docker stop <???? ??> ? ?? ??? ???? ?? ???? $ sudo docker stop hello hello ????? ???? ??? ???? ??? ?? $ sudo docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 6338ce52d07c ubuntu:latest /bin/bash 51 minutes ago Up 2 minutes hello ? ???? ?????(???? ?? ?? ???? ID? ???? ?) ? ??? ???? ??? ????? $ sudo docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES stop ???? ???? ???? ?? ????? 126
  • 127. ??? docker rm <???? ??> ? ??? ????? ????? $ sudo docker rm hello hello ????? ???? ??? ???? ??? ?? ? ?? ???? ??? ????? $ sudo docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES ???? ?? ?? ???? ID? ???? ? rm ???? ???? ???? ?? ????? 127
  • 128. ??? docker rmi <??? ??>:<??> ? ??? ????? $ sudo docker rmi ubuntu:latest ubuntu ???? ???? ??? ???? ??? ?? ? ??? ??? ????? $ sudo docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE ? ??? ?? ?? ??? ID? ???? ? ? docker rmi ubuntu?? ??? ??? ???? ??? ???? ubuntu ??? ?? ?? ???? ??? rmi ???? ??? ???? ?? ????? 128
  • 130. ??? Dockerfile ??? ??? ?? ?? ?Dockerfile? ??? ?? ???? ???? ? Dockerfile ???? ?? ??? ???? 130
  • 131. ??? ? ?? example ????? ??? ? example ????? ???? ~$ mkdir example ~$ cd example Dockerfile ???? ?? ??? ???? 131
  • 132. ??? ? ?? ??? example ???? ??? Dockerfile? ???? ? ??? 14.04? ???? nginx ??? ??? ?? ???? ???? ?? FROM ubuntu:14.04 MAINTAINER Foo Bar foo@bar.com RUN apt-get update RUN apt-get install -y nginx RUN echo "ndaemon off;" >> /etc/nginx/nginx.conf RUN chown -R www-data:www-data /var/lib/nginx VOLUME ["/data", "/etc/nginx/site-enabled", "/var/log/nginx"] WORKDIR /etc/nginx CMD ["nginx"] EXPOSE 80 EXPOSE 443 example/Dockerfile # ?? ???? ???? ?? ??. <??? ??>:<??> ?? # ????? ?? # RUN?? ? ???? ?? ?? ?? # ??? ?? ??? ??? ??? ?? ? ???? apt-get install?? Cy ?? ?? # ???? ??? ???? ?? # ?? CMD?? ??? ?? ??? ??? ???? # ????? ????? ? ??? ?? ?? ?? ???? # ???? ??? ?? ?? Dockerfile ???? ?? ??? ???? 132 https://github.com/pyrasis/dockerbook/blob/master/Chapter04/Dockerfile
  • 133. ??? docker build <??> <Dockerfile ??> ? ??? ??? Dockerfile? ??? ????? ? Dockerfile? ??? example ?????? ?? ?? ~/example$ sudo docker build --tag hello:0.1 . hello:0.1 ???? ??? ? --tag ???? ??? ??? ??? ??? ? ?? ? ??? ??? ???? ??? latest? ??? ? ?? ???? ???? ???. ??? ?? ????? $ sudo docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE ubuntu 14.04 e54ca5efa2e9 Less than a second ago 276.1 MB ubuntu latest e54ca5efa2e9 Less than a second ago 276.1 MB hello 0.1 2031ee0736e8 9 minutes ago 298.4 MB build ???? ??? ???? ?? ??? ???? 133
  • 134. ??? ? ??? ??? ???? ????? $ sudo docker run --name hello-nginx -d -p 80:80 -v /root/data:/data hello:0.1 ? -d ??? ????? ?????? ?? ? -p 80:80 ???? ???? 80? ??? ????? 80? ??? ???? ??? ?? ? -v /root/data:/data ???? ???? /root/data ????? ????? /data ????? ?? build ???? ??? ???? ?? ??? ???? 134
  • 135. ??? ? ??? ???? ??? ????? $ sudo docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 3c06a0bebab6 hello:0.1 nginx 10 minutes ago Up 10 minutes 443/tcp, 0.0.0.0:80->80/tcp hello-nginx hello-nginx ????? ????? ? ????? ???? http://<??? IP>:80?? ???? Welcome to nginx! ???? ??? build ???? ??? ???? ?? ??? ???? 135
  • 136. ??? ? ?? Boot2Docker? ?????? ? Boot2Docker? ?? ?? ?? ??? ??? ???? ??? IP?? ngnix? ?? ??? ? ??. ? boot2docker ip ???? ?? ??? IP ?? ???? ? Windows??? Git Bash?? ?? ?? ?? $ boot2docker ip The VM's Host only interface IP address is: 192.168.59.103 Boot2Docker ?? ??? IP ??? ??? ? ????? ???? http://<Boot2Docker VM? IP>:80?? ???? Welcome to nginx! ???? ??? build ???? ??? ???? ?? ??? ???? 136
  • 137. ??? ? ??? ???... 137 ? ??? ??? ?? ?? ??? ??? ??????. ? ??? ?? ????? ???? ????. http://www.pyrasis.com/private/2014/11/30/publish-docker-for-the- really-impatient-book ? Docker ?? ??? ???? ? Dockerfile ?? ?? ? Docker? ?????? ???? ? Docker ?????? ? Amazon Web Services?? Docker ???? ? Google Cloud Platform?? Docker ???? ? Microsoft Azure?? Docker ???? ? Docker Hub ???? ? Docker Remote API ???? ? CoreOS ???? ? Docker? ????? ??? ????(MySQL) ? Docker? Ruby on Rails ?????? ????(MySQL, PostgreSQL) ? Docker? Django ?????? ????(Oracle, MySQL, PostgreSQL) ? Docker ?? ???? ? Docker ??? ? ?? ??
  • 138. ??? YouTube ??? ?? 138 ???? ????? ???? ?? ??? ?????. https://www.youtube.com/watch?v=Bhzz9E3xuXY
  • 139. ?????