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

Last updated at Posted at 2020-03-31

趣味でプログラミングを勉強しています。
軽量に動作して高速に環境を構築できる「Docker」(ドッカー)を今回記事にしてみました。

Docker-logo-icon.jpg

Dockerとは?

コンテナ技術を使ったアプリケーションの実行、運用をするためのプラットフォーム

コンテナとは?

ホスト上に論理的な区画(コンテナ)を作り、アプリケーションを動作させるのに必要なライブラリやアプリケーションを1つにまとめ、あたかも個別のサーバのように使うことができるようにしたもの
→ホストOSのリソースを論理的に分離して複数コンテナで共有して使うので、間接的にかかるコストが少なく軽量で高速に動作するのが特徴

コンテナの歴史

FreeBSD jail
https://ja.wikipedia.org/wiki/FreeBSD_jail
Solaris Containers
https://www.oracle.com/technetwork/jp/server-storage/solaris10/containers-169727-ja.html

Dockerの機能

  1. Dockerイメージ(コンテナの元)を作る機能
    Dockerイメージ アプリケーションの実行に必要なファイル群が格納されたディレクトリ

  2. Dockerイメージを共有する機能
     ・Dockerレジストリ
       イメージを持つリポジトリ(イメージの集まり)を預かるサービス
     ・DockerHub https://hub.docker.com/
       Docker、コンポーネントで動くリソースを集めた場所

  3. Dockerコンテナを動かす機能

Dockerのエディションは2つ

コミュニティ版(CE; Community Edition)
エンタープライズ版(EE; Enterprise Edition)

Dockerが動く仕組み

・コンテナという独立環境を作り、コンテナを区画化してアプリケーションの実行環境を作る
・Linuxカーネルのnamespaceという機能を使いコンテナを仮想的に隔離する
・Dockerコンテナと外部ネットワークが通信を行うときは、NAPTの機能を使って通信する

Linux namespaces
https://en.wikipedia.org/wiki/Linux_namespaces

NAPT
1つのIPアドレスを複数のコンピューターで共有する技術で、IPアドレスとポート番号を変換する機能

Dockerのインストールと動作確認

####環境
Windows 10 Pro 64bit メモリ 16G
Docker for Windows v 19.03.5

1. Docker Desktop for Windowsをインストール
https://hub.docker.com/editions/community/docker-ce-desktop-windows/

2. コマンド実行
docker container run amazonlinux:latest //bin/echo 'Introduction to Docker'

#####説明
docker container run コンテナを作成/実行
amazonlinux:latest もとになるDockerイメージ
//bin/echo 'Introduction to Docker' コンテナ内で実行するコマンド

2020-03-30_16h32_01.png

1回目はダウンロードするので時間がかかるが、
2回目以降はダウンロードされたDockerイメージをもとにDockerコンテナを起動するので高速に動く

Dockerコマンド

Dockerバージョン
docker version

実行環境の詳細設定
docker system info

ディスクの利用状況
docker system df

Dockerを使ってWebサーバを構築

コマンド実行
docker container run --name webserver -d -p 8000:80 httpd

#####説明
--name webserver -d 「webserver」という名前のコンテナをバックグラウンドで起動
-p コンテナのポートをホスト側に公開
8000:80 ホスト8000番ポートとコンテナ80番ポートをマッピング

バックグラウンド
相対的に低い優先度で動作し、入力がごく少ないか全くなく、最小限の出力を行うプロセス

2020-03-30_17h46_37.png

httpdサーバの状況確認
docker container ps

コンテナ詳細
docker container stats webserver

httpd停止
docker stop webserver

httpd起動
docker start webserver

今回はDockerのさわりを記事にさせていただきましたので、
次回、「Docker Compose」を使った複数コンテナの環境構築を記事にしたいと思います。

ダウンロード.png

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?