dockerの設定ファイル在り処
- centos
/etc/sysconfig/docker
docker設定ファイルに書くこと
- DNS設定
DOCKER_OPTS="--dns DNSサーバのIP”
- proxy設定
export http_proxy=...
export https_proxy=...
- ドライバの設定
(なんかdockerのドライバじゃ動かなかったので)
other_args=”--exec-driver-lxc"
設定ファイルを変更したら,ちゃんとdockerをリスタートすること
DockerFile書き方
From ubuntu:latest #基本とするイメージ
ENV http_proxy ... #環境変数の設定
RUN apt-get update -y #コンテナをbuildしたときに呼び出されるコマンド
CMD /bin/bash #コンテナを起動したときに呼び出されるコマンド
その後で
docker build -t タグ名 .
最後の.はDockerfileが格納されているフォルダ。
DockerfileをGitか何かでバージョン管理して,過去の状態に戻ってビルドしなおすとか,そういうのもできるし,フォルダごとにDockerfile書いておいて,そいつを参照するって使い方もできる。
コンテナ起動
docker run --name イメージ名 -i -t タグ名
-i
はinteractiveらしい。サーバとかバックグラウンドで動作するコンテナは -d
(daemon)
[ハマった] sshでログインできるようにする
(いまさらながら) knife-soloの手順書のレビューをしてほしいという要求に対して,サラのdockerコンテナが欲しかったのだけれど,sshがつながらなかったので
ちなみにsshdは基本的には立ち上げない方がいいらしい。
FROM centos:centos6
ENV http_proxy...
ENV https_proxy...
RUN yum update -y
RUN yum install -y openssh-server
CMD /etc/init.d/sshd start
docker build -t centos6/sshd .
で作ったコンテナにsshでアクセスしようとする。
IPは
docker inspect centos6/sshd
とかやれば書いてある。
[soteam@ps-moni06 ~]$ ssh user@172.17.0.45
user@172.17.0.45's password:
Last login: Wed Oct 15 09:25:58 2014 from 172.17.42.1
Connection to 172.17.0.45 closed.
と,すぐコネクションが切れる現象発生。
よく分かっていないのだけれどPAMってのが悪さしているらしいので,/etc/pam.d/sshd
を
account include password-auth
password include password-auth
# pam_selinux.so close should be the first session rule
session required pam_selinux.so close
#session required pam_loginuid.so
session optional pam_loginuid.so ## required→optionalに変更
# pam_selinux.so open should only be followed by sessions to be executed in the user context
session required pam_selinux.so open env_params
session optional pam_keyinit.so force revoke
session include password-auth
としてやって解決した。
参考URL:
http://blog.glatts.com/blog/imai/?p=949
http://open-groove.net/linux/pam-sshd/
これからやること
- ユーザの設定
- ホームディレクトリの設定 (今のところ/になっちゃう)
- 設定ファイルの変更 (RUN echo ”” > ファイル がうまく動かない)
- ネットワークの設定 (コンテナ同士の接続をSDNっぽく → Docker on Dockerで,SDDCみたいなことがしたい)
- attachとかの振舞いをもう少し理解する。(どうもexitしちゃうと,detachにならんらしい)