Dockerの覚書です。
#Dockerの基本的な使い方
##Dockerとは
ITproだったかどっかのページのリンクを張る。
Docker本家のページも良いですが、@ITの記事のほうが解りやすいと思ったのでそのリンクを載せます。
http://www.atmarkit.co.jp/ait/articles/1405/16/news032.html
Docker本家:
http://docker.com/
##用語
イメージ:コンテナが動作するためにベースとなるファイル群。コンテナによってイメージが変更されることはなく不変のもの。Docker Hubから取得可能。CentOSイメージが汎用的なので初心者には使いやすいと思う。
コンテナ:イメージから作成されたインスタンスのようなもの。コンテナが動作することで生成されたファイルは、イメージではなくコンテナに紐づいて管理される。ざっくり言うと、コンテナ=イメージ+差分ファイル。厳密に言えばコンテナには起動中のプロセスも含まれる。
##前提
CentOS7(どんなディストリビューションでもLXC対応のLinuxなら大丈夫かと)
Docker version 1.7.1, build 786b29d/1.7.1
##導入
# yum install docker
# chkconfig docker on
# service docker start
##イメージを取得
とりあえずはcentosさえあればいじれる。
取得可能なイメージ一覧は https://hub.docker.com/explore/ で確認可能。
# docker pull centos
# docker pull nginx
取得で来たら以下のコマンドで確認可能。
# docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
docker.io/nginx latest 6886fb5a9b8d 3 weeks ago 132.8 MB
docker.io/centos centos7 7322fbe74aa5 8 weeks ago 172.2 MB
##Hello world的なこと
イメージからコンテナを作成する方法。
[root@localhost ~]# docker run --name mycentos -d centos /sbin/init
0b853049f6aac8f6c9845fd4ed3009aa7ba8e48af470c587aedb8d43afa88bea
コンテナ内に入る方法。
[root@a6e5fed21411 /]# docker exec -it mycentos /bin/bash
docker execでコンテナに入った場合は、コンテナから出るときに exit
を使える。
exit
で出てしまうとコンテナが停止してしまうので注意。
docker runで入ったコンテナから出るときは Ctrl+p Ctrl+q
を使う。
[root@a6e5fed21411 /]# [root@localhost ~]#
##基本操作
コンテナの一覧を確認する方法
# docker ps -a
イメージの一覧を確認する方法
# docker images
コンテナ(作業状況)を削除する方法
# docker rm
イメージを削除する方法
# docker rmi -f
コンテナからイメージを作成する方法
# docker commit container_id centos:file_created
##Dockerの課題
ここのページに書かれているようにセキュリティ視点での懸念があるみたいです。本番環境で使用する場合は、要求されるセキュリティ水準に気を付けるのが良さそうと感じました。
このページではDockerのライバル?であるRocketを紹介していますが、Rocketでも未解決の部分があり、LXCの根本的な対策待ち状態であると理解しています。