「Docker」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
5行目: 5行目:
 
{{Related|systemd-nspawn}}
 
{{Related|systemd-nspawn}}
 
{{Related|Linux Containers}}
 
{{Related|Linux Containers}}
{{Related4|Lxc-systemd}}
 
 
{{Related|Vagrant}}
 
{{Related|Vagrant}}
 
{{Related articles end}}
 
{{Related articles end}}
27行目: 26行目:
 
== 設定 ==
 
== 設定 ==
   
  +
=== プロキシ ===
{{ic|/etc/systemd/system/docker.service}} を以下のように編集してください、{{ic|http_proxy}} はプロキシサーバーに {{ic|-g <path>}} は docker のホームに置き換えて下さい。デフォルトのパスは {{ic|/var/cache/docker}} です。
 
  +
  +
プロキシの設定は2つに分けられます。一つは Docker デーモンのホストの設定で、もうひとつはコンテナからプロキシにアクセスできるようにするための設定です。
  +
  +
==== デーモンのプロキシの設定 ====
  +
  +
{{ic|/usr/lib/systemd/system/docker.service}} を {{ic|/etc/systemd/system/docker.service}} にコピーしてください。そして {{ic|/etc/systemd/system/docker.service}} を以下のように編集してください、{{ic|http_proxy}} はプロキシサーバーに {{ic|-g <path>}} は docker のホームに置き換えて下さい。デフォルトのパスは {{ic|/var/lib/docker}} です。
   
 
[Service]
 
[Service]
 
Environment="http_proxy=192.168.1.1:3128"
 
Environment="http_proxy=192.168.1.1:3128"
ExecStart=
 
ExecStart=/usr/bin/docker -d -g /var/yourDockerDir
 
   
 
{{Note|上記ではプロクシサーバが {{ic|192.168.1.1}} になっています、{{ic|127.0.0.1}} は使わないでください。}}
 
{{Note|上記ではプロクシサーバが {{ic|192.168.1.1}} になっています、{{ic|127.0.0.1}} は使わないでください。}}
  +
  +
==== コンテナの設定 ====
  +
  +
{{ic|docker.service}} ファイルの設定はコンテナには換算されません。{{ic|Dockerfile}} で {{ic|ENV}} 変数を設定する必要があります:
  +
  +
FROM base/archlinux
  +
ENV http_proxy="<nowiki>http://192.168.1.1:3128</nowiki>"
  +
ENV https_proxy="<nowiki>https://192.168.1.1:3128</nowiki>"
  +
  +
[https://docs.docker.com/reference/builder/#env Docker] は Dockerfile で {{ic|ENV}} を使って設定する方法について詳しい情報を提供しています。
  +
  +
=== デーモンのソケットの設定 ===
   
 
''docker'' デーモンはデフォルトで [[Wikipedia:ja:UNIXドメインソケット|Unix ソケット]]を使います。特定のポートで待機させるには、{{ic|/etc/systemd/system/docker.socket}} を編集して、{{ic|ListenStream}} を使用したいポートに置き換えてください:
 
''docker'' デーモンはデフォルトで [[Wikipedia:ja:UNIXドメインソケット|Unix ソケット]]を使います。特定のポートで待機させるには、{{ic|/etc/systemd/system/docker.socket}} を編集して、{{ic|ListenStream}} を使用したいポートに置き換えてください:
54行目: 69行目:
 
ExecStart=/usr/bin/docker -d -e lxc
 
ExecStart=/usr/bin/docker -d -e lxc
   
== Skype ==
+
== イメージ ==
  +
=== Arch Linux ===
 
  +
==== x86_64 ====
[[Skype#Docker]] を参照してください。
 
  +
次のコマンドは x86_64 イメージを取得します:
 
== i686 イメージの作成 ==
 
i686 アーキテクチャでは、次のコマンドを使って取得した x86_64 のイメージを使用することは'''できません''':
 
 
 
# docker pull base/archlinux
 
# docker pull base/archlinux
   
=== ArchLinux イメージ ===
+
==== i686 ====
  +
Docker Registry のデフォルトの Arch Linux イメージは x86_64 だけです。i686 イメージは手動で作成する必要があります。
  +
  +
==== イメージの作成 ====
 
代わりに、[https://registry.hub.docker.com/u/base/archlinux/ docker base/archlinux registry] をチェックして {{ic|mkimage-arch.sh}} リンクをクリックして {{ic|mkimage-arch.sh}} と {{ic|mkimage-arch-pacman.conf}} を同一のフォルダにダウンロードしてください。そして、スクリプトに実行可能属性を付与して実行してください:
 
代わりに、[https://registry.hub.docker.com/u/base/archlinux/ docker base/archlinux registry] をチェックして {{ic|mkimage-arch.sh}} リンクをクリックして {{ic|mkimage-arch.sh}} と {{ic|mkimage-arch-pacman.conf}} を同一のフォルダにダウンロードしてください。そして、スクリプトに実行可能属性を付与して実行してください:
   
74行目: 89行目:
 
$ sed -i 's/timeout 60/timeout 120/' mkimage-arch.sh
 
$ sed -i 's/timeout 60/timeout 120/' mkimage-arch.sh
   
=== Debian イメージ ===
+
=== Debian ===
   
 
[[AUR]] の {{AUR|debootstrap}} で Debian イメージを作成:
 
[[AUR]] の {{AUR|debootstrap}} で Debian イメージを作成:
83行目: 98行目:
 
# tar cpf - . | docker import - debian
 
# tar cpf - . | docker import - debian
 
# docker run -t -i --rm debian /bin/bash
 
# docker run -t -i --rm debian /bin/bash
  +
  +
=== Skype ===
  +
  +
[[Skype#Docker]] を参照してください。
  +
  +
== 便利なヒント ==
  +
  +
実行中のコンテナの IP アドレスを取得するには:
  +
  +
{{hc|<nowiki>$ docker inspect --format '{{ .NetworkSettings.IPAddress }}' <container-name OR id> </nowiki>|
  +
172.17.0.37}}
   
 
== トラブルシューティング ==
 
== トラブルシューティング ==

2015年8月9日 (日) 13:40時点における版

関連記事

Docker は軽量コンテナとしてあらゆるアプリケーションを詰めて運んで実行できるユーティリティです。

インストール

公式リポジトリにある docker パッケージをインストールして docker.service有効化してください。i686 アーキテクチャの場合、docker-gitAUR をインストールしてください。動作検証するために、次を実行:

# docker info

docker を通常ユーザーで実行できるようにしたい場合は、ユーザーを docker グループに追加してからログインし直してください:

# gpasswd -a user docker

または、セッションが新しいグループを使うようにするには:

$ newgrp docker

設定

プロキシ

プロキシの設定は2つに分けられます。一つは Docker デーモンのホストの設定で、もうひとつはコンテナからプロキシにアクセスできるようにするための設定です。

デーモンのプロキシの設定

/usr/lib/systemd/system/docker.service/etc/systemd/system/docker.service にコピーしてください。そして /etc/systemd/system/docker.service を以下のように編集してください、http_proxy はプロキシサーバーに -g <path> は docker のホームに置き換えて下さい。デフォルトのパスは /var/lib/docker です。

[Service]
Environment="http_proxy=192.168.1.1:3128"
ノート: 上記ではプロクシサーバが 192.168.1.1 になっています、127.0.0.1 は使わないでください。

コンテナの設定

docker.service ファイルの設定はコンテナには換算されません。DockerfileENV 変数を設定する必要があります:

 FROM base/archlinux
 ENV http_proxy="http://192.168.1.1:3128"
 ENV https_proxy="https://192.168.1.1:3128"

Docker は Dockerfile で ENV を使って設定する方法について詳しい情報を提供しています。

デーモンのソケットの設定

docker デーモンはデフォルトで Unix ソケットを使います。特定のポートで待機させるには、/etc/systemd/system/docker.socket を編集して、ListenStream を使用したいポートに置き換えてください:

[Socket]
ListenStream=0.0.0.0:2375

Docker 0.9.0 -- 1.2.x と LXC

バージョン 0.9.0 から Docker は LXC に依存しないでコンテナを起動できる libcontainer という新しい方法を提供しています。

lxc exec ドライバーや -lxc-conf オプションは将来的には削除される可能性があります [1]

今後、デフォルトで Docker 0.9.0+ で管理されるコンテナで lxc-attach を使用する必要がなくなります。Docker デーモンを実行するには引数として -e lxc が必要です。

/etc/systemd/system/docker.service.d/ 下に lxc.conf という名前のファイルを以下の内容で作成することができます:

[Service]
ExecStart=
ExecStart=/usr/bin/docker -d -e lxc

イメージ

Arch Linux

x86_64

次のコマンドは x86_64 イメージを取得します:

# docker pull base/archlinux

i686

Docker Registry のデフォルトの Arch Linux イメージは x86_64 だけです。i686 イメージは手動で作成する必要があります。

イメージの作成

代わりに、docker base/archlinux registry をチェックして mkimage-arch.sh リンクをクリックして mkimage-arch.shmkimage-arch-pacman.conf を同一のフォルダにダウンロードしてください。そして、スクリプトに実行可能属性を付与して実行してください:

$ chmod +x mkimage-arch.sh
$ cp /etc/pacman.conf ./mkimage-arch-pacman.conf # or get a pacman.conf from somewhere else
$ LC_ALL=C ./mkimage-arch.sh # LC_ALL=C because the script parses the console output
# docker run -t -i --rm archlinux /bin/bash # try it

ネットワーク接続や CPU が遅い場合は、ビルドのタイムアウト時間を伸ばすことができます:

$ sed -i 's/timeout 60/timeout 120/' mkimage-arch.sh

Debian

AURdebootstrapAUR で Debian イメージを作成:

# mkdir wheezy-chroot
# debootstrap wheezy ./wheezy-chroot http://http.debian.net/debian/
# cd wheezy-chroot
# tar cpf - . | docker import - debian
# docker run -t -i --rm debian /bin/bash

Skype

Skype#Docker を参照してください。

便利なヒント

実行中のコンテナの IP アドレスを取得するには:

$ docker inspect --format '{{ .NetworkSettings.IPAddress }}' <container-name OR id> 
172.17.0.37

トラブルシューティング

Docker info でエラーが出力される

docker info を実行すると以下のようなエラーが表示される場合:

 FATA[0000] Get http:///var/run/docker.sock/v1.17/info: read unix /var/run/docker.sock: connection reset by peer. Are you trying to connect to a TLS-enabled daemon without TLS?

おそらく bridge モジュールがロードされていません。lsmod を実行することで確認できます。ロードされていない場合は、modprobe を実行してロードするか、再起動してみてください (カーネルをアップグレードしたときに、bridge が最新のカーネル用にビルドされていた場合、再起動が必要になります)。

詳しくは GitHub の issue を見てください。

参照