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を入力してください。