0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

第02回 Dockerイメージの導入、各種コマンド等の学習

Last updated at Posted at 2019-06-05

はじめに

本文書を参照頂きありがとうございます。
この文書は社内勉強会に向けた文書である為、一部期待値と異なる表現、記載がある場合がありますので、ご利用になられる際はその辺りも加味して頂いてご利用下さい。

Dockerイメージの導入(nginx)

前回まででDocker環境をRaspberry Piに構築し、HelloWorldイメージの実行まで実施しました。
今回はnginxのイメージを導入してみます。
参考URL:https://hub.docker.com/r/tobi312/rpi-nginx/
※nginxは最近人気のWebサーバです。( https://ja.wikipedia.org/wiki/Nginx

pi@raspberrypi:~ $ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
hello-world         latest              618e43431df9        5 months ago        1.64kB
pi@raspberrypi:~ $ 
pi@raspberrypi:~ $ docker pull tobi312/rpi-nginx
Using default tag: latest
latest: Pulling from tobi312/rpi-nginx
dc95218aa9a9: Pull complete 
08105d289242: Pull complete 
943cb8ac165f: Pull complete 
2bcf02afc443: Pull complete 
c6e1574200da: Pull complete 
d52d57d897d4: Pull complete 
9a065381e3e0: Pull complete 
Digest: sha256:8e71f57b18e3cb093d6b5a58b5c4c0ef463c5c47be5332d0af3ff042e474add5
Status: Downloaded newer image for tobi312/rpi-nginx:latest
pi@raspberrypi:~ $ 
pi@raspberrypi:~ $ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
tobi312/rpi-nginx   latest              7fb0435a7b74        5 weeks ago         168MB
hello-world         latest              618e43431df9        5 months ago        1.64kB
pi@raspberrypi:~ $ 

下記のコマンドでnginxを起動します。

pi@raspberrypi:~ $ docker run --name nginx -d -p 80:80 tobi312/rpi-nginx
63623a2ed45192063dd06022e03fbf3c066c85c781b8fe2285d48df3dd753286

http://IPアドレス
でnginxのスタートアップ画面が表示されました。
スクリーンショット 2019-06-03 12.01.52.png

数秒、、、は言い過ぎですが、
数分でWebサーバの導入、起動が完了です。

Dockerイメージの導入(PostgreSQL)

参考URL:https://hub.docker.com/r/tobi312/rpi-postgresql/

イメージを取得します。

pi@raspberrypi:~ $ docker pull tobi312/rpi-postgresql:9.6
9.6: Pulling from tobi312/rpi-postgresql
7da8358bc620: Pull complete 
40208d212647: Pull complete 
8d55d8b6ecff: Pull complete 
3620a34fc408: Pull complete 
b823367bf6c3: Pull complete 
eaad29dc0d6b: Pull complete 
932dfb4f2773: Pull complete 
1edf78336a12: Pull complete 
74f0bc52ab1c: Pull complete 
d37629a3d04e: Pull complete 
3189bef8ed49: Pull complete 
bc2336cbf38e: Pull complete 
e768b84089c2: Pull complete 
ebf4e3bf65e4: Pull complete 
ea1142ebf907: Pull complete 
09b0d86104a5: Pull complete 
Digest: sha256:038c592d4e7691bc4ed9fc84258b2c3e4c36816f63a4740a7c6c3a0a177ba654
Status: Downloaded newer image for tobi312/rpi-postgresql:9.6

稼働用のワークディレクトリを作成します。

pi@raspberrypi:~ $ mkdir -p /home/pi/.local/share/postgresql

イメージを起動します。

pi@raspberrypi:~ $ docker run --name pgsql -d -p 5432:5432 -v /home/pi/.local/share/postgresql:/var/lib/postgresql/data -e POSTGRES_PASSWORD=postgres tobi312/rpi-postgresql:9.6
a9c0c8cb8595199f8cdbd671f5a0522862f36996068daee1c663815a34ce8cb2

正常に起動したようです。

pi@raspberrypi:~ $ docker ps
CONTAINER ID        IMAGE                        COMMAND                  CREATED             STATUS              PORTS                    NAMES
a9c0c8cb8595        tobi312/rpi-postgresql:9.6   "docker-entrypoint.s…"   2 minutes ago       Up 2 minutes        0.0.0.0:5432->5432/tcp   pgsql

Raspberry Piのpsコマンドでもプロセスが確認できます。

pi@raspberrypi:~ $ ps -ef | grep postgres
999       1069  1052  0 08:15 ?        00:00:00 postgres
999       1234  1069  0 08:15 ?        00:00:00 postgres: checkpointer process  
999       1235  1069  0 08:15 ?        00:00:00 postgres: writer process  
999       1236  1069  0 08:15 ?        00:00:00 postgres: wal writer process  
999       1237  1069  0 08:15 ?        00:00:00 postgres: autovacuum launcher process  
999       1238  1069  0 08:15 ?        00:00:00 postgres: stats collector process  
pi        1321  1253  0 08:24 pts/1    00:00:00 grep --color=auto postgres

その他のDockerイメージ

好きなものを取り寄せて起動してみましょう。
ここではCentOSを取得してみます。

pi@raspberrypi:~ $ docker pull centos:centos7

ここでrunしてみます。

pi@raspberrypi:~ $ docker run -it -d --name centos7 centos:centos7

・・・で、この後色々あって放置していました。
取得したのは大分前なので、現在の状態を確認します。

pi@raspberrypi:~ $ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
centos              centos7             9f38484d220f        5 months ago        202MB

居ました、現在は停止しています。

pi@raspberrypi:~ $ docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                     PORTS               NAMES
c33197a449f6        centos:centos7      "/sbin/init"        13 days ago         Exited (255) 11 days ago 

起動してみます。この時指定するのはCONTAINER ID。

pi@raspberrypi:~ $ docker start c33197a449f6
c33197a449f6

サクッと上がったので、状態を確認してみます。

pi@raspberrypi:~ $ docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
c33197a449f6        centos:centos7      "/sbin/init"        13 days ago         Up 3 seconds                            TEST

無事に起動していました。
続いて、起動したCentOSへログインしてみます。

# 起動したCentOSへログイン
pi@raspberrypi:~ $ docker exec -it c33197a449f6 bash
[root@c33197a449f6 /]# 
[root@c33197a449f6 /]# hostname
c33197a449f6
[root@c33197a449f6 /]# cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core) 
[root@c33197a449f6 /]# 

redhat-releaseファイルを確認して、立ち上がっているコンテナが間違いなくCentOSであることを確認しました。

Dockerを操作するコマンド

Dockerを操作するコマンドは沢山あるのですが、以下の参考リンクと共にご紹介しておきます。
※ご参考:Dokerコマンド一覧

番号 コマンド 用途
1 pull Dockerイメージを取得する
2 run DockerイメージからDockerコンテナを作成する
3 exec Dockerコンテナ上のコマンドを実行する
4 push DockerイメージをDockerレジストリに送る
5 images Dockerホスト上のDockerイメージの一覧を表示する
6 build DockerイメージをDockerfileに基づいて作成する
7 start 停止中のDockerコンテナを起動する
8 stop 起動中のDockerコンテナを停止する
9 rm 停止中のDockerコンテナを削除する
10 rmi Dockerホスト上のDockerイメージを削除する
11 kill 起動中のDockerコンテナを強制停止する
12 ps Dcokerホスト上のDockerコンテナ一覧を表示する
13 login Dockerレジストリにログインする
14 logout Dockerレジストリからログアウトする
15 commit Dockerコンテナの変更状態から新しいDockerイメージを作成する
16 cp Dockerコンテナとローカルファイルシステムの間でファイル/ディレクトリコピーを行う
17 logs Dockerコンテナのログを取得する
18 save Dockerイメージの内容をtarアーカイブとして出力する
19 load tarアーカイブからDockerイメージを読み込む
20 tag 既存のDockerイメージから新しいDockerイメージ名を作成する
21 history Dockerイメージの生成履歴を表示する

※Dockerコマンド応用編

    全コンテナ停止: docker stop $(docker ps -q)
    全コンテナ削除: docker rm $(docker ps -q -a)
    全イメージ削除: docker rmi $(docker images -q)

という感じです。
第02回、お疲れ様でした。

0
1
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
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?