LoginSignup
0
0

More than 5 years have passed since last update.

Dockerコマンド チュートリアル

Posted at

Dockerの基本的な操作方法を記載しておく。GUIツールを利用してみたが、やはりCLIのほうがうまく動作するためCLIでの操作を推奨する。Dockerを扱う上での必須理解項目は「イメージ」、「コンテナ」である。

1.基本的な操作

イメージの検索

DockerHubからイメージをキーワード検索する。

  $ docker search centos
  NAME                           DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
  centos                         The official build of CentOS.                   3500      [OK]       
  jdeathe/centos-ssh             CentOS-6 6.9 x86_64 / CentOS-7 7.3.1611 x8...   77                   [OK]

イメージの取得

イメージ名:タグ名を指定して取得する。タグ名を明記しない場合は「latest」が付与される。

  $ docker pull centos:latest
  latest: Pulling from library/centos
  d5e46245fe40: Pull complete 
  Digest:sha256:aebf12af704307dfa0079b3babdca8d7e8ff6564696882bcb5d11f1d461f9ee9
  Status: Downloaded newer image for centos:latest

PC上に保存されているイメージを表示

  $ docker images
  REPOSITORY                    TAG                 IMAGE ID            CREATED             SIZE
  centos                        latest              3bee3060bfc8        12 days ago         193 MB

PC上に保存されているイメージを削除

  $ docker rmi 3bee3060bfc8
  Untagged: centos:latest
  Untagged: centos@sha256:aebf12af704307dfa0079b3babdca8d7e8ff6564696882bcb5d11f1d461f9ee9
  Deleted: sha256:3bee3060bfc81c061ce7069df35ce090593bda584d4ef464bc0f38086c11371d
  Deleted: sha256:dc1e2dcdc7b6ff86d785fa16cf97464d263d04346a191c57b5ca8a66b4155861

イメージの起動

方法1はexitするとコンテナが終了してしまう。方法2はexitしてもコンテナが終了しない方法である。ただし、方法1の場合でも「Ctrl+p,Ctrl+q」によりコンテナから脱出かつコンテナは終了しない。

方法1

  $ docker run -it centos:latest /bin/bash
  [root@2fe147e75dc9 /]# uname -a
  Linux 2fe147e75dc9 4.9.27-moby #1 SMP Thu May 11 04:01:18 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
  [root@2fe147e75dc9 /]# cat /etc/redhat-release 
  CentOS Linux release 7.3.1611 (Core)

方法2

  $ docker run -itd centos:latest
  4a82a4ec72bf1b28b2abe84da1b4995c23cf4aa74f32364bb3e81d75db14dd45

起動しているコンテナを確認する

  $ docker ps
  CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
  5c304f72c6d6        centos:latest       "/bin/bash"         3 minutes ago       Up 3 minutes               

起動しているコンテナを停止させる

  $ docker stop 5c304f72c6d6
  5c304f72c6d6

起動しているコンテナを再起動させる

  $ docker ps
  CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
  048697b53b77        centos:latest       "/bin/bash"         19 seconds ago      Up 16 seconds                           lucid_franklin

  $ docker restart 048697b53b77
  048697b53b77

  $ docker ps
  CONTAINER ID        IMAGE               COMMAND             CREATED              STATUS              PORTS               NAMES
  048697b53b77        centos:latest       "/bin/bash"         About a minute ago   Up 9 seconds                            lucid_franklin

コンテナに接続する

5で紹介したイメージがコンテナの場合バージョン。
方法1はexitするとコンテナが終了してしまうため、「Ctrl+p,Ctrl+q」すること。方法2はexitしても終了しない。

方法1


  $ docker attach 048697b53b77

方法2


  $ docker exec -it 82f647b208ea /bin/bash
  [root@82f647b208ea /]# exit
  exit

  $ docker ps
  CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
  82f647b208ea        centos:latest       "/bin/bash"         30 seconds ago      Up 28 seconds                           nifty_wright

2.少し高度な操作

ポートのマッピング

基本


  $ docker run -d -p 8080:80 <image_name> -it /bin/bash

IPアドレスも指定

  $ docker run -d -p 192.168.0.219:8080:80 <image_name>

ボリュームのマッピング

  $ docker run -d -v /tmp/:/mnt/ <image_name>

コンテナのイメージ化

  $ docker commit <Container ID> <image_name>:<tag>

実用的なイメージの起動方法

  $ docker run -it -p 8000:8000 -v /tmp/006_log/01_arena/:/var/log/cowrie/ splunk:latest

イメージのエクスポート

  $ docker save <image_name>:<tag_name> > <filename>
  $ docker save --output <filename> <image_name>:<tag_name>
  $ docker save -o <filename> <image_name>:<tag_name>

イメージのインポート


  $ docker load < <filename>
  $ docker load --input <file_name>
0
0
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
0
0