Docker
OSS ã® Linux ðã³ã³ãã(OS)
- site: Docker - Build, Ship, and Run Any App, Anywhere
- github: docker/docker
ç¹åŸŽ
- Go ã§ããããŠãã.
- Linux ã«ãŒãã«ã«ã®ã¿äŸå.
- ãããã€ã®äœæ¥ãèªååã§ãã.
- github, bitbucket ãšã飿º.
- Docerfile ã«ãã£ãŠã€ã³ãã©ãã³ãŒããšããŠæ±ãã.
- ã²ã¹ã OS ããªãã«ãŒãã«ãå
±æããŠããã®ã§ãªãŒãããããéåžžã«å°ãªã
- ãã£ã¹ã¯äœ¿çšéã¯å°ãªã.
- ã€ã³ã¹ã¿ã³ã¹äœæãã€ã³ã¹ã¿ã³ã¹èµ·åã¯éã
- æ§èœå£åãã»ãšãã©ãªã
- Linux ã³ã³ããäžãªãã°åãç°å¢ãåçŸã§ãã (Java ãšåãèã)
- ã¯ã©ã€ã¢ã³ãã»ãµãŒãåã®ã¢ãŒããã¯ãã£
ð¥Glossary
ã€ã¡ãŒãž
ã³ã³ãã
Docker ã®äœ¿ãæ¹ Basics
Hello, World
ãŸãã¯, å®çªã® Hello World ãããŠã¿ã. ã³ãã³ãã©ã€ã³ãã,
$ sudo docker run ubuntu /bin/echo 'Hello World'
ãããå©ããš, ããŒã«ã«ã« docker ã®ã€ã¡ãŒãžããªãå Žåã¯, Docker Hub ããåæã«ããŠã³ããŒãããŠããã.
docker 㯠image ããã³ã³ãããçæãã(ã¯ã©ã¹ããã€ã³ã¹ã¿ã³ã¹ãçæããããã«)
% sudo docker run ubuntu /bin/echo 'Hello World'
Unable to find image 'ubuntu' locally
Pulling repository ubuntu
c4ff7513909d: Download complete
er.io/v1/ 9d: Pulling image (latest) from ubuntu
511136ea3c5a: Download complete
1c9383292a8f: Download complete
9942dd43ff21: Download complete
d92c3c92fa73: Download complete
0ea0d582fd90: Download complete
Hello World
bash ãèµ·åããŠã¿ã
bash ãèµ·åããŠ, ã€ã³ã¿ã©ã¯ãã£ãã«æäœ -i -t /bin/bash ã®ãªãã·ã§ã³ãã€ãã.
$ sudo docker run -t -i ubuntu /bin/bash
ping ããŠã¿ã
-d ãã€ãããš, ã³ãã³ããå®è¡ãã£æŸãã«ããŠããããšãã§ãã.
$ docker run -i -t -d base /bin/ping -i 5 www.google.com
- docker attach {ID} ã§ èµ·åäžã®ã³ã³ããã«ä¹ã蟌ãã.
- docker logs {ID}èµ·åäžã®ã³ã³ããã®åºåã確èªã§ãã.
ä»®æ³ç°å¢æ§ç¯ã« docker ã䜿ã - apatheia.info]]
port ãæå®ãã
docker run æã« -p ãã€ããããšã§, ã³ã³ããããå€éšã«ãããããŒããæ±ºãããã. ã³ã³ããåŽã®ããŒãã¯ãã¹ãåŽã®ããŒãã«å€æãããé, ããŒãçªå·ã倿Žããã (49153 以éã«ãªã) ã®ã§, docker port <ãžã§ãã® ID> <ããŒãçªå·> ããã㯠docker ps ã§ããŒãã®å¯Ÿå¿ç¶æ³ã確èªããå¿ èŠããã.
run èµ·åãªãã·ã§ã³
代衚çãªãã®ã®ã¿æãåºãã.
% docker help run
Usage: docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
Run a command in a new container
-a, --attach=[] Attach to stdin, stdout or stderr.
-d, --detach=false Detached mode: Run container in the background, print new container id
-i, --interactive=false Keep stdin open even if not attached
-p, --publish=[] Publish a container's port to the host
-t, --tty=false Allocate a pseudo-tty
ã€ã¡ãŒãžãšã³ã³ãã
äžèŠ§è¡šç€º
çŸåšä¿æããŠãã image 㯠docker images ã§ç¢ºèªã§ãã.
$ sudo docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
ubuntu 14.04 c4ff7513909d 3 days ago 213 MB
ubuntu latest c4ff7513909d 3 days ago 213 MB
ãŸã, éå»ã«çæããã³ã³ãããå«ããŠäžèЧã確èªããã³ãã³ã㯠docker ps -a.
% docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
78941163261a ubuntu:14.04 /bin/bash 12 minutes ago Exited (0) 11 minutes ago clever_perlman
894d649c27d4 ubuntu:14.04 /bin/echo 'Hello Wor 13 minutes ago Exited (0) 13 minutes ago stupefied_rosalind
9d34b4889593 ubuntu:14.04 /bin/echo 'Hello Wor 14 minutes ago Exited (0) 14 minutes ago romantic_bohr
a986cb096871 ubuntu:14.04 /bin/echo 'Hello Wor 15 minutes ago Exited (0) 15 minutes ago tender_sinoussi
cbbca1119327 ubuntu:14.04 /bin/echo 'Hello Wor 15 minutes ago Exited (0) 15 minutes ago mad_babbage
c6824e447da7 ubuntu:14.04 /bin/echo 'Hello Wor 17 minutes ago Exited (0) 17 minutes ago sleepy_bardeen
åé€
ãšãããã, ãã¹ãŠãäžæŠåé€ããã.ã³ã³ããããã¹ãŠåé€.
$ sudo docker rm $(sudo docker ps -a -q)
æå®ããããŒã¯ãŒãã§åŒã£ããã£ãã³ã³ãããåé€
$ docker ps -a |grep "tsune" | awk '{print $1}' | xargs docker rm
ç¶ããŠ, ã€ã¡ãŒãžããã¹ãŠåé€.
$ docker rmi $(sudo docker images -q)
ã³ããã
ã³ã³ããã¯èµ·åãçµäºãããšç Žæ£ããã.èµ·åäžã®ã³ã³ãããåå©çšããããã«ã¯, èµ·åäžã®ã³ã³ããã commmit ã³ãã³ãã§ã€ã¡ãŒãžã«å€æããå¿ èŠããã.
$ sudo docker commit 15cb2a03c788 centos:test
äœæããã€ã¡ãŒãžããæ°ã㪠Docker ã³ã³ãããèµ·åããã«ã¯, -t ãªãã·ã§ã³ã®åŸãã«ã¿ã°ãæå®ããŸã.
$ sudo docker run -i -t centos:test /bin/bash
SSH
ssh ã§ã³ã³ããã«ã¢ã¯ã»ã¹ãã. ã³ã³ããã®äžã§ openssh-server ãç«ã¡äžã.ãã¹ã¯ãŒããèšå®.
apt-get install openssh-server
mkdir /var/run/sshd
/usr/sbin/sshd
passwd root
exit
root ã§ã¢ã¯ã»ã¹ã§ããããã«èšå®å€æŽ.
vi /etc/ssh/sshd_config
PermitRootLogin yes
run.sh ã« sshd ãåæã«èµ·åããããã«ä¿®æ£.
vi run.sh
# 远å
/usr/sbin/sshd -D &
ãããŸã§ã®äœæ¥ã commit.
docker commit ${ID} tsune/wordpress
Dockerfile
OS ã®ã¹ã¯ã©ããã€ã¡ãŒãžããã¢ããªãåããŸã§ãæžããã³ãŒã.
Docker é¢é£æè¡
Docker Hub
Docker ã³ã³ãããã¯ã©ãŠããµãŒãã¹äžã§å ±æã§ãã.
ð§Jib
refs: ðJava ðGoogle Cloud Run w/ Clojure
Googleã®éçºããJavaã¢ããªã®ããã®ã³ã³ããäœæããŒã«.
DockerfileãæžããªããŠãImageãBuildã§ããããšãç¹åŸŽ.
Jib ã䜿çšã㊠Java ã³ã³ãããæ§ç¯ãã  | Google Cloud
éåŒããªãã¡ã¬ã³ã¹/Tips/Howto
Dockerããã¥ã¡ã³ãåã³é¢é£ããã¥ã¡ã³ãã®éåŒããªãã¡ã¬ã³ã¹.
ref. Docker ããã¥ã¡ã³ãæ¥æ¬èªåãããžã§ã¯ã
ð§howto: Dockerã€ã¡ãŒãžã®ãã«ãæã«ç°å¢å€æ°ãæž¡ãã«ã¯ïŒ
Dockerfileã§å€æ°ãåãæ±ãã«ã¯ARGãšENVãšããèšå®é ç®ããã.
- ARG: docker imageããã«ããããšãã«äœ¿ããå€ããæž¡ã倿°.
- ENV: ãã«ãåŸã®ã³ã³ããå ã«èšå®ãããå éšã§äœ¿ãç°å¢å€æ°.
docker bulid ã³ãã³ãã« âbuild-arg ã§ç°å¢å€æ°ãæå®ãã.
ref. æ§ç¯æã®å€æ°ãæå®(âbuild-arg) â Docker-docs-jaããã¥ã¡ã³ã
dockerãªãœãŒã¹ç®¡ç
- 容é確èª
- docker system df
- docker images
- åé€
- docker system prune: å šãŠã®åæ¢äžã®ã³ã³ãããæªäœ¿çšã€ã¡ãŒãžãæªäœ¿çšãããã¯ãŒã¯ãåé€
dockerã§ NVIDIA GPUãã€ãã
ãã¹ãPCã®NVIDIA GPUã䜿ãå ŽåãNVIDIA Container Toolkit ãinstallããå¿ èŠããã.