Dockerコンテナーの基本的なイメージのダウンロードにより、基本的な操作が高速化されます

Dockerの概要

Dockerは、開発者がアプリケーションと依存パッケージをポータブルコンテナーにパッケージ化し、人気のあるLinuxマシンまたはWindowsマシンに公開できるオープンソースのアプリケーションコンテナーエンジンです。仮想化することもできます。コンテナーは完全です。サンドボックスメカニズムを使用すると、相互のインターフェイスがなくなります。
完全なDockerは次の部分で構成されています
。DockerClientクライアント
Dockerデーモンデーモン
Dockerイメージミラー
DockerContainerコンテナー

ここに画像の説明を挿入

  1. Dockerは、アプリケーションを開発、配信、実行するためのオープンプラットフォームです。Dockerを使用すると、アプリケーションをインフラストラクチャから分離できるため、ソフトウェアを迅速に提供できます。
  2. これはオープンソースのアプリケーションコンテナーエンジンであり、開発者はゲートアプリケーションと依存パッケージをポータブルイメージにパッケージ化し、仮想化できる一般的なLinuxまたはWindowsマシンに公開できます。コンテナはサンドボックスメカニズムを完全に使用し、コンテナ間にインターフェースはありません
  3. サンドボックス:コンピュータセキュリティの分野では、サンドボックスはプログラム用の分離された操作メカニズムです
  4. Dockerは2013年にヒットし、現在までコンテナーテクノロジーの代名詞となっています。
  5. Dockerは、真の「一度構築してどこでも実行できる」という最初から標準化されたランタイム環境を提供することを目指しています。同じビルドバージョンを、開発、テスト、プレリリース、本番環境などのどの環境でも使用できます。基盤となるオペレーティングシステムの分離。これに基づいて、CaaS(Container as a Service)テクノロジーがさらに開発されました

Dockerの一般的な使用シナリオ

パッケージ化されたアプリケーションの単純な展開は
、基盤となるハードウェアから自由に移行できます(アプリケーションの分離が実現され、アプリケーションが分割および分離されます)。たとえば、Tencent CloudからAlibaba Cloudへのサーバーの移行
継続的統合および継続的デリバリー(CI / CD):開発リリースをテストし、マイクロサービスを
デプロイし
、PAAS製品(サービスとしてのプラットフォーム)を提供します。OpenStackクラウドホストはAlibaba Cloud ECSに似ており、IAASに属し、Docker(K8S)はPAASに属します

Dockerエンジン

Docker Engine
Docker Engineは、次の主要コンポーネントを備えたクライアントサーバーアプリケーションです。
サーバーは、デーモンプロセス(dockerdコマンド)と呼ばれる長期実行プログラムです。
REST API。これは、プログラムがデーモンと通信してその操作を指示するために使用できるインターフェースを指定します。
コマンドラインインターフェース(CLI)クライアント(dockerコマンド)。
ここに画像の説明を挿入Dockerアーキテクチャ(Dockerアーキテクチャ)
Dockerはクライアント/サーバーアーキテクチャを使用しています。DockerクライアントはDockerデーモンと通信します。Dockerデーモンは、Dockerコンテナーの構築、実行、および配布という重い作業を完了します。

Dockerは従来の仮想化とは異なり、仮想ハードウェアリソースを必要とせず、コンテナエンジンを直接使用するため、高速です

Dockerクライアント:クライアント
Dockerクライアント(docker)は、多くのDockerユーザーがDockerと対話する主な方法です。docker runなどのコマンドを使用すると、クライアントはこれらのコマンドをdockerdに送信して、これらのコマンドを実行します。dockerコマンドはDocker APIを使用します。Dockerクライアントは複数のデーモンと通信できます。

Dockerデーモン:デーモン
Dockerデーモン(dockerd)は、Docker APIリクエストをリッスンし、イメージ、コンテナー、ネットワーク、ボリュームなどのDockerオブジェクトを管理します。デーモンは他のデーモンと通信してDockerサービスを管理することもできます。

Dockerイメージ:イメージ
コンテナーをイメージにパッケージ化できます

Dockerコンテナー:コンテナー
Dockerレジストリ:ミラーリポジトリ
ミラーイメージを保存する場所。デフォルトでは、パブリックDocker Hubで検索され、個人用リポジトリを作成できます。

コンテナーと仮想マシンの違い

ここに画像の説明を挿入

名前空間

Dockerは名前空間と呼ばれるテクノロジーを使用して、コンテナーに分離されたワークスペースを提供します。コンテナーを実行すると、Dockerはコンテナーの名前空間のセットを作成します。
これらの名前空間は、分離のレイヤーを提供します。コンテナーのすべての側面は個別の名前空間で実行され、そのアクセスはその名前空間に制限されます。
Docker EngineはLinuxで次の名前空間を使用し
ます:pid名前空間:プロセス分離(PID:プロセスID)。
ネット名前空間:管理ネットワークインターフェイス(NET:ネットワーク)。
ipc名前空間:IPCリソースへのアクセスを管理します(IPC:プロセス間通信)。
mnt名前空間:管理ファイルシステムのマウントポイント(MNT:マウント)。
uts名前空間:カーネルとバージョン識別子を分離します。(UTS:Unix Time Sharing System)。

対照群

Linux上のDockerエンジンは、cgroupsと呼ばれる別のテクノロジーにも依存しています。cgroupは、アプリケーションを特定のリソースセットに制限します。コントロールグループにより、Docker Engineは利用可能なハードウェアリソースをコンテナーと共有し、制限と制約を選択的に適用できます。たとえば、特定のコンテナで使用可能なメモリを制限できます。

かかって来い!公演!

Dockerのインストール

ネットワーク最適化

[root@5centos ~]# setenforce 0
[root@5centos ~]# iptables -F
[root@5centos ~]# vim /etc/sysctl.conf 	##末行插入
net.ipv4.ip_forward=1
[root@5centos ~]# sysctl -p
net.ipv4.ip_forward = 1

インストールツール

[root@5centos ~]# yum -y install yum-utils device-mapper-persistent-data lvm2

Alibaba Cloudイメージを設定する

[root@5centos ~]# yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
[root@5centos ~]# cd /etc/yum.repos.d/
[root@5centos yum.repos.d]# ls
CentOS-Base.repo  CentOS-Debuginfo.repo  CentOS-Media.repo    CentOS-Vault.repo
CentOS-CR.repo    CentOS-fasttrack.repo  CentOS-Sources.repo  docker-ce.repo

Docker Community Editionをインストールする(主に無料)

[root@5centos yum.repos.d]# yum -y install docker-ce
[root@5centos yum.repos.d]# systemctl start docker
[root@5centos yum.repos.d]# docker version 	##查看信息

Dockerアクセラレーション

アリババクラウド公式サイトの検索ミラー加速度は、1つ目は
、この選択し、次に
ここに画像の説明を挿入1を、
ここに画像の説明を挿入ここに画像の説明を挿入
参照のための公式のチュートリアルがあります

Dockerの基本操作

ミラー検索
ドッカー検索画像名

[root@5centos /]# docker search nginx

画像ダウンロード
ドッカープル画像名

[root@5centos /]# docker pull wodby/nginx

既存の画像と詳細情報を表示する
docker images
docker inspect image ID

[root@5centos /]# docker images		##查看已有镜像
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
wodby/nginx         latest              971aceb353d9        4 weeks ago         75.4MB
[root@5centos /]# docker inspect 971aceb353d9		##详细信息

イメージがダウンロードされて保存されます:/ var / lib / docker、ダウンロードされたファイル情報:/var/lib/docker/image/overlay2/repositories.json

タグをイメージ
Dockerタグに追加するウェアハウス名:元のタグウェアハウス名:新しい
タグタグを追加すると、古いタグと新しいタグが同時に存在します

[root@5centos /]# docker tag wodby/nginx:latest wodby/nginx:web
[root@5centos /]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
wodby/nginx         latest              971aceb353d9        4 weeks ago         75.4MB
wodby/nginx         web                 971aceb353d9        4 weeks ago         75.4MB

ミラー削除
docker rmiミラーID
docker rmiミラー名
同じラベルがある場合は、ラベルIDを削除してエラーを報告します。ラベルが1つだけ残っている場合は、ラベルを削除できます

[root@5centos /]# docker rmi wodby/nginx:latest 
Untagged: wodby/nginx:latest
[root@5centos /]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
wodby/nginx         web                 971aceb353d9        4 weeks ago         75.4MB

指定されたディレクトリ
Docker save -oに画像をエクスポートします対応するディレクトリウェアハウス名:ラベル

[root@5centos /]# docker save -o /opt/nginxweb wodby/nginx:web 
[root@5centos /]# ls /opt/nginxweb 
/opt/nginxweb

イメージの
docker loadをインポート <imageまたはdocker load --input image

[root@5centos opt]# docker load < nginxweb 
Loaded image: wodby/nginx:web

ミラーアップロード

[root@docker ~]# docker login --username=juejue registry.cn-hangzhou.aliyuncs.com	'//先登录'
Password: 
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded
[root@docker ~]# docker tag ed21b7a8aee9 registry.cn-hangzhou.aliyuncs.com/tang_docker001/tang_docker001:latest
[root@docker ~]# docker push registry.cn-hangzhou.aliyuncs.com/tang_docker001/tang_docker001:latest	'//开始上传'
The push refers to repository [registry.cn-hangzhou.aliyuncs.com/tang_docker001/tang_docker001]
d37eecb5b769: Pushed 
99134ec7f247: Pushed 
c3a984abe8a8: Pushed 
latest: digest: sha256:7ac7819e1523911399b798309025935a9968b277d86d50e5255465d6592c0266 size: 948

コンテナ操作

コンテナー
Dockerを作成しますcreate -it Warehouse name:label login environment

[root@5centos opt]# docker create -it wodby/nginx:web /bin/bash
603f7eb7f17de60b185f4285fac2c6cd1d4dd8d4bf97ee04fe39e7b7f885ef1a

コンテナーステータスの表示
docker ps -a

[root@5centos opt]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
603f7eb7f17d        wodby/nginx:web     "/docker-entrypoint.…"   2 minutes ago       Created                                 keen_zhukovsky

コンテナー
Dockerの開始コンテナーID

[root@5centos opt]# docker start 603f7eb7f17d
603f7eb7f17d
[root@5centos opt]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
603f7eb7f17d        wodby/nginx:web     "/docker-entrypoint.…"   4 minutes ago       Up 3 seconds        80/tcp              keen_zhukovsky

実行中のコンテナー
docker exec -itコンテナーID環境またはdocker run -itコンテナー名:ラベル環境を使用(実行後に自動的に終了)

[root@5centos opt]# docker exec -it 603f7eb7f17d /bin/bash
/var/www/html$

コンテナー
Docker停止コンテナーIDを停止します

[root@5centos opt]# docker stop 603f7eb7f17d
603f7eb7f17d

コンテナーを起動してバックグラウンドで実行する

[root@docker ~]# docker run -d  centos:7 /bin/bash -c "while true;do echo hello;done"
6101ea6eedbf7a1dcc75bb9d7cc1eb94e83b343b6829b6546d6ceda318545df6
##-c:命令

コンテナ輸出

[root@5centos opt]# docker export 603f7eb7f17d > /opt/nginx
[root@5centos opt]# ls /opt/
containerd  nginx  nginxweb  rh

コンテナをインポート
するとミラーが生成されますが、コンテナは作成されません

[root@5centos opt]# cat /opt/nginx | docker import - nginx01
sha256:3383211c95ee1c0f09306cf893852c0aa8a4e9366f826502a8a76e54c1c0fa6b
[root@5centos opt]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
nginx01             latest              3383211c95ee        10 seconds ago      75.2MB
wodby/nginx         nginx               971aceb353d9        4 weeks ago         75.4MB
wodby/nginx         web                 971aceb353d9        4 weeks ago

コンテナーを削除します。
コンテナーのステータスを
docker rmコンテナーIDにすることはできません

[root@5centos opt]# docker rm 603f7eb7f17d
603f7eb7f17d

バッチ
Docker ps -a | awk '{print "docker rm" $ 1}' | bashでコンテナーを削除します

[root@5centos opt]# docker ps -a |awk '{print "docker rm "$1}'|bash
Error: No such container: CONTAINER
88429fd11d13
d5a4fe53ebb1
[root@5centos opt]# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

おすすめ

転載: blog.csdn.net/Ora_G/article/details/108684763