LoginSignup
41
40

More than 1 year has passed since last update.

(備忘録)Dockerコマンド

Last updated at Posted at 2019-02-24

1. はじめに

Dockerコマンドについての自分への備忘録としてまとめてみました。ご参考になれば幸いです。

参考:コマンドラインリファレンス
参考:Docker入門 Dockerコンテナのステータスを調べてみよう

2. Dockerコマンド

コマンドライン

// docker一括実行(docker pull & docker create & docker startを一括実行)
$ docker run hello-world

// dockerイメージ取得(イメージはコンテナの素)
$ docker pull alpine

// dockerイメージ一覧表示
$ docker image ls

// dockerコンテナ生成
$ docker create -it alpine

// dockerコンテナ一覧表示
$ docker container ls -a

// dockerコンテナ起動
$ docker start [CONTAINER ID]

// dockerコンテナ停止
$ docker stop [CONTAINER ID]

// dockerコンテナOSへログイン
$ docker run -it alpine bin/sh

// dockerコンテナOSからログアウト
CTRL + P + Q

// dockerコンテナ削除
docker rm [CONTAINER ID]

// dockerコンテナリネーム
$ docker rename [OLD CONTAINER NAME ] [NEW CONTAINER NAME]

// dockerイメージの削除
docker rmi [IMAGE ID]

// dockerイメージ一括削除
$ docker image prune

// dockerログ確認
$ docker logs [CONTAINER ID]

3.Dockerコンテナサンプル&動作確認

hello-world

  • 動作確認:実行結果の一部に「Hello from Docker!」が出力される。
  • 終了すると --rm オプションをつけているのでコンテナは削除される。
コマンドライン
$ docker run --rm hello-world

WEBサーバ(nginx)

  • 動作確認:起動後、ブラウザからhttp://localhost:8080にアクセスして「Welcome to nginx!」が出力されていればOK。
  • 終了すると --rm オプションをつけているのでコンテナは削除される。
コマンドライン
$ docker run -it --rm -p 8080:80 nginx:latest

php7.0-apache

コマンドライン
$ docker run -d -p 8080:80 --name php7apa php:7.0-apache

#ログイン
$ docker exec -it php7apa2 bash

WEBサーバ(httpd:alpine)

  • 動作確認:起動後、ブラウザからhttp://<サーバのIPアドレス>:8080にアクセスして「It works!」が出力されていればOK。
  • 停止すると --rm オプションをつけているのでコンテナは削除される。
コマンドライン
// デタッチド・モードとしてバックグラウンドでコンテナを実行
$ docker run -d -p 8080:80 --name docker-httpd --rm httpd:alpine

// コンテナプロセス確認
$ docker ps

// 停止
$ docker kill docker-httpd

4. Dockerデーモンコマンド

コマンドライン

// dockerデーモン起動
$ sudo service docker start

// dockerデーモンステータス確認
$ sudo service docker status

// dockerデーモン停止
$ sudo service docker stop

5. WSL(Windows Subsystem for Linux)でDocker利用する際のメモ

コマンドプロンプト(Dockerデーモンが起動していない時に実行する)
$ sudo cgroupfs-mount && sudo service docker start

  • WSL(Windows Subsystem for Linux)側のみでDockerコマンドを利用し、PowerShell(パワーシェル)側ではDockerコマンドを利用しない

6. WSL(Windows Subsystem for Linux)でdocker-compose利用する際のメモ

※2019年3月2日時点の結論:
おそらくWidnows10Pro WSL では、まだdocker-composeは利用できない。

7.docker-composeコマンド

  • 複数のdockerコンテナをまとめて起動したい場合は、docker-compose.ymlファイルを定義し、docker-composeコマンドを利用する。
コマンドライン
// docker-compose.ymlのビルド
$ docker-compose build
$ docker-compose up –d

// docker-composeの起動
$ docker-compose start

// docker-composeの一覧表示
$ docker-compose ps

// docker-composeの停止
$ docker-compose stop

// docker-composeの再起動
$ docker-compose restart

// コンテナの削除
$ docker-compose down

// コンテナの削除&イメージの削除
$ docker-compose down --rmi all

// docker-composeログの確認
$ docker-compose logs

8.docker-compose.ymlサンプル&動作確認

hello-world

  • 動作確認:実行結果の一部に「Hello from Docker!」が出力される。
docker-compose.yml
version: "2"

services:
  app:
    image: hello-world

コマンドライン
$ sudo docker-compose up

9. Dockerチュートリアル

10. docker-composeチュートリアル

11. Dockerイメージダウンロードサイト

12. docker login

  • dockerコマンド実行時に認証エラーが発生した場合は、docker login コマンドを用いて認証をおこなう。この際、メールアドレスではなくてユーザ名を用いてログインする必要があると思われる。
  • docker login での Sign in について
Error response from daemon: Get https://registry-1.docker.io/v2/library/hello-world/manifests/latest: unauthorized: incorrect username or password.

13. AWS Cloud9環境でdocker-composeコマンドを使えるようにする

  • AWSアカウントをお持ちでdocker-composeを試したいのでしたら、Windows WSLやMac OS Xでdocker-composeコマンドが利用できる環境を整えるよりもお手軽にdocker-composeコマンドが使えるようになると思います。

  • 取得してくるdocker-composeのバージョンやインストールコマンドはリリース一覧から確認できます。

コマンドライン
// 作業フォルダに移動
$ cd ~/environment

// curlコマンドでdocker-composeを取得
$ sudo curl -L https://github.com/docker/compose/releases/download/1.21.2/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

// docker-composeコマンドに実行権限を付与
$ sudo chmod +x /usr/local/bin/docker-compose

// docker-compose.ymlを作成する
// touch docker-compose.yml で空ファイルを作成して
// vi docker-compose.yml でviエディタでdocker-compose.ymlを編集&保存

// docker-compose upコマンドでdocker-compose.yml定義を実行
$ docker-compose up

14. おわりに

参考になれば幸いです。

2019/02/24 TAKAHIRO NISHIZONO

15. 参考:Docker Compose入門

wordpress

docker-compose.yml
version: '3.1'

services:

  wordpress:
    image: wordpress
    restart: always
    ports:
      - 8080:80
    environment:
      WORDPRESS_DB_HOST: db
      WORDPRESS_DB_USER: exampleuser
      WORDPRESS_DB_PASSWORD: examplepass
      WORDPRESS_DB_NAME: exampledb

  db:
    image: mysql:5.7
    restart: always
    environment:
      MYSQL_DATABASE: exampledb
      MYSQL_USER: exampleuser
      MYSQL_PASSWORD: examplepass
      MYSQL_RANDOM_ROOT_PASSWORD: '1'
コマンドライン
// 起動(バックグラウンド(デタッチド・モード))
$ sudo docker-compose up -d

// WordPressにアクセス
// ブラウザで、http://localhost:8080 を開く。

// 停止
$ sudo docker-compose stop

// 起動
$ sudo docker-compose start

// 停止・終了&削除
$ sudo docker-compose down -v

WEBサーバ(httpd:alpine)

コマンドライン
// ホームディレクトリに移動
$ cd 

// プロジェクトディレクトリを作成
$ mkdir docker-httpd

// プロジェクトディレクトリに移動
$ cd docker-httpd

// docker-compose.ymlファイルを作成
$ vi docker-compose.yml
docker-compose.yml
version: '3'
services:
  web:
    build: .
    ports:
      - "8080:80"
コマンドライン
// Dockerfileファイルを作成
$ vi Dockerfile
Dockerfile
FROM httpd:alpine
コマンドライン
// ビルド
$ docker-compose build

// プロジェクトを起動(バックグラウンド(デタッチド・モード))
$ sudo docker-compose up -d

// プロセスを確認
$ docker-compose ps

// httpdにアクセス
// ブラウザで、http://<サーバのIPアドレス>:8080 を開く。

// プロジェクトを停止
$ docker-compose stop

// 再び起動
$ docker-compose start

// コンテナ内にログイン(webサービスに対しbashプロセスを起動)
$ docker-compose exec web /bin/bash

// コンテナ内からログアウト
bash-5.0# exit

// コンテナの停止・終了&プロジェクトの削除
$ sudo docker-compose down -v
コマンドライン
// index.htmlファイルの作成
$ echo '<h1>Hello World</h1>' > index.html

// Dockerfileファイルの再編集
$ vi Dockerfile
Dockerfile
FROM httpd:alpine
COPY ./index.html /usr/local/apache2/htdocs/index.html
コマンドライン
// ビルド&プロジェクトを起動(バックグラウンド(デタッチド・モード))
$ docker-compose up -d --build

// プロセスを確認
$ docker-compose ps

// httpdにアクセス
// ブラウザで、http://<サーバのIPアドレス>:8080 を開く。

// コンテナの停止・終了&プロジェクトの削除
$ sudo docker-compose down -v
41
40
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
41
40