Dockerの使い方をよくわかっていない初心者が記載したメモ書き。間違っている箇所もあるかもしれません。
Dockerのセットアップ
# v1の場合
docker-compose up [オプション] [--scale サービス=数...] [サービス...]
# v2の場合
docker compose up [オプション] [サービス...]
Docker Composeのv2としてdocker compose
コマンド(docker-compose
ではなく、ハイフンなし)が導入されている。
v2で「docker-compose up」を実行するとエラーになった。
docker compose の起動
Dockerfile に基づいてDockerイメージがビルドされ、その後でサービスがバックグラウンドで起動される。
デタッチド・モード(-d)を入れないと、この後どうやって動かすんだ状態になる。
docker compose up --build -d
この後、requirements.txtのパッケージがインストールされてなかったり、pythonのコードが実行できなかったりするのはdockerfileのコンテナ内の作業ディレクトリ内に移動していないから。
Dockerfileについて
# コンテナ内の作業ディレクトリ設定
WORKDIR /app
# 現在のディレクトリ内容のコピー
COPY . /app
ここでの /app ディレクトリは、コンテナ内のファイルシステム上に存在します。つまり、ホストマシン(あなたのコンピュータ)のファイルシステム上に直接見ることはできません。(考えるな、感じろ)
コンテナ内の /app ディレクトリを確認するには、コンテナにアクセスする必要があります。
以下の手順でアクセスできます:
-
稼働中のコンテナの確認:
ターミナルで以下のコマンドを実行し、稼働中のコンテナをリストアップします。docker ps
-
コンテナに入る:
稼働中のコンテナのIDまたは名前を使用して、以下のコマンドでコンテナ内に入ります。docker exec -it <コンテナIDまたは名前> /bin/bash
sh を使用するコンテナの場合は、/bin/bash の代わりに /bin/sh を使用してください。
-
ディレクトリの確認:
コンテナに入ったら、以下のコマンドで /app ディレクトリの中身を確認できます。ls /app
または、直接 /app ディレクトリに移動することもできます。
cd /app ls
これで、Docker コンテナ内の /app ディレクトリの中身を確認することができます。
参考記事