Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

(初心者向け)Dockerの使い方

More than 3 years have passed since last update.

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の課題

ここのページに書かれているようにセキュリティ視点での懸念があるみたいです。本番環境で使用する場合は、要求されるセキュリティ水準に気を付けるのが良さそうと感じました。

http://deeeet.com/writing/2015/02/17/docker-bad-points/

このページではDockerのライバル?であるRocketを紹介していますが、Rocketでも未解決の部分があり、LXCの根本的な対策待ち状態であると理解しています。

butada
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away