docker history

表題のコマンド。

■ 環境

  • Docker for Mac 1.13.0
  • Mac OSX El Capitan

■ history

なんだろう?と思って実行してみた。

$ docker history -h
Flag shorthand -h has been deprecated, please use --help

Usage:     docker history [OPTIONS] IMAGE

Show the history of an image

Options:
      --help       Print usage
  -H, --human      Print sizes and dates in human readable format (default true)
      --no-trunc   Don't truncate output
  -q, --quiet      Only show numeric IDs
$

elasticsearch“のコンテナで試してみる。

$ docker history elasticsearch
IMAGE          CREATED       CREATED BY                                      SIZE     COMMENT
bca6fa4a7062   2 days ago    /bin/sh -c #(nop)  CMD ["elasticsearch"]        0 B
<missing>      2 days ago    /bin/sh -c #(nop)  ENTRYPOINT ["/docker-en...   0 B
<missing>      2 days ago    /bin/sh -c #(nop)  EXPOSE 9200/tcp 9300/tcp     0 B
<missing>      2 days ago    /bin/sh -c #(nop) COPY file:251082110c6dbd...   741 B
<missing>      2 days ago    /bin/sh -c #(nop)  VOLUME [/usr/share/elas...   0 B
<missing>      2 days ago    /bin/sh -c #(nop) COPY dir:c3faa196a3b1c87...   424 B
<missing>      2 days ago    /bin/sh -c set -ex  && for path in   ./dat...   0 B
<missing>      2 days ago    /bin/sh -c #(nop)  WORKDIR /usr/share/elas...   0 B
<missing>      2 days ago    /bin/sh -c #(nop)  ENV PATH=/usr/share/ela...   0 B
<missing>      2 days ago    /bin/sh -c set -x   && dpkg-divert --renam...   37.7 MB
<missing>      2 days ago    /bin/sh -c #(nop)  ENV ELASTICSEARCH_DEB_V...   0 B
<missing>      2 days ago    /bin/sh -c #(nop)  ENV ELASTICSEARCH_VERSI...   0 B
<missing>      2 weeks ago   /bin/sh -c set -x  && apt-get update && ap...   1.21 MB
<missing>      2 weeks ago   /bin/sh -c set -ex;  key='46095ACC8548582C...   1.22 kB
<missing>      2 weeks ago   /bin/sh -c set -x  && wget -O /usr/local/b...   2.7 MB
<missing>      2 weeks ago   /bin/sh -c #(nop)  ENV GOSU_VERSION=1.7         0 B
<missing>      2 weeks ago   /bin/sh -c /var/lib/dpkg/info/ca-certifica...   419 kB
<missing>      2 weeks ago   /bin/sh -c set -x  && apt-get update  && a...   142 MB
<missing>      2 weeks ago   /bin/sh -c #(nop)  ENV CA_CERTIFICATES_JAV...   0 B
<missing>      2 weeks ago   /bin/sh -c #(nop)  ENV JAVA_DEBIAN_VERSION...   0 B
<missing>      2 weeks ago   /bin/sh -c #(nop)  ENV JAVA_VERSION=8u111       0 B
<missing>      2 weeks ago   /bin/sh -c #(nop)  ENV JAVA_HOME=/usr/lib/...   0 B
<missing>      2 weeks ago   /bin/sh -c {   echo '#!/bin/sh';   echo 's...   87 B
<missing>      2 weeks ago   /bin/sh -c #(nop)  ENV LANG=C.UTF-8             0 B
<missing>      2 weeks ago   /bin/sh -c echo 'deb http://deb.debian.org...   55 B
<missing>      2 weeks ago   /bin/sh -c apt-get update && apt-get insta...   1.17 MB
<missing>      2 weeks ago   /bin/sh -c apt-get update && apt-get insta...   44.3 MB
<missing>      2 weeks ago   /bin/sh -c #(nop)  CMD ["/bin/bash"]            0 B
<missing>      2 weeks ago   /bin/sh -c #(nop) ADD file:89ecb642d662ee7...   123 MB
$

へーと思っただけである。

以上。

docker image prune

表題のコマンドを試す。

■ 環境

  • Docker for Mac 1.13.0
  • Mac OSX El Capitan

■ image prune

打ち間違えをしたような気がして表示されたヘルプを見ていたら気になった”prune“サブコマンド。

$ docker image

Usage:     docker image COMMAND

Manage images

Options:
      --help   Print usage

Commands:
  build       Build an image from a Dockerfile
  history     Show the history of an image
  import      Import the contents from a tarball to create a filesystem image
  inspect     Display detailed information on one or more images
  load        Load an image from a tar archive or STDIN
  ls          List images
  prune       Remove unused images
  pull        Pull an image or a repository from a registry
  push        Push an image or a repository to a registry
  rm          Remove one or more images
  save        Save one or more images to a tar archive (streamed to STDOUT by default)
  tag         Create a tag TARGET_IMAGE that refers to SOURCE_IMAGE

Run 'docker image COMMAND --help' for more information on a command.
$

使っていないイメージを削除してくれるようである。さらにヘルプを見てみる。

$ docker image prune --help

Usage:     docker image prune [OPTIONS]

Remove unused images

Options:
  -a, --all     Remove all unused images, not just dangling ones
  -f, --force   Do not prompt for confirmation
      --help    Print usage
$

prune“なんてあったんだ、と嬉しくなって早速試してみることに。今までは不要なコンテナイメージは下記のように削除をしていた。

docker rmi $(docker images -q -f dangling=true)

では早速`prune`サブコマンドを実行してみる。

$ docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
$
$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
elasticsearch       latest              3b9ab09f293c        13 days ago         353 MB
elasticsearch       <none>              3429053f4435        3 months ago        344 MB
mysql               latest              cf725f136fd2        3 months ago        383 MB
$
$ docker image prune
WARNING! This will remove all dangling images.
Are you sure you want to continue? [y/N] y
Total reclaimed space: 0 B
$
$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
elasticsearch       latest              3b9ab09f293c        13 days ago         353 MB
elasticsearch       <none>              3429053f4435        3 months ago        344 MB
mysql               latest              cf725f136fd2        3 months ago        383 MB
$

Tag“が”none“のコンテナイメージが削除されるのを期待したのだが、そうではないらしい…。”-a”というオプションもあるのでそちらを実行すると、、使われていないコンテナ全てが削除されてた…。イメージと違う動きをしてくれる…。

以上。

■ 関連

開発環境にAmazonLinux@Docker

表題の通り。

■ 環境

  • Amazon Linux
  • Docker for Mac 1.12.5
  • Mac OSX El Capitan

■ AmazonLinux@Docker

先日のエントリでは、起動したコンテナ内で`aws configure`を実行したが、すでにローカルで利用している設定をそのまま利用したい。というわけで下記のようにした。

$ docker run -ti --rm --name amazon -v ~/.aws:/root/.aws amazonlinux bash

これで`aws configure`をしなくても起動したコンテナ内でいつも通りの`aws`コマンドを利用することができる。

以上。

■ 環境

sshdのコンテナ

Dockerにおいて表題のコンテナを用意したい。

■ 環境

  • Docker for Mac 1.12.5
  • Mac OSX El Capitan

■ Ubuntu

元にするコンテナは”ubuntu“で行う。現在用意したい環境がUbuntuだからである。

$ docker run -ti --name ssh -p 2222:22 ubuntu /bin/bash

コンテナにログインして作業を行う。portは先に開けておいた。

■ ssh

もちろん最初は入っていないので”ssh“をインストールする。

root@fc22189f73c0:/# apt-get update
root@fc22189f73c0:/# apt-get install ssh

サービスを起動してみる。

root@fc22189f73c0:/# service ssh start
* Starting OpenBSD Secure Shell server sshd      [ OK ]
root@fc22189f73c0:/#
root@fc22189f73c0:/# ps -ef | grep ssh
root       270     1  0 10:05 ?        00:00:00 /usr/sbin/sshd
root@fc22189f73c0:/#

プロセスも起動しているようである。ローカルからアクセスしてみるがログインできず。”ssh“の設定だろうと当たりをつけて確認する。設定ファイルを編集する為に”vim“もインストールしておいた。

root@fc22189f73c0:/# apt-get install vim
  :
root@fc22189f73c0:/# vi /etc/ssh/sshd_config

下記のように編集し、”root”ユーザにパスワードも設定しておいた。

# PermitRootLogin prohibit-password
PermitRootLogin yes

本来はよくないが今は良いとする。

以上でローカルから再度アクセスを試みる。

$ ssh -p 2222 root@localhost
root@localhost's password: ******
Welcome to Ubuntu 16.04.1 LTS (GNU/Linux 4.4.39-moby x86_64)

* Documentation:  https://help.ubuntu.com
* Management:     https://landscape.canonical.com
* Support:        https://ubuntu.com/advantage
Last login: Wed Dec 21 10:03:40 2016 from 172.17.0.1
root@fc22189f73c0:~#

ログインもできた。

以上。

WordPress@Docker

表題の通り。

■ 環境

  • WordPress 4.7
  • Docker for Mac 1.12.3
  • Mac OSX El Capitan

■ container

公式のコンテナが公開されているのでこれを参照する。

library/wordpress – Docker Hub
https://hub.docker.com/_/wordpress/

このコンテナを利用する。

$ docker pull wordpress

さて起動しようかと思ったら、`mysql`のコンテナも必要そうである。というわけでこちらも取得。

$ docker pull mysql

■ mysql

取得した`mysql`のコンテナを起動する。

$ docker run -d --name wordpressdb -e MYSQL_ROOT_PASSWORD=wordpress mysql

■ wordpress

続いて`wordpress`のコンテナを起動する。

$ docker run -d --name wordpress -e WORDPRESS_DB_PASSWORD=wordpress --link wordpressdb:mysql -p 8080:80 wordpress

先に起動している`mysql`のコンテナを利用している。

各項目を入れていったら起動した。

もちろんではあるが英語だった。日本語版が使いたいなーと思ったらそれも公式ではないがあるらしい。

$ docker pull bakudankun/wordpress-ja
$ docker run -d --name wordpress -e WORDPRESS_DB_PASSWORD=wordpress --link wordpressdb:mysql -p 8080:80 bakudankun/wordpress-ja

公式の`wordpress`のコンテナをforkしているようなので、これを利用させてもらった。

これで日本語化された。

とりあえず画面が確認できたのでOKとする。

以上。