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

Dockerライフサイクルをハンズオンで学ぶ

More than 5 years have passed since last update.

年末はいかがお過ごしでしょうか。
アイアンマン大好き 千葉です。

今日は、Dockerのライフサイクルをハンズオンで学びたいと思います。

Dockerのライフサイクル

dockerライフサイクル.png

  • pullでDockerHubからCentOSやUbuntuのイメージをローカルにダウンロード
  • ダウンロードしたイメージからrunで、コンテナを起動
  • コンテナはstop、start、restartができる
  • コンテナを停止後にcommitすることで、イメージを作成できる
  • pushでDockerHubにイメージを保存できる
  • コンテナの削除はrm
  • イメージの削除はrmi

ハンズオン環境

  • AWSのEC2上で実施
  • OSはCentOS6.5

いざ、ハンズオン開始

※名前となっている箇所は、あなたの名前を入力してください(タグで誰のコンテナか見分けるために)

EC2インスタンス作成(CentOS)

CentOSでEC2インスタンスを作成し、sshでの接続を済ませてください。

Dockerインストールと起動

# yum -y update
# yum -y install wget


# sudo rpm --import http://dl.fedoraproject.org/pub/epel/RPM-GPG-KEY-EPEL-6
# sudo yum -y install http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
# sudo yum -y install docker-io

# chkconfig docker on
# service docker start

イメージダウンロード

# docker pull centos:centos6
# docker images

コンテナ起動

# docker run -dti --name [コンテナ名] centos:centos6 /bin/bash
# docker ps
# docker attach [コンテナ名]

# yum install httpd
# touch test-file
# exit

イメージ作成

# docker ps -a
# docker commit [コンテナ名] [名前]/httpd-server
# docker images

作成したイメージからコンテナ起動

# docker run -idt --name [名前]-new [名前]/httpd-server /bin/bash
# docker attach [名前]-new
# rpm -qa | grep httpd
# ls -l test-file

※因みに途中でターミナルから抜けたい場合(exitするとコンテナが停止します)

control + p → control + q

コンテナの停止

# docker stop [名前]-new
# docker ps

掃除:コンテナの削除

# docker ps -a
# docker rm [名前] [名前]-new
# docker ps -a

掃除:イメージの削除

# docker images
# docker rmi [名前]/httpd-server
# docker images

コマンドまとめ

操作系

  • DockerHubからイメージダウンロード
    • docker pull
  • コンテナの起動
    • docker run -dti --name [コンテナ名] centos:centos6 /bin/bash
  • 起動中のコンテナに接続
    • docker attach [コンテナ名]
  • 接続中のコンテナから一時的に切断する
    • control + p → control + q
  • コンテナの起動
    • docker start [コンテナ名]
  • コンテナの停止
    • docker stop [コンテナ名]
  • コンテナ再起動
    • docker restart [コンテナ名]
  • コンテナの削除
    • docker rm [コンテナ名]
  • イメージの削除
    • docker rmi [イメージ名]

参照系

  • ダウンロード済みのイメージの一覧
    • docker images
  • 現在起動しているコンテナの表示
    • docker ps -l
  • dockerのログを表示
    • docker logs [コンテナ名]
  • 停止しているコンテナも表示する
    • docker ps -al

補足

# docker push

で、DockerHubにアップロードできるがまた今度。

追記

Dockerコンテナに接続

docker exec -it [コンテナ名] /bin/bash

execを使うと、起動中のコンテナに対してコマンドを発行できる。
/bin/bashを指定することで、コンテナに接続することが可能。

因みにexecは、本来は起動中のコンテナに対していプロセスを実行する場合に利用する。

iron-breaker
周りがAmazon
classmethod
AWSを中心にビッグデータ/スマホアプリ開発/Alexaスキル開発/IoT/サーバレス開発など、モダンなテクノロジーを使った事業を積極的に推進している会社です。
https://classmethod.jp/
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
ユーザーは見つかりませんでした