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

Docker/Kubernetes 実践コンテナ開発入門 Docker基礎

Docker/Kubernetes 実践コンテナ開発入門 Docker基礎

はじめに

Docker/Kubernetes 実践コンテナ開発入門でDockerとk8sの勉強を始めたので、備忘録として記事にしてみました。

51d69eJQMyL._SX396_BO1,204,203,200_.jpg

第1章 Dockerの基礎

Dockerとは

コンテナ型仮想化技術によってコンテナを軽量に作成・利用・破棄できる仕組みを提供するDocker社のプロダクト

コンテナ型仮想化技術

ホストOS型仮想化のようにホストOS上にゲストOSを立てて仮想化することとは異なり、ゲストOSを起動せずにコンテナと呼ばれるミドルウェアの環境を作成して、その上でアプリケーションを起動させる技術

Docker.png

Dockerを利用する意義

  • 不変な実行環境による冪等性の確保
  • 実行環境構築とアプリケーション構成のコード化
  • 実行環境とアプリケーションの一体化によるポータビリティ性の向上
  • システムを構成するアプリケーションやミドルウェアの構成管理の容易さ

DockerはDockerイメージによって構成をコードで管理しています。ある時点のサーバーの状態を保存し、別のサーバーへ複製も簡単なので、複数サーバーを扱う時でも正しい状態で運用することができます。

第2章 Dockerコンテナのデプロイ

Dockerイメージとコンテナの関係

Dockerイメージ

コンテナを構成するサーバー、アプリケーションや設定がまとまったものでコンテナを作成する際のテンプレートとなるもの

Dockerコンテナ

イメージを基に作成されたもので実際にイメージのサーバーやアプリケーションを動かしている

Dockerイメージの操作

取得しているイメージ一覧を表示

$ docker images

REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
mysql               latest              81f094a7e4cc        11 days ago         477MB
centos              6                   0cbf37812bff        4 months ago        194MB
golang              1.9                 ef89ef5c42a9        7 months ago        750MB

最初はもちろんイメージがないので、取得する必要があります。
取得する方法はすでに誰かが作ったイメージを落としてくる方法(Docker Hubから取得)と自分で作る2種類のやり方があります。

Docker Hubから取得する

Docker Hubにあるイメージを取得する

$ docker pull イメージ名

スクリーンショット_2019-02-17_18_00_40.png

イメージを自分で作成する(Dockerfileから作成)

Dockerfileというファイルを作成し、そのファイルを基にイメージを作成する。

Dockerfile
FROM イメージ名:タグ名
RUN 実行するコマンド
CMD コマンド指定

↓サンプル

Dockerfile
FROM golang:1.9

RUN mkdir /work
COPY main.go /work

CMD ["go", "run", "/work/main.go"]

Dockerfileを基にイメージをビルドする

$ docker image build イメージ名 Dockerfileの配置ディレクトリ

作成されたイメージ一覧

$ docker image ls

imageからコンテナを作成

$ docker create --name コンテナ名 イメージ名

コンテナを起動

$ docker start コンテナ名

Dockerコンテナの操作

コンテナ一覧確認

$ docker container ps

コンテナの詳細

$ docker inspect コンテナ名

コンテナ起動

$ docker container start コンテナ名

コンテナ停止

$ docker container stop コンテナ名

コンテナ削除

$ docker container rm コンテナ名

最後に

Docker/Kubernetes 実践コンテナ開発入門の輪読会を行っています。興味ある方はぜひご参加ください!

https://yourmystar.connpass.com/event/120903/

Why do not you register as a user and use Qiita more conveniently?
  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
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