Dockerで作ったコンテナーをcommitし、Docker hubに公開するまで

事前にログイン

アカウントが必要になります。

$ docker login
...(ユーザー名、パスワード、Eメールがきかれる)

コンテナーをコミット

$ docker commit [CONTAINER_ID] [ログインしたユーザー名]/[名前(なんでもいい)]

Imageをpush!

$ docker images
...
$ docker push [ログインしたユーザー名]/[名前(さっきの)]

忘れちゃうのでメモしておく。

DockerでCentOSのコンテナを作ってgitを使うまで

Docker楽しいです!
簡単にコンテナを作れて、開発環境の構築に便利です!

gitを選んだのは、簡単にインストールができるからです。

Dockerのバージョン

$ docker -v
Docker version 1.9.1, build a34a1d5

まずCentOSのイメージをpullしてくる

$ docker pull centos
Using default tag: latest
...
$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
centos              latest              c8a648134623        2 weeks ago         196.6 MB

docker pull [イメージ名]でイメージをpull=取得できます。
docker imagesで、pullしたイメージの一覧を取得できます。

コンテナーを作る

$ docker run -itd centos /bin/bash
...
$ docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS        PORTS               NAMES
ccb0715533a4        centos              "/bin/bash"         3 seconds ago       Up 2 seconds                      clever_morse

docker runコマンドで、イメージからコンテナを作成し、実行できます。
オプションで、itはなんか必ず使います。dでバックグラウンドでの実行を許可します。
dを指定しないと、すぐに終了するので、docker psコマンドでは表示されず、docker ps -aで表示されるようになります。
-it -dと分けてもOKです。
コマンドの最後に、/bin/bashと書くのは、bashを実行するためです。

docker psコマンドで、実行中のコンテナの一覧を取得できます。停止したコンテナも取得するには、docker ps -aを使います。
CONTAINER IDをメモしておいてください。次使います!

centosのbashに入る

$ docker attach [CONTAINER ID 最初の一文字]
(上の例だと docker attach c)
(Enterキーを押す)
[root@CONTAINER ID /]# echo hello
hello

docker attach時のCONTAINER IDは、ここではコンテナーが1つしかないので、最初の1文字でかまいません。
コンテナーが複数あり、IDの最初の1文字がかぶっている場合は、2文字目を入力・・と、識別できるようにしましょう。

※#以降の文字がコメントだと思われて緑になってしまいますが違いますw

Git を入れる

[root@CONTAINER ID /]# yum -y update
...
[root@CONTAINER ID /]# yum -y install git
...

Complete!
[root@CONTAINER ID /]# git --version
git version 1.8.3.1
[root@CONTAINER ID /]#

コンテナーを実行したまま、さらっと抜ける

[root@CONTAINER ID /]# Ctrl+P Ctrl+Q

$ docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS        PORTS               NAMES
ccb0715533a4        centos              "/bin/bash"         3 seconds ago       Up 2 seconds                      clever_morse

Ctrl+P Ctrl+Q で、実行したまま抜けられます。
実行したままなので、docker psに表示されます!

exitと打つと、停止されてしまいます。

コンテナー、イメージを消す方法も一応

消したくない人は飛ばしてください。

まずはコンテナーを止めて、消しましょう。
docker rmで、コンテナーを削除します。

$ docker stop [CONTAINER IDの一文字目]
..
$ docker rm [CONTAINER IDの一文字目]
..
$ docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS          PORTS               NAMES

(表示されない)


`docker stop`で、コンテナーを安全に停止させます。
どっちみち後で消すので、`docker kill`でもいいです。

イメージも消しちゃえ!
`docker rmi`で、イメージを削除します。


$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
centos              latest              c8a648134623        2 weeks ago         196.6 MB
$ docker rmi [IMAGE IDの一文字目]
..
$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE

(消えた)

まとめ

どうでしょう!簡単にコンテナーを作成できて、簡単に削除できます。
使い捨てのテスト環境とかの構築にも使えます。

最後までお読みいただき、ありがとうございました!