プログラミング

【Docker】コンテナ内でコマンド操作する方法

dockerのコンテナ内でコマンドを打つ方法紹介記事のアイキャッチ プログラミング

本記事ではDockerでコンテナ内からコマンド操作を行う方法を紹介します。起動中のコンテナでコマンドを実行するのに2通りの方法があります。

スポンサーリンク

前準備:コンテナを作成

コマンドを実行するために、まずコンテナを起動します
(コンテナがある方は飛ばしてください)

今回はDocker Composeコマンドを使用して、Ubuntuのコンテナを作成します。

所定のディレクトリに以下のyamlファイルを作成します。

services:
  ubuntu:
    image: ubuntu:22.04
    tty: true

コンテナの名前は「ubuntu」です。

そして以下コマンドを実行。

docker compose up -d

するとコンテナが起動します。
コンテナが起動したかはコマンド「dicker container ls」で確認できます。

スポンサーリンク

コンテナ内でコマンドを実行する方法

一つ目の方法。

以下コマンドで実行できます。

docker compose exec [コンテナ名] [実行するコマンド]

後述の二つ目の方法と比較して表現するなら、「コンテナに対してコマンド操作を依頼している」方法といった感じ。

以下は実際に実行した例(lsコマンドを実行)。

docekr compose exec ubuntu ls

以下のようにコンテナ内のファイル・フォルダ一覧が表示されます。

コンテナ内へコマンドを実行した結果
スポンサーリンク

コンテナに入ってコマンドを実行する方法(コンテナに入る方法)

二つ目の方法。

一つ目の方法は、コマンドを1つ実行する場合は便利ですが、コンテナ内でたくさんコマンドを実行したい場合は少し面倒です。

なので複数のコマンドを実行する場合は、コンテナ内でシェルを立ち上げ、そこでコマンドを実行する方法がおススメです。

docker compose exec [コンテナ名] /bin/bash

以下は実際に実行した例。

コンテナ内でシェルを起動するコマンドは以下の通り。

docker compose exec ubuntu /bin/bash

コンテナ内のbashが起動し、そこでコマンドが打てる状態になります(以下画像)。

コンテナ内のbashを起動した状態

コンテナ内シェルでlsコマンドを実行。

コンテナ内でコマンドを実行した結果

コンテナ内から離脱する場合は、「exit」で抜けられます。

コメント

タイトルとURLをコピーしました