イメージの取得と保存
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>:ポート