茨の道も一歩から

インフラ構築からプログラミング(Python・JavaScript)までITに関するブログです。

Docker入門:インストールから基本的な操作方法

はじめに

CHAPTER 1 Dockerを使う

SECTION 01 Dockerとコンテナ技術について

  • Dockerは、コンテナ技術を利用した環境構築支援ソフト

  • Dockerの種類

SECTION 02 Dockerをインストール

AWS(EC2: RedHat Enterpris)

$ sudo yum -y update
$ sudo yum install -y yum-utils device-mapper-persistent-data lvm2
$ sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
$ sudo yum install -y docker-ce docker-ce-cli containerd.io
$ sudo systemctl start docker
$ sudo systemctl enable docker

$ sudo docker version

CentOS7

  • CentOS公式
    • 言語:英語
    • ネットワーク:有効化

Docker

$ yum install -y yum-utils device-mapper-persistent-data lvm2
$ yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
$ yum install docker-ce docker-ce-cli containerd.io
$ systemctl start docker
$ systemctl enable docker

$ docker version

Windows10 Home

  • VirtualBox
    • OS:RedHat(64bit)
    • CPU:2
    • Mem:2GB
    • Disk:50GB
    • Net:ブリッジ接続

■ Point

  • DockerToolboxをインストールすると、Windows10 HomeでもDockerDesktopが利用できる。

SECTION 03 Dockerを体験

Hello World.

$ sudo docker container run hello-world

To generate this message, Docker took the following steps: 1. The Docker client contacted the Docker daemon. 2. The Docker daemon pulled the "hello-world" image from the Docker Hub. (amd64) 3. The Docker daemon created a new container from that image which runs the executable that produces the output you are currently reading. 4. The Docker daemon streamed that output to the Docker client, which sent it to your terminal.


Nginx

$ sudo docker container run -p 8080:80 nginx
$ sudo docker container run --name mynginx -d -p 8081:80 nginx:1.9.15-alpine

コンテナの確認

$ sudo docker container ls
CONTAINER ID        IMAGE                 COMMAND                  CREATED             STATUS              PORTS                           NAMES
cd6d8608f811        nginx:1.9.15-alpine   "nginx -g 'daemon of…"   6 seconds ago       Up 4 seconds        443/tcp, 0.0.0.0:8081->80/tcp   mynginx
37b5b9d98212        nginx                 "/docker-entrypoint.…"   11 minutes ago      Up 11 minutes       0.0.0.0:8080->80/tcp            infallible_easley

コンテナの停止

  • NAMES または CONTAINER IDを指定
$ sudo docker container stop mynginx
$ sudo docker container stop 37b5b9d98212

イメージの確認

$ sudo docker image ls
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
nginx               latest              992e3b7be046        4 days ago          133MB
hello-world         latest              bf756fb1ae65        9 months ago        13.3kB
nginx               1.9.15-alpine       3839248a6963        4 years ago         60.6MB

DockerHubの利用

  • アカウント登録が必要
$ sudo docker login
Username:
Password:

$ sudo docker logout

SECTION 04 コンテナの利用法

コンテナのログ確認

$ sudo docker container logs -f 37b5b9d98212

コンテナの確認(停止中のコンテナも含む)

$ sudo docker container ls -a

コンテナの起動(停止中)

$ sudo docker container start 37b5b9d98212

起動していないコンテナを一括破棄

$ sudo docker container prune -f

SECTION 05 Dockerの使いどころ

  • 環境依存を無くす
  • インフラのコード化
  • アプリのマイクロサービス化

おわりに

  • Dockerのインストールから基本的な操作方法までをまとめました。