適当にはじめるboot2docker
dockerすごい
- とにかく早い
- ちょっとアレ試したい
- コマンドが結構複雑だけど、GUIも出てる
boot2dockerをインストール
公式サイトにとびインストール、その後boot2dockerを起動
-> アプリケーションからboot2dockerを選ぶと環境変数などを初期化した状態で端末が起動する
作業イメージ
- イメージを取得
- イメージからコンテナを作成する
- コンテナを起動し、アタッチする
- 色々作業する
- コンテナから抜ける
- 状態を残したいのであればコミットする
※アタッチ: dockerで起動したコンテナの標準出力を見ることができ、さらに操作可能な状態にする
早い話が、ターミナル上でも操作対象がコンテナの中身に切り替わる
コマンド一覧
dockerhubからイメージを取得する
$ docker pull <イメージ名>[:タグ]
例: dockerhubからバージョン5のcentos公式イメージを取得する
$ docker pull centos:centos5
イメージ一覧を表示する
$ docker images
イメージからコンテナを名前をつけて作成し、さらにアタッチする
$ docker run -i -t --name=<コンテナ名> <イメージ名> <プロセス名>
例: docker run -i -t --name=golangtest centos:centos5 /bin/bash
-
補足
- iとかtとか
-i, --interactive=true|false
Keep STDIN open even if not attached. The default is false.
-t, --tty=true|false
Allocate a pseudo-TTY. The default is false.
When set to true Docker can allocate a pseudo-tty and attach to the standard input of any container. This can be used, for example, to run a throw‐
away interactive shell. The default is value is false.
- プロセス名って?勉強中です。
最初から起動するプログラムを指定してコンテナを走らせることができるようです。
バッチのテストとかですかね。
シェルを立ち上げるとインタラクティブに操作可能になります。
起動中のコンテナの一覧をみる
$ docker ps
停止中のコンテナも含め一覧表示する
$ docker ps -a
停止中のコンテナを起動させ、さらにアタッチする
$ docker start -i <コンテナ名>
例: docker start -i golangtest
起動したコンテナを操作するためアタッチする
$ docker attach <コンテナ名>
例: docker attach golangtest
操作中のコンテナから抜ける(停止させない)
CTRL-p CTRL-q
操作中のコンテナを停止させる
$ exit
or
ctrl + d
現在のコンテナの内容を確定し、イメージとして保存する
$ docker commit <コンテナ名> <保存するイメージ名>[:<タグ>]
例: $ docker commit test centos:golang
ホストコンピュータと特定の場所を共有する
$ docker run -i -t -v <ホスト側のパス>:<コンテナ側のパス> <イメージ名[:タグ]> <実行するプロセス名>
例: $ docker run -i -t -v $HOME/dockershare:/usr/share/test/html --name=mounttest centos:centos-golang /bin/bash