「Docker」 はサーバー環境を様々なOS間で持ち運べる便利なツールです。特に、Docker composeやKubernetesを利用することでサーバー運用上必要なバージョンアップやテストサーバー駆動のみならず、サーバーが壊れた場合の立て直しやサーバーの引っ越しにも重宝します。本記事ではDocker サーバーの基本を解説します。
Docker とは?
Dockerとはコンテナと呼ばれる仮想環境プラットフォームを利用して、サーバー間を移動・配置することができる便利なツールです。
Docker compose とは?
「Docker compose」は複数のコンテナで構成されるアプリケーションをDockerで利用するために、Dockerイメージのビルドや各コンテナの起動・停止などを簡単に行うことができるオーケストレーション型のツールです。
各OSでの利用方法
macOSでDockerをインストールする方法
macOSで「Docker Desktop for mac」を利用してDocker のインストール方法は以下の記事で解説しております。
ご参照ください。
この「Docker Desktop for mac」のインストールによって、Docker Engine や、Compose プラグイン対応の Docker CLI だけでなく、ほかのコンポーネントやツールも同時にインストールされます。このインストールでは、Docker composeのバージョン2がインストールされます。
Dockerでよく使用するコマンド
- Docker
バージョン 2.14.2
Dockerのバージョンを確認
$ sudo docker compose version
Docker Compose version v2.14.2
dockerイメージの一覧を表示
$ docker images -a
REPOSITORY TAG IMAGE ID CREATED SIZE
mariadb 10.5 819fb13996d3 3 months ago 402MB
mariadb latest a748acbaccae 3 months ago 410MB
mysql 5.7 d410f4167eea 3 months ago 495MB
wordpress latest 8b105c533d0c 3 months ago 615MB
mysql latest a3a2968869cf 4 months ago 538MB
nextcloud latest eff70b1472d7 4 months ago 994MB
もしくは
$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
210d19e7dc95 nextcloud "/entrypoint.sh apac…" 3 months ago Up 3 months 0.0.0.0:8080->80/tcp, :::8080->80/tcp ownapp
1c87802e6c34 mariadb "docker-entrypoint.s…" 3 months ago Up 3 months 5400/tcp, 0.0.0.0:5400->3306/tcp, :::5400->3306/tcp mariadb
ad35f4db01ce nextcloud "/entrypoint.sh apac…" 3 months ago Exited (0) 3 months ago nextcloud-app
ad9c2f5d3f74 mariadb "docker-entrypoint.s…" 3 months ago Exited (0) 3 months ago db-container
559aa1b9b79d wordpress "docker-entrypoint.s…" 3 months ago Up 3 months 0.0.0.0:8085->80/tcp, :::8085->80/tcp wd_app
79dd4c995cea mysql "docker-entrypoint.s…" 3 months ago Up 3 months 3306/tcp, 12345/tcp, 0.0.0.0:12345->33060/tcp, :::12345->33060/tcp wd_db
dockerのコンテナ起動
$ docker run (container ID)
dockerのコンテナ内へアクセス
$ docker exec -it (container ID) /bin/bash
dockerイメージの停止
$ docker stop (container ID)
dockerイメージの削除
$ docker rm (container ID)
Docker composeでよく使用するコマンド
Docker composeのバージョンを確認
% docker-compose version
Docker Compose version v2.14.2
「docker」と「docker compose」ではそれぞれバージョンは20.10.21と2.12.2となっています。
docker composeの起動 (docker-compose.ymlを利用する場合)
$ docker compose up -d
*「-d」オプションはバックグラウンドで起動する際に使用します。
docker composeの起動 (任意のファイル [ファイル名].ymlを利用する場合)
$ docker compose up -f [ファイル名].yml -d
*「-d」オプションはバックグラウンドで起動する際に使用します
Docker composeで現在走っている「yml」の確認方法
■1つのymlに対して2つプロセスが走っている場合
% docker compose ls
NAME STATUS CONFIG FILES
user running(2) /home/user/docker-compose1.yml
「docker-compose1.yml」で、StatusにRunning(2)と記載されているため、2つのコンテナが駆動中です。
■2つのymlに対して4つプロセスが走っている場合
% docker compose ls
NAME STATUS CONFIG FILES
tomita running(4) /home/user/docker-compose.yml,/home/user/wp.yml
「docker-compose.yml」と「wp.yml」に対して、StatusにRunning(4)と記載されているため、合計4つのコンテナが駆動中です。
■この際にどのコンテナが駆動しているかを以下のように確認できます。
この際に、どのコンテナが駆動しているかは以下の「Dockerコマンド」で確認できます。
% docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
4cbd6f42d782 wordpress "docker-entrypoint.s…" 7 days ago Up 6 days 0.0.0.0:8080->80/tcp wordpress-app
64e2746e94fb mysql:5.7 "docker-entrypoint.s…" 7 days ago Up 6 days 0.0.0.0:3306->3306/tcp, 33060/tcp db-container
■activeでないコンテナも含めてすべてを表示させたいときは以下のようにすればOK.
% docker ps -a
Docker Hubのコンテナイメージ
Dockerを利用する際のイメージは以下のURLからダウンロードできます。
中でも最も良く利用されている公式イメージ「official」のダウンロードリストを示して起きます。
データーベースサーバー関連
# Dockerの「mySQL」用イメージの最新版(tag:latest)のダウンロード
% sudo docker pull mysql
# Dockerの「mySQL」用イメージの最新版(tag:5.7)のダウンロード
% sudo docker pull mysql:5.7
# Dockerの「mariaDB」用イメージの最新版(tag:latest)のダウンロード
% sudo docker pull mariadb
# Dockerの「Postgres」用イメージの最新版(tag:latest)のダウンロード
% sudo docker pull postgres
httpサーバー関連
# Dockerの「apache2」用イメージの最新版(tag:latest)のダウンロード
% sudo docker pull apache2
# Dockerの「nginx」用イメージの最新版(tag:latest)のダウンロード
% sudo docker pull nginx
サーバーの実行環境関連
# Dockerの「php実行環境」用イメージの最新版(tag:latest)のダウンロード
% sudo docker pull php
# Dockerの「Java実行環境」用イメージの最新版(tag:latest)のダウンロード
% sudo docker pull java
# Dockerの「python実行環境」用イメージの最新版(tag:latest)のダウンロード
% sudo docker pull python
# Dockerの「Ruby実行環境」用イメージの最新版(tag:latest)のダウンロード
% sudo docker pull ruby
# Dockerの「perl実行環境」用イメージの最新版(tag:latest)のダウンロード
% sudo docker pull perl
# Dockerの「gcc実行環境」用イメージの最新版(tag:latest)のダウンロード
% sudo docker pull gcc
# Dockerの「node.js実行環境」用イメージの最新版(tag:latest)のダウンロード
% sudo docker pull node
その他WEBアプリサーバー関連
# Dockerの「nextclound」用イメージの最新版(tag:latest)のダウンロード
% sudo docker pull nextclound
# Dockerの「WordPress」用イメージの最新版(tag:latest)のダウンロード
% sudo docker pull wordpress
# Dockerの「Readmine」用イメージの最新版(tag:latest)のダウンロード
% sudo docker pull Readmine
その他のサーバー関連
# Dockerの「ubuntu」用イメージの最新版(tag:latest)のダウンロード
% sudo docker pull ubuntu
# Dockerの「centOS」用イメージの最新版(tag:latest)のダウンロード
% sudo docker pull centos
# Dockerの「DebianOS」用イメージの最新版(tag:latest)のダウンロード
% sudo docker pull debian
# Dockerの「Fedora」用イメージの最新版(tag:latest)のダウンロード
% sudo docker pull Fedora
# Dockerの「BizyBox」用イメージの最新版(tag:latest)のダウンロード
% sudo docker pull busybox
# Dockerの「Alpine linux」用イメージの最新版(tag:latest)のダウンロード
% sudo docker pull alpine
まとめ
本記事のまとめは、
コメント