Help us understand the problem. What is going on with this article?

実例で学ぶDockerコマンド

More than 5 years have passed since last update.

Docker Cheat SheetというDockerの基礎のまとめが良かったので翻訳してみた(Docker 虎の巻).このまとめは説明は十分にあるが,例がほとんどない.実例を使って,コンテナとイメージに関する基礎コマンドをまとめてみる.

OS XでDockerを使う場合

vagrantを使ってる場合は今すぐ1.4にバージョンを上げる.
Download Vagrant - Vagrantより.dmgをダウンロードしてきてインストール.

vagrant init precise64 http://files.vagrantup.com/precise64.box

Vagrantfileを以下のようにすれば,すぐにDockerを使える.

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "precise64"
  config.vm.provision :docker do |d|
    d.pull_images "ubuntu"
  end  
end

ログイン

vagrant ssh 

準備

コンテナのIDをいちいち保持しておくのは面倒,忘れるので,以下のaliasをホスト側で設定しておくと直近に起動したコンテナのIDを呼び出すことができるようになり便利 (15 Docker tips in 5 minutes).

alias dl='docker ps -l -q'

コンテナ

コンテナを作成する.-dオプションでバックグラウンドで実行する.

docker run -d ubuntu /bin/sh -c "while true; do echo hello world; sleep 1; done"

コンテナを停止する.

docker stop `dl`

コンテナを起動する.

docker start `dl`

コンテナを再起動する.

docker restart `dl`

起動中のコンテナに接続する.

docker attach `dl`

コンテナ内のファイルをホストにコピーする.

docker cp `dl`:/etc/passwd .

ホストのディレクトリをコンテナにマウントする.

docker run -v /home/vagrant/test:/root/test ubuntu echo yo

コンテナを削除する.

dockr rm `dl`

コンテナの情報

起動中のコンテナを表示する.停止中のコンテナも表示するには,-aオプション.

docker ps

コンテナの情報(IPなど)を表示する.

docker inspect `dl`

コンテナのログを表示する.

docker logs `dl`

コンテナのプロセスを表示する.

docker top `dl`

イメージ

コンテナからイメージを作成する.タグ名は<username>/<imagename>が奨励されている

docker run -d ubuntu /bin/sh -c "apt-get install -y hello"
docker commit -m "My first container" `dl` tcnksm/hello

Dockerfileからイメージを作成する.

echo -e "FROM base\nRUN apt-get install hello\nCMD hello" > Dockerfile
docker build tcnksm/hello .

イメージ内にログインする.-rmオプションをつけるとコンテナの停止後にそのコンテナは破棄される.

docker run -rm -t -i tcnksm/hello /bin/bash

イメージをリモートレポジトリにアップロードする.あらかじめDocker indexにアカウントを作成しておく必要がある.今回の例はこちら.

docker login
docker push tcnksm/hello

イメージを削除する.

docker rmi tcnkms/hello

イメージの情報

イメージ一覧を表示する.

docker images

イメージの詳細情報(IPなど)を表示する.

docker inspect tcnksm/hello

イメージのコマンド履歴を表示する.

docker history tcnksm/hello
mercari
フリマアプリ「メルカリ」を、グローバルで開発しています。
https://tech.mercari.com/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした