ライフサイクルをざっと。
dockerデーモンの起動と動作確認。ubuntuの場合。
$ sudo service docker status
$ sudo service docker start
$ sudo docker run --rm hello-world
リポジトリに登録されているイメージを取得する。
$ sudo docker pull debian:latest
Pulling repository debian
6845b83c79fb: Download complete
575489a51992: Download complete
Status: Downloaded newer image for debian:latest
$
$ sudo docker images debian
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
debian latest 6845b83c79fb 13 days ago 125.1 MB
$
コンテナを作成して実行。コンソール接続してbashを実行する例。
$ sudo docker run -it debian:latest /bin/bash
root@06e1a850e923:/#
root@06e1a850e923:/# w
22:20:47 up 29 days, 14:32, 0 users, load average: 0.36, 0.29, 0.24
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root@06e1a850e923:/#
root@06e1a850e923:/# uname -a
Linux 06e1a850e923 3.13.0-63-generic #103-Ubuntu SMP Fri Aug 14 21:42:59 UTC 2015 x86_64 GNU/Linux
root@06e1a850e923:/#
root@06e1a850e923:/# cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux 8 (jessie)"
NAME="Debian GNU/Linux"
VERSION_ID="8"
VERSION="8 (jessie)"
ID=debian
HOME_URL="http://www.debian.org/"
SUPPORT_URL="http://www.debian.org/support/"
BUG_REPORT_URL="https://bugs.debian.org/"
root@06e1a850e923:/#
コンソール接続したコンテナから一旦切断する例。
root@xxxxxxxxxxxx:/# [Ctl+p]-[Ctl+q]
$
$ sudo docker ps | grep debian
xxxxxxxxxxxx debian:latest "/bin/bash" About a minute ago Up About a minute berserk_mayer
$
再接続する例。
$ sudo docker attach xxxxxxxxxxxx
root@xxxxxxxxxxxx:/#
コンテナを終了する例。
root@06e1a850e923:/# exit
exit
$
終了したコンテナを再起動する例。
$ sudo docker ps -a | grep debian
xxxxxxxxxxxx debian:latest "/bin/bash" 13 minutes ago Exited (0) 13 seconds ago berserk_mayer
$
$ sudo docker start -i xxxxxxxxxxxx
root@xxxxxxxxxxxx:/#
root@xxxxxxxxxxxx:/# exit
exit
$
コンテナの状態確認。
$ sudo docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
$
$ sudo docker ps -a | grep debian
06e1a850e923 debian:latest "/bin/bash" 2 minutes ago Exited (0) 47 seconds ago evil_kowalevski
$
copy file from/to docker container
$ sudo docker cp xxxxxxxxxxxx:/dirname/filename destination
$ sudo docker cp source xxxxxxxxxxxx:/dirname/filename
コンテナの削除。
$ sudo docker rm 06e1a850e923
06e1a850e923
$
$ sudo docker ps -a | grep debian
$
イメージの削除。
$ sudo docker rmi debian:latest
Untagged: debian:latest
Deleted: 6845b83c79fb642ed6af06cceaca042e155717ca8eb0b5cffa9c43f1f7f70348
Deleted: 575489a51992d5d30976ff5ba7f7eabdc134acfb51c79ff48883089009594e64
$
$ sudo docker images debian
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
$
dockerイメージの作成
$ mkdir project && cd project
$
$ vi Dockerfile
$
$ sudo docker build -t imagename:tagname . | tee build.log
$
$ sudo docker images imagename
$
When you want to use proxy, use --build-arg option like bellow
$ sudo docker build --build-arg http_proxy=http://192.168.xxx.xxx:3142/ -t imagename:tagname . | tee build.log
When new image name is , then rename it as below
$ sudo docker tag xxxxxxxxxxxx imagename:tagname
$
$ sudo docker images imagename
不要なイメージの一括削除
sudo docker images | awk '$1~/<none>/ {print}'
sudo docker images | awk '$1~/<none>/ {print $3}' | xargs sudo docker rmi
使用するdockerfileの簡単な例。
From debian:latest
RUN apt-get update && apt-get install -y \
screen \
openssl \
vim \
make \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*