zukucode
主にWEB関連の情報を技術メモとして発信しています。

Docker コンテナの中に入ってBashなどでコマンド実行をする

起動中のコンテナの状態を確認するために、コンテナ内でbashなどでコマンドを実行したい場合があります。

例として、Docker Nginxを起動して基本的なコマンドを理解するで紹介したnginxコンテナを起動し、その中でコマンドを実行してみます。

起動中のコンテナの確認

以下のコマンドで起動しているコンテナを確認します。

$ docker container ls
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                  NAMES
029dd3eb7222        nginx               "nginx -g 'daemon of…"   7 seconds ago       Up 6 seconds        0.0.0.0:8080->80/tcp   my-server

コンテナ内のbashを起動する

以下のコマンドでコンテナ内のbashを起動します。

my-serverの部分は対象のコンテナ名を指定します。

また、/bin/bashの部分を変更すれば任意のコマンドを実行できます。

$ docker exec -it my-server /bin/bash
root@029dd3eb7222:/# 

動作確認

コンテナ内のbashが起動できたので、試しにいろいろとコマンドを実行してみます。

ディレクトリの一覧を表示

lsコマンドでカレントディレクトリの一覧を表示します。

# ls
bin   dev  home  lib64	mnt  proc  run	 srv  tmp  var
boot  etc  lib	 media	opt  root  sbin  sys  usr

Nginxの設定ファイルを確認

Nginxの設定ファイルは/etc/nginx/nginx.confにあるので、catコマンドでファイルの中身を確認します。

# cat /etc/nginx/nginx.conf

user  nginx;
worker_processes  1;

error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    keepalive_timeout  65;

    #gzip  on;

    include /etc/nginx/conf.d/*.conf;
}

コンテナ内のbashを終了する

コンテナ内のbashを終了するにはexitコマンドを実行します。

# exit

関連記事