Dockerで作業用のカスタムコンテナを作成する方法

本記事では、Dockerを使って作業用のコンテナを作成する方法を解説します。作業用のコンテナを作成することで、自分だけのカスタム環境を簡単に構築できます。また、他の環境に移行する際にも、環境の再現性が高くなるため、開発・運用効率の向上につながります。

実行環境
  • Ubuntu 20.04.3 LTS (WSL2)
  • Dockerインストール済み
  • Docker起動中

作業環境の構築と利用手順

利用するイメージの取得

Docker Hubからイメージを取得します。
今回はLinux, python(3.10)を指定します。

docker image pull python:3.10
# または (旧コマンド)
docker pull python:3.10

イメージ一覧を表示し、pythonが正しくpullできているか確認します。

$ docker image ls
REPOSITORY                  TAG       IMAGE ID       CREATED        SIZE
python                      3.10      2b8b079d7548   24 hours ago   912MB

コンテナを作成する

次のコマンドでコンテナを作成します。

docker container create [オプション] [イメージ名]
# または (旧コマンド)
docker create [オプション] [イメージ名]

コマンド例

docker container create -i --name fastapi-sample -p 9000:8000 python

今回は起動後にシェルで作業を行いたいため、-iオプションを付けています。

コンテナ一覧を表示し、作成したコンテナが正しく作成できているか確認します。

$ docker container ls -a
CONTAINER ID   IMAGE     COMMAND      CREATED          STATUS     PORTS    NAMES
a7cca4d84404   python    "python3"    49 seconds ago   Created             fastapi-sample

コンテナを起動する

docker container start [オプション] [コンテナ名]|[コンテナID]
# または (旧コマンド)
docker start [オプション] [コンテナ名]|[コンテナID]

コマンド例

docker container start fastapi-sample

コンテナ一覧を表示し、起動したコンテナのSTATUSUPであればコンテナが起動しています。

$ docker container ls -a
CONTAINER ID   IMAGE     COMMAND      CREATED              STATUS          PORTS                                        NAMES
a7cca4d84404   python    "python3"    About a minute ago   Up 3 seconds    0.0.0.0:9000->8000/tcp, :::9000->8000/tcp    fastapi-sample

docker container create時に-iオプションが無かった場合は起動してすぐに停止するため、STATUSExitedになります。

コンテナにログインする

起動中のコンテナにログインし、作業を行います。

docker container exec -it [コンテナ名] bash
# または (旧コマンド)
docker exec -it [コンテナ名]

exitでコンテナからログアウトします。

以下でイメージダウンロードからコンテナ作成・実行、コンテナへのログインまで行えます。-rmオプションを付けると、コンテナは終了時に削除されます。
docker container run -it --rm [イメージ名]

コンテナを停止する

docker container stop [コンテナ名]|[コンテナID]
# または (旧コマンド)
docker stop [コンテナ名]|[コンテナID]

Visual Studio Codeでコンテナ内のファイルを編集する方法

WSL2上で実行中のDockerコンテナ内のファイルをVisual Studio Codeで編集できるようにする方法です。

前提条件として、Remote Development 拡張機能パックがインストール済みであることなので、下記を参考にインストールしておきます。

方法1

  1. WSL2上でコンテナを起動する
  2. WSL2のシェル(※)上でcodeと入力する
    →Windows上でVisual Studio Codeが起動する
    ※コンテナのシェルではないので注意
  3. コマンドパレットを起動(Ctrl + Shift + p)し、"container"と入力する
  4. Dev Containers: Attach to Running Container...を選択
  5. 起動中のコンテナがリスト表示されるので、選択
  6. コンテナにVisual Studio Codeがアクセスできるようになる

方法2

  1. Visual Studio Codeを起動する
  2. コマンドパレットを起動(Ctrl + Shift + p)し、"WSL"と入力する
  3. WSL: Connect to WSL を選択する
  4. WSLに接続できたら、再度コマンドパレットを起動する
  5. "container"と入力する
  6. Dev Containers: Attach to Running Container...を選択
  7. 起動中のコンテナがリスト表示されるので、選択
  8. コンテナにVisual Studio Codeがアクセスできるようになる
このエントリーをはてなブックマークに追加
にほんブログ村 IT技術ブログへ

スポンサードリンク

関連コンテンツ

コメント

メールアドレスが公開されることはありません。 が付いている欄は必須項目です