本文へスキップ
← ガイド一覧

Dockerのインストールと使い方

Dockerを使うと、プログラムと実行環境を丸ごとまとめて、どのサーバーでも同じように実行できます。Ubuntuサーバーを前提に説明します。

1. インストール

Docker公式のインストールスクリプトを使います。

curl -fsSL https://get.docker.com | sudo sh

毎回sudoを付けずに済むように、自分のアカウントをdockerグループに追加して再接続します。

sudo usermod -aG docker $USER

正しくインストールされたか確認します。

docker run --rm hello-world

「Hello from Docker!」と表示されれば成功です。

2. コンテナを実行してみる

Webサーバー(Nginx)を立ち上げてみます。

docker run -d --name web -p 80:80 --restart unless-stopped nginx
  • -d バックグラウンドで実行
  • -p 80:80 サーバーの80番ポートをコンテナの80番ポートに接続
  • --restart unless-stopped サーバーが再起動しても自動で再実行

ブラウザーでhttp://server-ipにアクセスすると、Nginxの画面が表示されます。

3. よく使うコマンド

docker ps                 # 実行中のコンテナの一覧
docker logs -f web        # ログを表示(Ctrl + Cで終了)
docker restart web        # 再起動
docker stop web           # 停止
docker rm web             # 削除(停止後)
docker images             # ダウンロード済みのイメージの一覧
docker system df          # Dockerが使っているディスク容量

4. Docker Composeで複数をまとめて

1つの設定ファイルで複数のコンテナをまとめて管理できます。compose.yamlファイルを作成します。

services:
  web:
    image: nginx
    ports:
      - "80:80"
    restart: unless-stopped
docker compose up -d      # 実行
docker compose down       # 停止と削除
docker compose logs -f    # ログを表示

⚠️ ファイアウォールに関する注意

Dockerで開けたポート(-p)は、ufwファイアウォールの設定を無視して外部に公開されます。 DBのようにサーバー内だけで使うべきコンテナは、次のように127.0.0.1にだけ接続してください。

docker run -d --name db -p 127.0.0.1:3306:3306 -e MARIADB_ROOT_PASSWORD=long-password mariadb

ファイアウォールの設定は、ファイアウォールのポートを開けるを参考にしてください。

ディスクがいっぱいになりました

使っていないイメージ・コンテナがたまると、ディスクを多く占めます。

docker system prune

実行中でないコンテナと使っていないイメージを整理します。削除してよいか確認してからyを入力してください。

解決しない問題がある場合は、Discordのチケットでお問い合わせください。