インストール

前提

  • 今回の場合、Macを例にしています
  • もろもろのインストールをHomebrew使ってやるので、入れておきましょう: http://brew.sh/index_ja.html

本番

brew tap phinze/homebrew-cask         ← Homebrewの拡張版。*.dmg のもbrewで
brew install brew-cask                ← (末尾に)-v つけるとインストールのさまが詳しく表示される
brew cask install virtualbox         ← 仮想環境(実行するところ?)
brew cask install vagrant             ← 仮想環境構築ツール
git clone https://github.com/coreos/coreos-vagrant
cd coreos-vagrant                       ←← ここから立ち上げ系
vagrant up && vagrant ssh
...
coreos>     → coreos(ま、ようするに仮想環境にログインした的な)
coreos> docker run -it ubuntu bash    ← docker に入っているものを実際に動かす一番シンプルな例

動かす/止める/消す

  • 動かす
    cd coreos-vagrant                       ←← (再掲)仮想環境のcoreosを立ち上げるための準備
    vagrant up && vagrant ssh
    ...
    coreos>     → coreos(ま、ようするに仮想環境にログインした的な)
    coreos> docker run -it ubuntu bash    ← docker に入っているものを実際に動かす一番シンプルな例
  • 止める
    • 表(foreground)で動いているものはそこをexitして抜ければOK
    • 裏(background)で動いているものは
      coreos> docker stop imageID
  • 消す
    • コンテナを消す exitで抜けてもコンテナの情報は「終わりました」状態で置かれているので消すとよかろう
      coreos> docker rm `docker ps -a -q`      ← -a はall、-q はIDを表示。その結果を渡してコンテナを消している
    • イメージを消す buildなりrunなりすると、その途中段階をイメージとして保持している。いらんもんは消すとよかろう
      coreos> docker images      ←イメージがリストされる
      coreos> docker rmi イメージID

設定

Port forwarding

(coreosを落としたところでVagrantfileを開く)
      config.vm.network "forwarded_port", guest:443, host:4430    ← 追記
    end
  end
end
mac> vagrant reload && vagrant ssh
  • ipythonの例
    coreos> docker run -d -p 443:8888 -e "PASSWORD=hoge" ipython/scipyserver

Mac/coreos間のファイルの同期

(coreosを落としたところでVagrantfileを開く)
config.vm.synced_folder "./share", "/home/core/share", id: "core", :nfs => true, :mount_options => ['nolock,vers=3,udp']
↑ コメントアウトはずす + 適宜 書き換え

世の中にあるコンテナ

  • コンテナってのは、あれ入れて、これ入れて、あれしてこうするとかを書いてまるっとしたものだ(テキトーな説明
  • コンテナのレポジトリ先としてDockerHub? ( https://hub.docker.com/ ) ってのがある
  • 使うとき
    coreos> docker run -it Dockerアカウント名/コンテナ名

自分でコンテナを作る

  • 世の中にあるコンテナ 項の使うときよろしく、とりあえずアカウント名とコンテナ名を決めておく(実際にアカウントを作る必要はない)
  • コンテナを置く場所を決める
    (仮に share/dockerの下に置くとする)
    mac> mkdir コンテナ名
    mac> cd コンテナ名
    Dockerfile というファイルを作る
  • Dockerfileを書く
    # Docker container for test
    FROM ubuntu         ← コアになるもの。debian だとコンテナ自体が一番小さいらしい
    MAINTAINER Nakazato T., nz@gmail.com     ← 作者。アドレスとかは適当
    
    RUN apt-get update && \\
            apt-get install -y ... && \\
            rm -rf /var/lib/opt/lists/*
    CMD ["/bin/bash"]
    • docker run -it ubuntu bash とかで上げておいて、ここのコマンドを打ってみて、うまくいったらDockerfileに記載とかしてみる
      • CMDとか、[ ] でくくるときはスペースでsplitして各々を” ”でくくって , でつなぐ。が、動かない場合が(複雑な引数をとる場合)。。。シェルに渡るとは言え、[ ]でくくらないと動く場合もあるようだ
  • 作ったコンテナを動かしてみる
    coreos> docker build -t 作者名/コンテナ名 Dockerfileのディレクトリ
    coreos> docker run -it 作者名/コンテナ名

作ったコンテナをDockerHub?で公開する

GitHub?への登録

  • SourceTree?とか使うなりして書くものを管理するとか

DockerHub?への登録

  • 自分のDockerHub?のサイトに行くとページの右上に”+Add Repository”があるのでクリック
  • Automated Build
  • GitHub?を選択
  • GitHub?に登録したDockerコンテナのレポジトリのありかを選択
  • コンテナ情報の入力
    • Namespaceの項には、Dockerファイルのネームスペース(docker run -it アカウント名/コンテナ名 の「アカウント名とコンテナ名」部分)を記載
    • Tagsの項には、GitHub?でのDockerfileの場所を”Dockerfile Locaton”のところに記載する
  • Create Repositoryをクリック
  • うねうね

  • Dockerコンテナ書くたびにGitHub?でのrepositoryの数が増えるか、もしくは、Dockerとかでまとめると、DockerHub?でうねうねする度に全部が再度 Buildされる感じか

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2015-02-12 (木) 14:55:35 (1679d)