dockerでらくらく開発・運用を体感しよう
TRANSCRIPT
-
Docker
6 March 21, 2015@makinog3
-
Docker
-
VMware
-
OS
VMware
-
OS
Docker
OOSS
-
VVSS
-
OSLinux
-
Docker
Linux Namespaces
Linux cgroups
AUFSDevice Mapper Thin Provisioning
Linux iptables
-
Docker
Docker
Docker
/
-
Amazon EC2 Docker
Docker Hub Registry
-
Docker
Amazon LinuxEC2 ssh Amazon Linux ec2-user
Docker$ sudo yum install y docker
-
Docker(1)
pull REPOSITORY Docker Hub Registry
images
ps
run IMAGE
start CONTAINER
stop CONTAINER
top CONTAINER
-
$ sudo docker pull learn/tutorial
$ sudo docker run learn/tutorial echo Hello, Docker!
$ sudo docker run it learn/tutorial /bin/bash
-
ping$ sudo docker run learn/tutorial apt-get install y ping
$ sudo docker ps a
$ sudo docker commit CONTAINER makinog3/ping
$ sudo docker run makinog3/ping ping www.google.com
-
Docker(2)
commit CONTAINER REPOSITORY
save IMAGE > TAR
load < TAR
export CONTAINER > TAR
import URL REPOSITORY
-
$ sudo docker export CONTAINER > /tmp/docker_learn_ping.tar
$ cat /tmp/docker_learn_ping.tar | sudo docker import learn/ping2
-
Docker
Web Dockerle
Elastic BeansTalkPaaS
-
Web
Nginx$ sudo docker pull ubuntu$ sudo docker run ubuntu apt-get install y nginx$ sudo docker commit CONTAINER nginx1
Nginx$ sudo docker run -d -p 80:80 nginx1 /usr/sbin/nginx -g 'daemon o;'
AWS 80
8080
-
Docker(3)
build -t REPOSITORY DIRECTORY
Dockerfile
-
Dockerle
Git/Subversion
-
Dockerle
FROM IMAGE
MAINTAINER MAINTAINER
RUN COMMAND
ADD FILE DIRECTORY
CMD
ENTRYPOINT
WORKDIR
ENV
USER
EXPOSE
VOLUME
-
Dockerle
FROM ubuntu
MAINTAINER makino
RUN apt-get install -y nginx
ADD index.html /usr/share/nginx/html/
CMD ["/usr/sbin/nginx", "-g", "daemon o;"]
-
Docerle$ vi Dockerle$ vi index.html
$ sudo docker build -t nginx2 .$ sudo docker images
$ sudo docker run -d -p 80:80 nginx2 /usr/sbin/nginx
-
$ sudo mkdir /var/log/docker_nginx2$ sudo docker run -d -p 80:80 -v /var/log/docker_nginx:/var/log/nginx nginx2
-
Elastic BeansTalk
Amazon Web ServicePaaS ELB
DockerDockerle
-
Elastic BeansTalk
AWSElastic BeansTalk
Dockerle
-
Docker Amazon EC2Docker Elastic BeansTalk
push AWS Google Compute EngineAzule Amazon EC2 Container Service