Docker と Docker composeで良く利用する基本コマンドと使い方のまとめ

DOCKER
この記事は 3 分で読めます。
概要

「Docker」 はサーバー環境を様々なOS間で持ち運べる便利なツールです。特に、Docker composeやKubernetesを利用することでサーバー運用上必要なバージョンアップやテストサーバー駆動のみならず、サーバーが壊れた場合の立て直しやサーバーの引っ越しにも重宝します。本記事ではDocker サーバーの基本を解説します。

本記事の読者層

Docker composeを利用したい方

目次

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の環境
  • 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からダウンロードできます。

https://hub.docker.com/

中でも最も良く利用されている公式イメージ「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

まとめ

本記事のまとめ

本記事のまとめは、

DockerとDocker compose v2を利用する方法を解説しました。

関連リンク

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次