学習資料:
Docker のインストール#
Centos での Docker のインストール#
コミュニティ版のインストール
インストールが成功したかどうかを確認するためにコマンドを実行する
docker version
# または
docker info
Docker はサーバークライアントアーキテクチャであり、Docker コマンドを実行するためにはローカルに Docker サービスが必要です。
# service コマンドの使用法
sudo service docker start
# systemctl コマンドの使用法
sudo systemctl start docker
イメージファイル#
**Docker はアプリケーションとその依存関係をイメージファイルにパッケージ化します。** このファイルを使用してのみ Docker コンテナを生成できます。イメージファイルはコンテナのテンプレートと見なすことができます。Docker はイメージファイルに基づいてコンテナのインスタンスを生成します。同じイメージファイルから、複数の同時実行コンテナのインスタンスを生成できます。
# ローカルのすべてのイメージファイルをリストアップする
docker image ls
# イメージファイルを削除する
docker image rm imageName
基本操作#
- イメージファイルをリポジトリからローカルに取得する:
docker pull hello-world
- このイメージファイルを実行する:
docker container run hello-world
- 手動で終了する:
docker container kill [containID]
コンテナファイル#
** イメージファイルから生成されたコンテナインスタンスは、それ自体がファイルであり、コンテナファイルと呼ばれます。** つまり、コンテナが生成されると、イメージファイルとコンテナファイルの 2 つのファイルが同時に存在します。また、コンテナを閉じてもコンテナファイルは削除されず、コンテナが停止するだけです。
- ローカルで実行中のコンテナをリストアップする:
docker container ls
- 終了したコンテナを含むすべてのコンテナをリストアップする:
docker container ls -all
- 終了したコンテナファイルを削除する:
docker container rm [containerID]
Docker パッケージングでの問題#
Docker パッケージングが遅い#
Docker はレイヤーを使用してイメージを作成し、Dockerfile の各コマンドは新しいレイヤーを作成し、コマンドの前後の状態の間のイメージのファイルシステムの変更を含みます。Dockerfile と関連するファイルが変更されていない場合、再構築時には既存のキャッシュされたレイヤーをローカルイメージキャッシュから再利用できます。
キャッシュを使用せずにパッケージングする#
docker build --no-cache -t xxxx
Docker の使用中に発生する問題#
1. Docker の実行時にエラーが発生する#
docker run hello-world
/usr/bin/docker-current: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?.
See '/usr/bin/docker-current run --help'.
解決策:systemctl restart docker
2. Docker info でエラーが発生する Registry Mirrors: https://4piaafr1.mirror.aliyuncs.com/
#
修正済みなのになぜ表示されるのか
=> [1/7] FROM docker.io/library/
解決策:
この状況は、Docker のビルドキャッシュによるものかもしれません。Docker はイメージをビルドする際にキャッシュを使用してビルド速度を向上させようとします。したがって、イメージソースを変更した場合でも、Docker はビルド時に以前のキャッシュを使用しようとします。
Docker キャッシュをクリアする:Docker ビルドの前に、--no--cache オプションを使用してキャッシュを無効にし、必要なイメージを強制的に再ダウンロードすることができます。
docker build --no-cache -t your_image_name .
Mac 版 Docker の daemon.json は ~/.docker
フォルダにあります。
3. ソースの変更#
Docker の切り替えを行うための清華ソース:
{
"registry-mirrors":["https://docker.mirrors.ustc.edu.cn"]
}