3
8

More than 3 years have passed since last update.

【Docker】はじめてのDocker〜概要・PHPコマンドの実行まで

Last updated at Posted at 2019-11-30

名前しか知らなかったDockerを使ってみました。
備忘録です。

Dockerとは

コンテナ型の仮想環境を提供するツール
docker初心者の方が知っておいた方がよい基礎知識

なぜ使うのか

  • 従来の仮想環境(ハイパーバイザ型)と比較して軽く、リソース消費が少ないから
  • 作成した環境を簡単に配布できるから

用語集

解説はDocker-docs-ja/用語集を参考にしています。

ハイパーバイザ型・コンテナ型の概要も含め、図で見た方が分かりやすいです。
Dockerのすべてが5分でわかるまとめ!(コマンド一覧付き)

Dockerコンテナ

  • Dockerイメージを実行するときの実体(runtime instance)
  • Dockerイメージを実行(run)するとDockerコンテナが生成される
  • OSレベルの仮想化を行う

Dockerイメージ

  • Dockerコンテナの元のようなもの
  • 環境を作るための設定がひとまとめになっている

Dockerfile

  • Dockerイメージを構築するために必要な命令の一覧
  • DockerfileをビルドするとDockerイメージが構築される
  • テキスト形式のドキュメント

リポジトリ

  • Dockerイメージの集合体

レジストリ

  • リポジトリを預かるサービス(Docker Hub)

実行

ファイル作成

必要なディレクトリ・ファイルを作成します。

$ mkdir docker_test
$ cd docker_test
$ touch main.php
$ touch Dockerfile

実行ファイル

main.php
<?php 
echo "Hello! World!\n";
echo phpversion()."\n";

Dockerfile

イメージはphp:7.2-cliを指定したので、7.2系で最新のバージョンが呼び出されます。

Docker Hub - php
Dockerfile リファレンス
【入門】Dockerfileの基本的な書き方

# イメージを指定
FROM php:7.2-cli

# イメージ上で実行するコマンドを指定
# helloディレクトリを作成
RUN mkdir /hello
# helloディレクトリにmain.phpをコピー
COPY main.php /hello

# 実行コマンド
# php /hello/main.phpを実行
CMD [ "php", "/hello/main.php" ]

ビルド

buildコマンドでビルドし、新しいイメージを生成します。

tオプションリポジトリ名hello-app実行場所を指定します。
タグ名は指定していないので、デフォルトのlatestが設定されます。

同名のリポジトリが複数存在する場合は、タグをつけて識別します。

イメージのタグ付け、送信、取得
リポジトリ(repository)
タグ

$ docker build -t hello-app .
# 省略
Successfully built b9d2c9893a00
Successfully tagged hello-app:latest

ビルドが成功しました。

起動

runコマンドで新しくコンテナを起動します。

$ docker run hello-app
Hello! World!
7.2.25

Dockerfileのコマンドが実行されました。
phpのバージョンもFROMで指定したバージョン(7.2系で最新)になっています。

コンテナはイメージIDを指定して起動することもできます。

$ docker run b9d2c9893a00
Hello! World!
7.2.25

imagesコマンドでイメージの一覧が表示されます。
ここでリポジトリやタグの確認ができます。

$ docker images
REPOSITORY                 TAG                 IMAGE ID            CREATED             SIZE
hello-app                  latest              b9d2c9893a00        11 minutes ago      398MB

その他のコマンドはコマンドライン・リファレンスで確認できます。

3
8
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
3
8