Docker CEパッケージ置き場メモ

Docker Engine

Docker CE以前のバージョン
今後はメンテナンスされないので注意

参考

http://kenoha.hatenablog.com/entry/2017/03/31/114418
docker-engineは昔の呼称

https://blog.docker.com/2017/03/docker-enterprise-edition/
engineからceにアップデート可能

docker-engineパッケージは現時点(2017/5/31)では
まだ提供されていますが、将来的にはdocker-ceまたはdocker-eeパッケージに
まとめられるはずなのでいつまでも利用できるわけではない点に注意してください。

http://qiita.com/RyoMa_0923/items/16f51f7fee02e82f9109 より引用

Linuxコマンドとパッケージ名対応表

概要

Dockerイメージなどミニマルな環境だといつものコマンドが使えないときがある。
イメージ容量を考えると不要なパッケージが入っていないほうが良いのだが困るときもある。
そんなとき用のメモ

対応表

コマンド パッケージ名(CentOS) パッケージ名(Ubuntu)
ps procps
ping iputils iputils-ping
ip iproute iproute
ss iproute iproute
ifconfig net-tools net-tools
arp net-tools net-tools
netstat net-tools net-tools
route net-tools net-tools
traceroute traceroute inetutils-traceroute
dig bind-utils dnsutils
nslookup bind-utils dnsutils
vconfig vconfig vlan
brctl brigde-utils brigde-utils

Dockerのデーモン設定ファイルでコンテナのデフォルト/etc/resolv.conf設定

概要

Dockerコンテナの/etc/resolv.confはDockerホストのファイルがそのまま引き継がれる。
DockerホストとDockerコンテナで名前解決の設定を変更したい場合はdocker runのときに--dnsオプションを指定することで個別に変更が出来る。

とはいえ毎回docker runの度にオプション指定は面倒、しかしDockerホストの/etc/resolv.confは変更したくない。。。

そういった場合は/etc/docker/daemon.jsonに事前に設定を入れておくことで
Dockerホストの/etc/resolv.confを変更することなくそして--dnsオプションを指定する必要がなくなる。

設定

/etc/docker/daemon.json
{
  "dns": [
    "10.0.0.1", "10.0.0.2", "10.0.0.3"
  ],
  "dns-opts": [
    "timeout:1"
  ]
}

と書いてデーモンを再起動すると
各コンテナの/etc/resolv.confのデフォルトが

search example.com
nameserver 10.0.0.1
nameserver 10.0.0.2
nameserver 10.0.0.3
options timeout:1

になる。

search example.comは指定していないのでデフォルトのDockerホストの/etc/resolv.confから引き継がれてきた。

注意

jsonファイル中のdns-optsjsonファイルではdns-optsだがdocker run時のオプションではdns-optなので注意