facebook twitter hatena line google mixi email

仮想サーバ/docker/基本

提供: 初心者エンジニアの簡易メモ
移動: 案内検索

vm作成

defaultという名前でvmが起動する(virtualbox用)

docker-machine create --driver virtualbox default

vm一覧

$ docker-machine ls
default   *        virtualbox   Running   tcp://192.168.99.100:2376           v1.10.0

vm起動

docker-machine start default

vm接続

docker-machine ssh default

vm停止・削除・ip

docker-machine stop default # 停止
docker-machine rm default # 削除
docker-machine ip default # ip (192.168.99.100)

docker仮想イメージ検索

centosの場合

$ docker search centos
NAME                            DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
centos                          The official build of CentOS.                   1911      [OK]
jdeathe/centos-ssh              CentOS-6 6.7 x86_64 / SCL/EPEL/IUS Repos /...   15                   [OK]
jdeathe/centos-ssh-apache-php   CentOS-6 6.7 x86_64 / Apache / PHP / PHP M...   13                   [OK]
padster83/centos7-php7-laravel5   centos7 php7 and larvel5.1                      4                    [OK]

debianの場合

$ docker@default:~$ docker search debian
NAME                           DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
debian                         Debian is a Linux distribution that's comp...   1892      [OK]

debian&php&nginxの場合

docker search debian/php/nginx
NAME                                            DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
pschmitt/owncloud                               Reasonably configurable Docker image for t...   21                   [OK]

dockerイメージ取得(centos6.7)

dockerにログインしてから

$ docker pull jdeathe/centos-ssh
Using default tag: latest
latest: Pulling from jdeathe/centos-ssh
a3ed95caeb02: Pull complete
3b231ed5aa2f: Pull complete
739732e8a1eb: Pull complete
4748cf13cce1: Pull complete
b43cafb7f42b: Pull complete
ecc6934ef96a: Pull complete
d258b8324b77: Pull complete
0bf7d359e07c: Pull complete
34a742724dd4: Pull complete
646a068632d8: Pull complete
a9397714f8e2: Pull complete
4b0007b85fa0: Pull complete
40cbdf152dd2: Pull complete
a9a0656572df: Pull complete
Status: Downloaded newer image for jdeathe/centos-ssh:latest

取得したイメージの確認

docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
centos              latest              61b442687d68        6 weeks ago         196.6 MB
jdeathe/centos-ssh              latest              09cc921e8147        6 days ago          253.3 MB

イメージの削除

以下どちらか

docker rmi 61b442687d68
docker rmi centos:centos7

コンテナを作成

docker run -d -it --name web1 jdeathe/centos-ssh:latest /bin/bash

80portも開放したい場合はこちら

docker run -d -it --publish 80:80 --name web1 jdeathe/centos-ssh:latest /bin/bash

80portを(localの9080とdockerの80で)開放したい場合はこちら

docker run -d -it --publish 9080:80 --name web1 jdeathe/centos-ssh:latest /bin/bash

起動ではなく生成なので注意。何度もrunすると幾つもコンテナが生成される。

nameにweb1といれたが指定しないとランダムで勝手に名前がつく。

コンテナ起動&接続

docker start web1
docker attach web1

コンテナの確認

$ docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                              PORTS               NAMES
e831d68bfbe7        centos:latest       "/bin/bash"              20 minutes ago      Exited (0) Less than a second ago  443/tcp, 0.0.0.0:50080->80/tcp                     drunk_ride
51930183904        centos:latest       "/bin/bash"              18 minutes ago      Exited (0) Less than a second ago                      web1

docker start xxxしたものだけPORTSが割り当てられる

コンテナの削除

docker rm e831d68bfbe7

削除できない場合は(docker stop [name]とするか)以下コマンドで強制的に削除してdockerを再起動

docker rm -f e831d68bfbe7

docker pullでDownloading...のまま止まった時

”docker-machine stop"で停めてdocker-machineを再作成する

docker内のapacheでphp7を動作させる

$ docker-machine ip #ipを確認しておく(192.168.99.100)
$ docker pull miyamotota/php7-centos67 # php7付きのimageを持ってくる
$ docker run -d -it --publish 80:80 --name webphp7 miyamotota/php7-centos67:latest /bin/bash # 起動&80port開放
[root@8ff8c5a8cb27 /]# yum install httpd
[root@8ff8c5a8cb27 /]# /etc/rc.d/init.d/httpd start

ローカルマシンからhttp://192.168.99.100へアクセスすると画面が開く

再接続の際は以下で接続できる

$ docker start webphp7
$ docker attach webphp7

docker-machineを複数作る&一部削除するとipが変化するので注意

docker内でweb_server動作確認

$ ip addr show | grep inet
   inet 127.0.0.1/8 scope host lo
   inet6 ::1/128 scope host
   inet 172.17.0.2/16 scope global eth0
   inet6 fe80::42:acff:fe11:2/64 scope link
$ wget -q -O - http://172.17.0.2/

iso場所

/Users/user1/.docker/machine/machines/dev/boot2docker.iso

参考

https://gist.github.com/tcnksm/7700047

http://enakai00.hatenablog.com/entry/20140628/1403933390

http://blog.devneko.net/2014/06/docker.html