Docker イメージ管理とコンテナ実行の操作ガイド

イメージの取得と保存

Docker ハブから必要なイメージを取得するために検索およびプルコマンドを使用します。

docker search ubuntu
docker pull ubuntu:latest

ネットワークが不安定な環境では、公式レジストリの代わりにミラーサーバーを経由してイメージをフェッチする設定が必要です。以下はダemons.json ファイルに複数のミラー URL を追加する例です。

cat > /etc/docker/daemon.json << 'EOF'
{
  "registry-mirrors": [
    "https://mirror.example.com",
    "http://internal-proxy.mirror.local"
  ]
}
EOF

設定変更後の再適用には以下のコマンドを実行してください。

systemctl daemon-reload
systemctl restart docker

ネットワーク制限により直接ダウンロードできない場合、事前にパッケージ化したファイルを transfer し、読み込んで使用する方法があります。オフライン用のアーカイブ化は以下のように実施できます。

# イメージのエクスポート
docker save -o backup_image.tar.gz alpine
# イメージのインポート(tar ファイルが存在する場合)
docker load -i backup_image.tar.gz

ローカルイメージの管理

現在のローカルディレクトリに存在するすべてのイメージを確認するには、list コマンドを利用します。

docker images

ストレージパスは通常、オーバーレイドライバーを用いたデータベースに保持されます(例:/var/lib/docker/image/overlay2)。不要になったイメージを削除する場合は、強制フラグを含めて実行すると依存関係を無視して除去可能です。

docker rmi -f <イメージ名>:<タグ>

特定のイメージに対して新しい名前(タグ)を付与するには、tag コマンドを活用します。これはバージョン管理や環境別の識別に役立ちます。

docker tag ubuntu:latest web-server:v1.0

利用可能なすべてのコマンド一覧については、help パラメータを指定することで参照できます。

docker --help

コンテナのデプロイとモニタリング

イメージを基にバックグラウンドでプロセスを開始し、ホストポートとコンテナ内部のポートをバインドします。-d オプションは detached モードを、-p はポートマッピングを表します。

docker run -d -p 8080:80 nginx

作成されたコンテナの一覧とステータスは ps コマンドで確認できます。

docker ps

コンテナ自体が正常に動作しているか、あるいは特定のプロセスが待ち受け状態にあるかは、ネトスタットツール等を使って物理ポートを確認することで把握可能です。また、コンテナ固有の IP アドレス詳細は inspect コマンドから得ることができます。

docker inspect <コンテナID または 名前>

コンテナには任意の名前を割り当てることも可能です。これにより後で名前だけで管理できるようになります。

docker run --name my-web-app -d -p 3000:3000 node

ライフサイクルの制御

一時的に停止させるには stop を使用し、全コンテナ(停止中を含む)を表示するには -a フラグを指定します。

docker stop my-container-id
docker ps -a

停止したコンテナを再開する際も同様に ID を指定します。また、ログ出力はコンテナの状態監視時に有用です。

docker start my-container-id
docker logs my-container-id

既存のコンテナ名を変更したい場合は rename コマンドを利用します。

docker rename old_name new_name

稼働中のコンテナ内部にシェルとしてアクセスするには、exec コマンドを使用します。内部的な診断や設定修正に適しています。

docker exec -it <コンテナID> /bin/sh

ポート開放の確認

ホスト上のリスニング状態を確認し、外部からのアクセス可否をテストします。

netstat -antup | grep <番号>
curl http://<サーバーIP>:ポート

タグ: Docker コンテナ・ライフサイクル,イメージ・レジストリ,ポートマッピング,Linux サーバー管理

6月25日 18:44 投稿