m_shige1979のときどきITブログ

プログラムの勉強をしながら学習したことや経験したことをぼそぼそと書いていきます

Github(変なおっさんの顔でるので気をつけてね)

https://github.com/mshige1979

Dockerのインストール

オープンソースカンファレンスとかいうのがありまして…

10/18-19にあった大手のイベントで
知っていることがあったり、なかったり関心することがあったりなかったりした
規模の問題もあったので自宅から結構遠かったけどそれなりに楽しめました。

元々挙動不審な感じがする私としてももっと楽しみたかったのですが2日続ける体力がなかったのであきらめました。

Docker

OSの上に仮想環境を構築するイメージとのこと

https://www.docker.com/

https://d3oypxn00j2a10.cloudfront.net/0.11.2/img/homepage/docker-whale-home-logo.png

環境

VMPlayerのCentOS
[root@localhost ~]# cat /etc/redhat-release
CentOS release 6.5 (Final)
[root@localhost ~]#
[root@localhost ~]# uname
Linux
[root@localhost ~]# uname -r
2.6.32-431.29.2.el6.x86_64
[root@localhost ~]#

※前回の失敗したopenstackの環境を流用

リポジトリをインストール
yum install -y wget
wget -P /etc/yum.repos.d http://www.hop5.in/yum/el6/hop5.repo
yum install xz docker-io -y --enablerepo=epel

リポジトリを指定

起動
service docker start
chkconfig docker on

制御

dockerの新しい仮想環境を作る
docker run centos /bin/echo "Hello World"

' locally
Pulling repository centos
87e5b6b3ccc1: Download complete
511136ea3c5a: Download complete
5b12ef8fd570: Download complete
Hello World
#

※しばらくしてから起動する
※ホストよりcentos用のイメージを取得しているよう

dockerのプロセス一覧を確認
# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
#

※dockerは一度終了したら破棄する

bashでdockerの端末に入る
docker run -i -t centos /bin/bash

※抜ける場合は、「Ctrl+p, Ctrl+q 」を続けて入力

# docker run -i -t centos /bin/bash
bash-4.2# echo "111"
111
bash-4.2# touch aaa.txt
bash-4.2# pwd
/
bash-4.2# ls -la
total 8768
drwxr-xr-x  18 root root    4096 Oct 19 10:28 .
drwxr-xr-x  18 root root    4096 Oct 19 10:28 ..
-rwxr-xr-x   1 root root       0 Oct 19 10:28 .dockerenv
-rwx------   1 root root 8915444 Oct 19 10:18 .dockerinit
-rw-r--r--   1 root root       0 Oct 19 10:28 aaa.txt
lrwxrwxrwx   1 root root       7 Sep 26 12:28 bin -> usr/bin
drwxr-xr-x   4 root root     360 Oct 19 10:28 dev
drwxr-xr-x  46 root root    4096 Oct 19 10:28 etc
drwxr-xr-x   2 root root    4096 Jun 10 01:11 home
lrwxrwxrwx   1 root root       7 Sep 26 12:28 lib -> usr/lib
lrwxrwxrwx   1 root root       9 Sep 26 12:28 lib64 -> usr/lib64
drwx------   2 root root    4096 Sep 26 12:27 lost+found
drwxr-xr-x   2 root root    4096 Jun 10 01:11 media
drwxr-xr-x   2 root root    4096 Jun 10 01:11 mnt
drwxr-xr-x   2 root root    4096 Jun 10 01:11 opt
dr-xr-xr-x 108 root root       0 Oct 19 10:28 proc
dr-xr-x---   2 root root    4096 Jun 10 01:11 root
drwxr-xr-x   6 root root    4096 Sep 26 12:30 run
lrwxrwxrwx   1 root root       8 Sep 26 12:28 sbin -> usr/sbin
drwxr-xr-x   3 root root    4096 Sep 26 12:30 selinux
drwxr-xr-x   2 root root    4096 Jun 10 01:11 srv
drwxr-xr-x  13 root root       0 Oct 19 09:31 sys
drwxrwxrwt   2 root root    4096 Sep 26 12:30 tmp
drwxr-xr-x  13 root root    4096 Sep 26 12:28 usr
drwxr-xr-x  18 root root    4096 Sep 26 12:29 var
bash-4.2#
#
#

# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED              STATUS              PORTS               NAMES
9dcb82062e2d        centos:latest       /bin/bash           About a minute ago   Up About a minute                       elegant_wozniak
#

※終了していないので実行中のプロセスを確認できる

再接続する場合は「docker attach」
# docker attach 9dcb82062e2d

bash-4.2#
bash-4.2# ls aaa.txt
aaa.txt
bash-4.2# exit
exit
#
# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
#

※exitした場合は破棄される

気になること

yumは使えるけど、serviceとかは使えない
# docker run -i -p 8080:80 -t centos /bin/bash
bash-4.2# service
bash: service: command not found
bash-4.2#
bash-4.2# exit
#

※イメージの問題か起動方法の問題かもしれないけど…

所感

ipなどの転送でdockerの方を参照できればwebアプリのデプロイなどが簡略化されるのかな?
なんかまだ、イメージがわかない。
※まだあんまり知らないけどそんなに難しくはなさそう

参考


Docker のコンテナに外部からアクセスする | CUBE SUGAR STORAGE
※service動かなかったんですけど…

CentOS 6.5 で Docker を使ってみる | CUBE SUGAR STORAGE