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 3 years have passed since last update.

docker 基本的な流れについてまとめてみた

Posted at

この記事の目的

dockerの全体像を簡単な例を作成しつつ理解する

dockerの使い方などはなんとなくわかってきたけど、
いまいち全体像がイメージできない…
という方は見てもらえればと思います

作業概要

今回は次の流れでdockerを実施してみます

  1. dockerfileからimage作成(build、pull)
  2. imageからコンテナ作成(create)
  3. コンテナを動かしてみる
  4. コンテナからimage作成(commit)

docker基本図

1.PNG

要素について

  • dockerfile
    公開されているdocker imageをそのまま使用するのではなく、
    追加の設定などを行ったdocker imageを作成したいときに使用します

  • image
    コンテナの立ち上げに必要なファイルをまとめてあります
    読み込み専用

  • コンテナ
    dockerのイメージを元に作成される仮想環境

  • dockerhub
    docker 社が提供しているイメージ管理用クラウドサービス

dockerfileからimage作成

画像赤枠部分について実施してきます
2.png

dockerfile作成

今回は次のようなdockerfileを作成しました

FROM ubuntu

RUN apt update

WORKDIR /opt/

CMD ["/bin/bash"]

FROMでベースとなるイメージを指定します
この時指定したイメージをpullしていない場合、pullも同時に行ってくれます

dockerfileに記載されているコマンドは、
FROM,RUN,WORKDIRがdocker buildのタイミングで実行、
CMDがdocker startのタイミングで実行されます

image作成

dockerfileからimageを作成する際にはbuildコマンドを使用します
例と同じコマンドを使用する場合、dockerfileのあるフォルダに移動してからコマンドを実施してください

docker build -t test:1.0 .

コマンドの実施後、docker images で確認すると、新しいimageが作成されています

REPOSITORY              TAG       IMAGE ID       CREATED         SIZE
test                    1.0       cb7375570b67   2 minutes ago   103MB

imageからコンテナ作成

3.png

docker imageからコンテナを作成する際にはcreateコマンドを使用します

docker create -it --name testdayo test:1.0

コマンドの実施後、docker ps -a で確認すると、新しいコンテナが作成されています

CONTAINER ID   IMAGE                   COMMAND                  CREATED         STATUS                    PORTS     NAMES
9ecd3887bb6e   test:1.0                "/bin/bash"              7 seconds ago   Created                             testdayo

コンテナを動かしてみる

作成したコンテナを起動するにはstartコマンドを使用します

docker start -i testdayo

起動し、bashが使用できるようになっていれば成功です

root@9ecd3887bb6e:/opt#
root@9ecd3887bb6e:/opt# pwd
/opt

コンテナからイメージ作成

今回はapacheのインストールを行った、イメージを作成します
4.png

apacheのインストール

まずは事前にインストールされていないことを確認します

apache2 -v
bash: apache2: command not found

apache2のインストールを行います

apt install apache2

コマンド実施後、インストールされたことを確認します

apache2 -v
Server version: Apache/2.4.41 (Ubuntu)
Server built:   2021-07-05T07:16:56

exitでbashから抜けます

コンテナからimage作成

apacheをインストールしたコンテナでコミットを実施します

docker commit testdayo test2

イメージが作成されているか確認します

docker images

REPOSITORY              TAG       IMAGE ID       CREATED          SIZE
test2                   1.0       01b3cf3ea958   16 seconds ago   226MB
test                    1.0       2a7093e5c996   8 days ago       103MB

apacheの起動確認

コンテナを作成し、動かします

docker create -it -p 8080:80 --name testdayo2 test2:1.0
docker start -i testdayo2

apacheを起動し、ブラウザからlocalhost:8080に接続します

/etc/init.d/apache2 start

/etc/init.d/apache2 status
 * apache2 is running

画像のような画面がでれば起動ができています

5.PNG

参考 docker docks

終わり

dockerのおおまかな流れが理解したいと思いまとめてみました
間違っている部分があれば教えてください

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?