目次
Dockerfileでlinux2コンテナを作成起動するには?
Amazon Linux 2(もしくは一般にlinux2
と呼ばれる場合が多いOS)のDockerイメージを使用してコンテナを作成・起動するには、次のような手順を考慮できます。
まず、適当なディレクトリを作成し、その中にDockerfile
を作成します。
1. **Dockerfileを作成**
# 基本イメージとしてAmazon Linux 2を指定 FROM amazonlinux:2 # イメージに対する追加の設定やソフトウェアのインストール RUN yum update -y && \ yum install -y httpd # コンテナが公開するポート番号 EXPOSE 80 # コンテナ起動時に実行されるコマンド CMD ["httpd", "-D", "FOREGROUND"]
この例では、Amazon Linux 2をベースとして、Apache HTTP Server(httpd)をインストールしています。コンテナが起動した際にはApacheが前景で実行されます。
2. **Dockerイメージをビルド**
ターミナルで、上で作成したDockerfileが存在するディレクトリに移動し、以下のコマンドを実行します。
docker build -t my-amazonlinux2-image .
これでmy-amazonlinux2-image
という名前のDockerイメージがビルドされます。
3. **Dockerコンテナを起動**
ビルドが成功したら、新しいイメージからコンテナを起動します。
docker run -d -p 8080:80 my-amazonlinux2-image
これで、ローカルマシンの8080番ポートがコンテナ内の80番ポートにフォワードされます。
Webブラウザでhttp://localhost:8080
にアクセスすると、Apache HTTP Serverのデフォルトページが表示されるはずです。
これが基本的な例ですが、具体的な用途や必要なソフトウェアに応じてDockerfileはカスタマイズできます。
コンテナにログインするには?
Dockerコンテナにログイン(シェルへのアクセス)を行うには、docker exec
コマンドを使用します。このコマンドを使って、既に起動しているコンテナの中でコマンドを実行することができます。
具体的な手順は以下の通りです。
1. **コンテナIDまたはコンテナ名を確認**
まず、ログインしたいコンテナのIDまたは名前を知る必要があります。これは以下のコマンドでリスト形式で確認できます。
docker ps
このコマンドの出力から、ログインしたいコンテナのCONTAINER ID
またはNAME
をメモします。
2. **コンテナにログイン**
シェルへのアクセスを行いたい場合、以下のようなdocker exec
コマンドを使用します。
docker exec -it [コンテナIDまたはコンテナ名] /bin/bash
または、/bin/sh
を使用する場合:
docker exec -it [コンテナIDまたはコンテナ名] /bin/sh
これでコンテナ内のシェルにアクセスできます。
例:
- コンテナIDが1234567890ab
であれば、以下のように実行します。
docker exec -it 1234567890ab /bin/bash
- コンテナ名がmy_container
であれば、以下のように実行します。
docker exec -it my_container /bin/bash
この手順によって、コンテナ内部でコマンドを実行するためのシェルにアクセスできます。これはデバッグ、設定変更、ファイルの編集など、多くの用途で有用です。