当サイトは、アフィリエイト広告を利用しています

【Docker】コンテナにログインする方法

作成日:2023月10月10日
更新日:2023年10月10日

Dockerのdocker-composeで作成したコンテナに入る方法が2つあるので
その方法をまとめておく。

基本的にはdocker execコマンドで入ると思うが
一応、パターンとしてdocker execコマンドを含めた

  • docker execコマンド
  • Dev Containers(VSCode拡張機能)

の2つの方法をまとめる

環境

環境は下記で試す

  • Windows10
  • Docker version 24.0.2(Docker for Windows)
  • VScode

Docker for Windowsのインストール方法については下記記事で
紹介しています

docker execコマンドを使う

まずは一番、簡単なdocker execコマンドを
使ってログインする方法を実践してみる

プロジェクト構成

コンテナを作るだけなので
任意フォルダ配下にdocker-compose.ymlを作成するだけ

docker-composeでコンテナを作る

docker-composeを使って
ログインする対象のコンテナを作る OSのイメージはrockylinux/rockylinuxを使う

docker-compose.yml
version: "3"
# コンテナ
services:
# コンテナ1
container1:
container_name: container1
image: rockylinux/rockylinux
restart: always
tty: true
command: /sbin/init

imageからコンテナを作る

コンテナ作成

コマンドでコンテナを作成する

GitBash
$ docker compose up -d
[+] Running 2/2
✔ Network dockerloginsample_default Created 0.7s
✔ Container container1 Started

コンテナ起動確認

コンテナがちゃんと起動していることを確認する

GitBash
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
3b7d5cdb1344 rockylinux/rockylinux "/sbin/init" 11 seconds ago Up 9 seconds container1

psコマンドで表示されるので起動できている
※起動できていない場合は表示されない

コンテナにログインする

docker execコマンドでログインする

GitBash
$ docker exec -it container1 bash
[root@3b7d5cdb1344 /]#

ログインできた!

コマンドの解説としては

  • docker exec:実行中のDockerコンテナで新たなコマンドを実行する
  • it:オプション-i(interactive)と-t(tty)を組み合わせたもの。コンテナ内で対話的なシェルを開始できる。
  • container1:コマンドを実行する対象のコンテナ名。
  • bash:コンテナ内で実行するコマンドを指定。この場合、bashシェルを開始する

特にこの最後のbashはよくつけ忘れる コンテナから抜ける時は「exit」で抜けれる。

Dev Containers(VSCode拡張機能)

VScodeの拡張機能であるDev Containersを使って
コンテナにログインすることができる。

Dev Containersをインストールする

VScodeでDev Containersをインストールする

devcontainer

コンテナで再度開くを選択

F1ボタンを押下してコマンドパレットを表示させ
コンテナで再度開くを選択する

2023-10-06-18-48-28

何から開くか聞かれるのでdocker-compose.ymlから開くを選択 2023-10-06-18-50-45

インストールする追加機能は特にないのでそのままOKを押す 2023-10-06-18-51-27

コンテナ起動

VScodeからDockerコンテナが無事に起動すると
下記のような画面になり、
ターミナルではログインされている 2023-10-06-19-06-26

まとめ

Dockerコンテナにログインする方法をまとめてみた。
特にDockerコンテナの中のファイルを編集したい場合は
VScodeから入れば、VScode上で編集できるのでかなり便利だと感じる。

参考

関連記事

新着記事

タグ別一覧
top