LoginSignup
30
28

More than 5 years have passed since last update.

DockerをCentOS6.4にインストールする方法

Last updated at Posted at 2013-11-07

参考:http://oss.fulltrust.co.jp/?p=537
↑のサイトの方が最新版のDockerを動かす方法についてこちらに載せておられるそうです.

以降は全部rootで実行する.

  • リポジトリの設定とdocker-ioのインストール
 # wget -P /etc/yum.repos.d  http://www.hop5.in/yum/el6/hop5.repo
 # yum install xz -y 
 # yum install docker-io -y 
  • 起動スクリプトの作成

/etc/init.d/lxc-docker
このファイルを配置し,下記コマンドを実行する.
なお,↑のファイルではrepositoryの保存場所を/shareに変更している
(デフォルトだと/var/lib/docker に作成される.デフォルトに戻すのであれば,start 及び restartのところの-g /share を削除すればOK)

# chmod 755 /etc/init.d/lxc-docker
# chkconfig --add lxc-docker
  • GRUBの設定&ホストOSの再起動
# sed -i 's/default=1/default=0/' /boot/grub/grub.conf 
# reboot
  • Docker起動

CentOS起動後下記のコマンドを実行すると,centosイメージをdockerが起動し,bashシェルでイメージ内部に入る(centosイメージが無い場合は,共有レジストリ(docker.io)から自動的にDLして実行してくれる)

docker run -i -t centos /bin/bash

終了するときはexitで抜ければOK.同時に実行されているコンテナ(centosのイメージを動かしているもの)も終了する.

セットアップ時の注意点

WARNING: IPv4 forwarding is disabled

docker run実行時に,WARNING: IPv4 forwarding is disabled.*というWarningが出る場合,dockerコンテナ内で正常にネットワークが使えなくなることがある.
その場合,vi /etc/sysctl.conf を実行し,net.ipv4.ip_forwardの値を1にすればOK.

lxc-start: Permission denied - failed to create symlink for kmsg

lxc-docker start時にPermission Deniedと出て実行できない場合,SELinuxの実行を疑う.setenforce 0 と実行して,lxc-dockerが正常に実行できた場合は,SELinuxのせいなので,/etc/selinux/configの中のSELINUXの値をdisabledにする.

コンテナ内から外部にネットワークがつながらない

ひとまずホストOSのiptablesを止めてみる(Stopだけだと正常に通信できない場合が事例としてあったので,その場合はStopしてchkconfigから自動起動をOFFにして再起動して試してみる).
勿論iptablesが必要な場合は,コンテナからホストへの仮想NICの通信をiptablesで許可してあげればOK.

ulimit: open files: cannot modify limit: Operation not permitted

コンテナ内でulimitを設定する際に出ることがあります.例えばmongodの起動スクリプト(/etc/init.d/mongod ).
まずコンテナ内で ulimit -aoepn files (-n) の値を確認し,その値が今設定しようとしている値より小さく,かつ,その場で ulimit -n 65535 等を実行した際にも↑のエラーメッセージがでる場合,一度コンテナ外に出て,ホスト側で下記を実行する.

# /etc/init.d/lxc-docker stop
# ulimit -n 65535
# /etc/init.d/lxc-docker start

要するに,一度docker daemonを止めて,ホスト側のulimit -nの数値を上げ,再度daemonを起動する.その後,コンテナを起動し,内部のulimit -n の値を確認すると,同様に65535になっている.

参考:https://groups.google.com/forum/#!topic/docker-user/T45Kc9vD804

ちなみに,ubuntu環境でDockerを実行していた場合,/etc/init/docker.conf に下記記述(数値は適当.要はコンテナ内で設定されるものより大きければ良い)を追記して,sudo service docker restart と実行すれば良い

limit nofile 262144 262144
30
28
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
30
28