「Docker」の版間の差分
細 |
|||
3行目: | 3行目: | ||
[[ru:Docker]] |
[[ru:Docker]] |
||
{{Related articles start}} |
{{Related articles start}} |
||
− | {{Related| |
+ | {{Related|systemd-nspawn}} |
{{Related4|Linux Containers}} |
{{Related4|Linux Containers}} |
||
{{Related4|Lxc-systemd}} |
{{Related4|Lxc-systemd}} |
||
− | {{ |
+ | {{Related|Vagrant}} |
{{Related articles end}} |
{{Related articles end}} |
||
13行目: | 13行目: | ||
== インストール == |
== インストール == |
||
+ | [[公式リポジトリ]]にある {{Pkg|docker}} パッケージを[[pacman|インストール]]して {{ic|docker.service}} を[[systemd#ユニットを使う|有効化]]してください。i686 アーキテクチャの場合、{{AUR|docker-git}} をインストールしてください。動作検証するために、次を実行: |
||
− | {{Note|{{Bug|38029}} によって docker 1:0.7.1-1 で i686 バージョンのパッケージは削除されています。}} |
||
− | |||
− | [[公式リポジトリ]]にある {{Pkg|docker}} パッケージを[[pacman|インストール]]して {{ic|docker.service}} を[[systemd#ユニットを使う|有効化]]してください。動作検証するために、次を実行: |
||
# docker info |
# docker info |
||
22行目: | 20行目: | ||
# gpasswd -a ''user'' docker |
# gpasswd -a ''user'' docker |
||
+ | |||
+ | セッションが新しいグループを使うようにするには: |
||
+ | |||
+ | # newgrp docker |
||
== 設定 == |
== 設定 == |
||
27行目: | 29行目: | ||
{{ic|/etc/systemd/system/docker.service}} を以下のように編集してください、{{ic|http_proxy}} はプロキシサーバーに {{ic|-g <path>}} は docker のホームに置き換えて下さい。デフォルトのパスは {{ic|/var/cache/docker}} です。 |
{{ic|/etc/systemd/system/docker.service}} を以下のように編集してください、{{ic|http_proxy}} はプロキシサーバーに {{ic|-g <path>}} は docker のホームに置き換えて下さい。デフォルトのパスは {{ic|/var/cache/docker}} です。 |
||
− | .include /usr/lib/systemd/system/docker.service |
||
[Service] |
[Service] |
||
− | # assume 192.168.1.1 is your proxy server, don't use 127.0.0.1 |
||
Environment="http_proxy=192.168.1.1:3128" |
Environment="http_proxy=192.168.1.1:3128" |
||
ExecStart= |
ExecStart= |
||
ExecStart=/usr/bin/docker -d -g /var/yourDockerDir |
ExecStart=/usr/bin/docker -d -g /var/yourDockerDir |
||
+ | {{Note|上記ではプロクシサーバが {{ic|192.168.1.1}} になっています、{{ic|127.0.0.1}} は使わないでください。}} |
||
− | {{Note|http_proxy は動作しないようです。}} |
||
+ | ''docker'' デーモンはデフォルトで [[Wikipedia:ja:UNIXドメインソケット|Unix ソケット]]を使います。特定のポートで待機させるには、{{ic|/etc/systemd/system/docker.socket}} を編集して、{{ic|ListenStream}} を使用したいポートに置き換えてください: |
||
− | == Docker 0.9.0+ と LXC == |
||
+ | |||
+ | [Socket] |
||
+ | ListenStream=0.0.0.0:2375 |
||
+ | |||
+ | == Docker 0.9.0 -- 1.2.x と LXC == |
||
バージョン 0.9.0 から Docker は LXC に依存しないでコンテナを起動できる ''libcontainer'' という新しい方法を提供しています。 |
バージョン 0.9.0 から Docker は LXC に依存しないでコンテナを起動できる ''libcontainer'' という新しい方法を提供しています。 |
||
+ | |||
+ | ただし LXC は将来的には削除される可能性があります [https://github.com/docker/docker/pull/5797]。 |
||
今後、デフォルトで Docker 0.9.0+ で管理されるコンテナで {{ic|lxc-attach}} を使用する必要がなくなります。Docker デーモンを実行するには引数として {{ic|-e lxc}} が必要です。 |
今後、デフォルトで Docker 0.9.0+ で管理されるコンテナで {{ic|lxc-attach}} を使用する必要がなくなります。Docker デーモンを実行するには引数として {{ic|-e lxc}} が必要です。 |
||
50行目: | 57行目: | ||
[[Skype#Docker]] を参照してください。 |
[[Skype#Docker]] を参照してください。 |
||
+ | |||
+ | == i686 イメージの作成 == |
||
+ | i686 アーキテクチャでは、次のコマンドを使って取得した x86_64 のイメージを使用することは'''できません''': |
||
+ | |||
+ | # docker pull base/archlinux |
||
+ | |||
+ | === ArchLinux イメージ === |
||
+ | 代わりに、[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}} を同一のフォルダにダウンロードしてください。そして、スクリプトに実行可能属性を付与して実行してください: |
||
+ | |||
+ | $ 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 イメージ === |
||
+ | |||
+ | {{AUR|debootstrap}} from the [[AUR]] の {{AUR|debootstrap}} で 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 |
||
+ | |||
+ | == トラブルシューティング == |
||
+ | |||
+ | {{ic|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 モジュールがロードされていません。{{ic|lsmod | grep bridge}} を実行することで確認できます。ロードされていない場合は、{{ic|modprobe}} を実行してロードするか、再起動してみてください (カーネルをアップグレードしたときに、bridge が最新のカーネル用にビルドされていた場合、再起動が必要になります)。 |
||
+ | |||
+ | 詳しくは [https://github.com/docker/docker/issues/6853 GitHub の issue] を見てください。 |
||
== 参照 == |
== 参照 == |
2015年2月26日 (木) 15:00時点における版
Docker は軽量コンテナとしてあらゆるアプリケーションを詰めて運んで実行できるユーティリティです。
目次
インストール
公式リポジトリにある docker パッケージをインストールして docker.service
を有効化してください。i686 アーキテクチャの場合、docker-gitAUR をインストールしてください。動作検証するために、次を実行:
# docker info
docker を通常ユーザーで実行できるようにしたい場合は、ユーザーを docker グループに追加してログインし直して下さい:
# gpasswd -a user docker
セッションが新しいグループを使うようにするには:
# newgrp docker
設定
/etc/systemd/system/docker.service
を以下のように編集してください、http_proxy
はプロキシサーバーに -g <path>
は docker のホームに置き換えて下さい。デフォルトのパスは /var/cache/docker
です。
[Service] Environment="http_proxy=192.168.1.1:3128" ExecStart= ExecStart=/usr/bin/docker -d -g /var/yourDockerDir
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 は将来的には削除される可能性があります [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
Skype
Skype#Docker を参照してください。
i686 イメージの作成
i686 アーキテクチャでは、次のコマンドを使って取得した x86_64 のイメージを使用することはできません:
# docker pull base/archlinux
ArchLinux イメージ
代わりに、docker base/archlinux registry をチェックして mkimage-arch.sh
リンクをクリックして mkimage-arch.sh
と mkimage-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 イメージ
debootstrapAUR from the AUR の debootstrapAUR で 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
トラブルシューティング
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 を見てください。