関連記事
- DockerでIPython Notebookを動かして、数え上げおねえさんを救う: misc
- Dockerで音を鳴らす
- JavaScriptをDockerを使って黒い画面に表示する
- Dockerやって知ったmoshの残念な点
- OSXでDocker入れるとTimeMachineが遅くなるかも #solved
- Dockerやって色々勉強になってる件
- Dockerでninix-ayaを動かそうとしている中での気付き(その3)
- Dockerでninix-ayaを動かそうとしている中での気付き(その2)
- Dockerでninix-ayaを動かそうとしている中での気付き(その1)
- OSXでDocker使っていてssh接続で怒られる時に対処法
- Docker入れてからのVirtualBoxのアップデート
コンテナ間の連携
Postgresqlの公式のイメージとかをコンテナ間の連携を使って使うことが出来る模様。
関連オプション
--link
連携したいコンテナ名:エイリアス名
コンテナ内に連携したいコンテナのポート番号やIPをもった環境変数が現れる
Link
ファイルの共有
この仕掛けを使うことで、boot2dockerな環境で、boot2dockerの自作を頑張らずに、Dockerらしいファイル共有が出来る模様。
用語
- データボリューム
-
データボリュームコンテナ
関連オプション
-v ボリューム名
ボリューム名の例 /data1,/var/data1
--volumes-from コンテナ名
事前に作ったコンテナのボリュームを同じ場所にマウントする感じの動き。
Link
Dockerfileを作ったら
sudo docker build -t mygodevenv . sudo docker run -i -t mygodevenv
コンテナをファイルに落とす
ただし、同一ホスト内でしか有効でないとの記事もあり、バックアップ方法の確立も課題かも。
docker ps docker export 0123456789 > img.tar
cat img.tar |docker import - hoge:test
ネットワーク
dockerコマンドで立ち上げたやつに外から繋ぎに行くには
dockerコマンドで立ち上げたやつからホストに繋ぎに行くには
- Dockerのコンテナ内からはとくに意識することなく外界にアクセスできる。
- 特段の設定なしで、ホストがローカルIPでもこれを指定することで、例えば、ホストのHTTPサーバー等へアクセス可能
- Dockerコンテナ内のifcoonfigで出てくるIPアドレスからのアクセスになる
- OSXの場合、boot2dockerかましているので、ホストにSshしたら、ホスト自身のローカルIPアドレスからのアクセスと見える(last|headで確認)
一般教養
nsenter
イメージ
コンテナ
なんかの単位らしいことはわかるDockerfileで作られるのが1コンテナ?
=>
Dockerfileの1行ごとにコンテナとコンテナIDが作られ、コンテナは親からの差分を保存
Dockerfile
どこに書けばいいか
OSXの場合、ローカルの適当な空の作業ディレクトリを用意してそこに記述すればよかった。「-v」はOSX上で使えないくせにADDは問題なく使え、ローカルファイルのイメージへの追加は行える。
Dockerfileとは
OSのスクラッチイメージからアプリが動くまでを書いたコード
Ubuntuのsshdでめんどくさいからrootでssh出来るようにするには
以下で出来た(やや冗長な気がするけど、実績重視でw)
RUN apt-get install -y openssh-server RUN /etc/init.d/ssh start RUN /etc/init.d/ssh stop # sshdの設定ファイルのカスタマイズ RUN sed -ri 's/PermitRootLogin without-password/PermitRootLogin yes/g' /etc/ssh/sshd_config RUN sed -ri 's/UsePAM yes/#UsePAM yes/g' /etc/ssh/sshd_config RUN sed -ri 's/#UsePAM no/UsePAM no/g' /etc/ssh/sshd_config # rootのパスワード設定 ENV ROOTPASSWORD ninix123 RUN echo "root:${ROOTPASSWORD}" |chpasswd # sshdを動かす CMD /usr/sbin/sshd -D EXPOSE 22
OSX編
アップデートどうやんの?
./boot2docker stop ./boot2docker download ./boot2docker start
これで少なくとも boot2docker、docker本体はアップデートできそうな気配だが、OSX内のdockerコマンドはどうなんだろか?
やりたいこと
- Cloud9 IDE
- Google App Engine
- ninix-ayaの最新版をDockerで動かす
LinuxのホストでもOSXみたいにsudo付けずに動かすやり方
dockerグループにsudoしたくないアカウントを追加すれば良い
sudo gpasswd -a ユーザーID docker
Ubuntuのデスクトップにログイン済みの場合、一旦ログアウトして、入りなおすとdockerコマンドがsudoなしで使えるようになる