Dockerの一般的に使用されるコマンドコレクション

Dockerの一般的に使用されるコマンドコレクション

1. Dockerの概要

  • Dockerは、Go言語に基づくオープンソースアプリケーションコンテナーエンジンであり、Apache2.0プロトコルに準拠したオープンソースです。
  • Dockerを使用すると、開発者はアプリケーションと依存パッケージを軽量のポータブルコンテナーにパッケージ化し、一般的なLinux
    マシンに公開できます。また、仮想化することもできます。
  • コンテナーは完全にサンドボックスメカニズムを使用し、相互のインターフェイスはありません(iPhoneと同様のアプリ)。さらに重要なのは、コンテナーのパフォーマンスのオーバーヘッドが非常に低いことです。
  • Dockerはバージョン17.03以降、CE(コミュニティエディション:コミュニティエディション)とEE(エンタープライズエディション:エンタープライズエディション)に分かれています。コミュニティエディションを使用できます。

2、Dockerアプリケーションのシナリオ

Webアプリケーションの自動化されたパッケージ化と公開。
自動テストおよび継続的な統合とリリース。
サービス指向環境でデータベースまたは他のバックグラウンドアプリケーションを展開および調整します。
既存のOpenShiftまたはCloud Foundryプラットフォームを最初からコンパイルまたは拡張して、独自のPaaS環境を構築します。

2.1 Dockerの利点

Dockerは、アプリケーションを開発、配信、実行するためのオープンプラットフォームです。Dockerを使用すると、アプリケーションをインフラストラクチャから分離できるため、ソフトウェアを迅速に配信できます。Dockerを使用すると、アプリケーションを管理するのと同じ方法でインフラストラクチャを管理できます。Dockerの方法を使用してコードを迅速に配信、テスト、およびデプロイすることにより、コードを記述してから本番環境で実行するまでの遅延を大幅に削減できます。
(1)アプリケーションを迅速かつ一貫し
て提供するDockerを使用すると、開発者は提供するアプリケーションまたはサービスのローカルコンテナーを使用して、標準化された環境で作業できるため、開発ライフサイクルが簡略化されます。
コンテナは継続的インテグレーションおよび継続的デリバリー(CI / CD)ワークフローに最適です。次のシナリオ例を検討してください:
開発者がローカルでコードを記述し、Dockerコンテナを使用して同僚と作業を共有します。
Dockerを使用して、アプリケーションをテスト環境にプッシュし、自動または手動のテストを実行します。
開発者は、エラーを見つけた場合、開発環境で修正してから、テストと検証のためにテスト環境に再デプロイできます。
テストが完了したら、パッチを本番環境にプッシュするのは、更新されたイメージを本番環境にプッシュするのと同じくらい簡単です。
(2)迅速な導入と拡張

Dockerは、移植性の高いワークロードを可能にするコンテナーベースのプラットフォームです。Dockerコンテナーは、開発者のマシン、データセンターの物理マシンまたは仮想マシン、クラウドサービス、またはハイブリッド環境で実行できます。
Dockerの移植性と軽量機能により、動的管理のワークロードを簡単に完了し、ビジネスニーズの指示に従って、アプリケーションとサービスをリアルタイムで拡張または削除できます。
(3)
Dockerは軽量かつ高速で、同じハードウェアでより多くのワークロードを実行できますハイパーバイザーに基づく仮想マシンに代わる、実行可能で経済的かつ効率的な代替手段を提供するため、より多くの計算能力を使用してビジネス目標を達成できます。Dockerは高密度環境や中小規模のデプロイメントに非常に適しており、少ないリソースでより多くのことができます。

3、Dockerアーキテクチャ

  • Dockerには3つの基本的な概念があります。
    イメージ:Dockerイメージはルートファイルシステムと同等です。たとえば、公式のミラーubuntu:16.04には、Ubuntu 16.04最小システムのルートファイルシステムの完全なセットが含まれています。
    コンテナ:イメージとコンテナの関係は、オブジェクト指向プログラミングのクラスとインスタンスに似ています。イメージは静的な定義であり、コンテナは実行時のイメージのエンティティです。コンテナの作成、開始、停止、削除、一時停止などができます。
    リポジトリ:リポジトリは、画像を保存するためのコードコントロールセンターと見なすことができます。
    Dockerはクライアント/サーバー(C / S)アーキテクチャモデルを使用し、リモートAPIを使用してDockerコンテナーを管理および作成します。
    Dockerコンテナーは、Dockerイメージを介して作成されます。
    コンテナとミラーの関係は、オブジェクト指向プログラミングのオブジェクトとクラスに似ています。
  • Dockerオブジェクト指向
  • コンテナオブジェクト
  • ミラークラス
    ここに画像の説明を挿入

4、Dockerのインストール

  • dockerのバージョン19をデプロイする

4.1依存関係のインストール


yum -y install yum-utils device-mapper-persistent-data lvm2

//yum-utils 提供了yum-config-manager 

//device mapper 存储驱动程序需要device-mapper-persistent-data和lvm2

//device mapper 是Linux2.6内核中支持逻辑卷管理的通用设备映射机制。

//它为实现用于存储资源管理的块设备驱动提供了一个而高度模块化的内核架构

4.2 Alibaba Cloudイメージソースの設定


yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

4.3 docker-ceをインストールする


yum -y install docker-ce

systemctl start docker.service

systemctl enable docker.service 

setenforce 0

vim /etc/selinux/config
SELINUX=disabled

4.4画像の加速

Alibaba Cloudの公式Webサイトを入力してください ""検索ミラーアクセラレーション "" centosバージョンを選択してください


sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
    
    
  "registry-mirrors": ["https://1i3tpy0i.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

4.5ネットワークの最適化


vim /etc/sysctl.conf
net.ipv4.ip_forward=1

sysctl -p

service network restart
systemctl restart docker

5、Dockerイメージの使用

  • Dockerのバージョンを表示する
docker version
  • Nginxミラー(公共倉庫)を検索
docker  search nginx
  • Nginx画像をダウンロード
docker pull  nginx
  • 次と同等のRedisの最新の公式イメージをダウンロードします。dockerpull redis:latest

docker pull redis

  • 倉庫のすべてのRedisイメージをダウンロードする

docker pull -a redis

  • 専用倉庫ミラーをダウンロード後
    、専用図書館の開設について詳しく紹介します
docker pull bitnami/redis
  • AUFS(関連ファイルシステム)複数のレイヤーのダウンロード
  • ダウンロード後に/ var / lib / dockerに保存
  • / var / lib / docker / image / overlay / repositories / json //ファイル情報をダウンロードする
  • ミラーリストを見る

docker images  //查看下载镜像信息
[root@localhost opt]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
nginx               latest              7e4d58f0e5f3        8 days ago          133MB

    REPOSITORY:表示镜像的仓库源

    TAG:镜像的标签

    IMAGE ID:镜像ID

    CREATED:镜像创建时间

    SIZE:镜像大小
//含中间映像层
docker images -a

//只显示镜像ID
docker images -q
//含中间映像层
docker images -qa 

//显示镜像摘要信息(DIGEST列)
docker images --digests
//显示镜像完整信息
docker images --no-trunc

  • ミラー情報を取得する

docker inspect 7e4d58f0e5f3 

  • 新しいラベルを追加

docker tag nginx:latest  nginx:web

[root@localhost opt]# docker tag nginx:latest  nginx:web
[root@localhost opt]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
nginx               latest              7e4d58f0e5f3        8 days ago          133MB
nginx               web                 7e4d58f0e5f3        8 days ago          133MB

//查看镜像Nginx信息

[root@localhost opt]# docker images | grep nginx 
nginx               latest              7e4d58f0e5f3        8 days ago          133MB
nginx               web                 7e4d58f0e5f3        8 days ago          133MB

  • ミラーを削除
docker rmi  nginx:web   (如果只有一个别名,那么这个就是删除docker。如果是多个标签,那么就是只是删除一个标签)

  • ドッカーを削除
docker rmi  docker——id  注:删除docker如果有其他别名需要删除只剩一个,才能删除docker
在删除容器之前需要先停止容器

  • 単一イメージの削除、次と同等:docker rmi redis:latest
docker rmi redis
  • 強制削除(イメージに基づいて実行されているコンテナープロセスの場合)
docker rmi -f redis
  • 異なるミラー間のスペースで区切られた複数のミラーを削除する
docker rmi -f redis tomcat nginx
  • すべてのローカルミラーを一括で削除する

docker rmi -f $(docker images -q)

  • エクスポートされたNginxイメージはNginxという名前で、ディレクトリoptに保存されます

docker save -o 文件名 镜像id或者镜像别名

[root@localhost ~] docker save -o /opt/nginx 7e4d58f0e5f3 
[root@localhost opt] docker save -o nginx1 nginx:latest 
[root@localhost ~]cd /opt
[root@localhost opt] ll
总用量 133636
drwx--x--x. 4 root root        28 9月  17 15:43 containerd
-rw-------. 1 root root 136841216 9月  19 19:04 nginx
drwxr-xr-x. 2 root root         6 10月 31 2018 rh

  • 画像をインポート

docker load-入力エクスポートファイル名

docker load <エクスポートファイル名


[root@localhost opt] docker load --input nginx 
Loaded image ID: sha256:7e4d58f0e5f3b60077e9a5d96b4be1b974b5a484f54f9393000a99f3b6816e3d

[root@localhost opt] docker load < nginx
Loaded image ID: sha256:7e4d58f0e5f3b60077e9a5d96b4be1b974b5a484f54f9393000a99f3b6816e3d
[root@localhost opt] docker load --input nginx1
Loaded image: nginx:latest

6、ドッカーコンテナーの使用

  • コンテナの作成

docker create -it nginx:latest /bin/bash

[root@localhost opt] docker create -it nginx:latest /bin/bash
59c4c2f2b6a00bceb196f1bbcfe02fc5a2e16edc66feb12310c9474bf939d833

  • -i:インタラクティブな操作。
  • -t:ターミナル。
  • / bin / bash:イメージ名の後にコマンドを入力します。ここではインタラクティブシェルを作成するため、/ bin / bashを使用します。
  • docker run:新しいコンテナーを作成してコマンドを実行する
语法

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

OPTIONS说明:

    -a stdin: 指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项;

    -d: 后台运行容器,并返回容器ID;

    -i: 以交互模式运行容器,通常与 -t 同时使用;

    -P: 随机端口映射,容器内部端口随机映射到主机的端口

    -p: 指定端口映射,格式为:主机(宿主)端口:容器端口

    -t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;

    --name="nginx-lb": 为容器指定一个名称;

    --dns 8.8.8.8: 指定容器使用的DNS服务器,默认和宿主一致;

    --dns-search example.com: 指定容器DNS搜索域名,默认和宿主一致;

    -h "mars": 指定容器的hostname;

    -e username="ritchie": 设置环境变量;

    --env-file=[]: 从指定文件读入环境变量;

    --cpuset="0-2" or --cpuset="0,1,2": 绑定容器到指定CPU运行;

    -m :设置容器使用内存最大值;

    --net="bridge": 指定容器的网络连接类型,支持 bridge/host/none/container: 四种类型;

    --link=[]: 添加链接到另一个容器;

    --expose=[]: 开放一个端口或一组端口;

    --volume , -v: 绑定一个卷

实例

使用docker镜像nginx:latest以后台模式启动一个容器,并将容器命名为mynginx。

docker run --name mynginx -d nginx:latest

使用镜像nginx:latest以后台模式启动一个容器,并将容器的80端口映射到主机随机端口。

docker run -P -d nginx:latest

使用镜像 nginx:latest,以后台模式启动一个容器,将容器的 80 端口映射到主机的 80 端口,主机的目录 /data 映射到容器的 /data。

docker run -p 80:80 -v /data:/data -d nginx:latest

绑定容器的 8080 端口,并将其映射到本地主机 127.0.0.1 的 80 端口上。

$ docker run -p 127.0.0.1:80:8080/tcp ubuntu bash

使用镜像nginx:latest以交互模式启动一个容器,在容器内执行/bin/bash命令。

runoob@runoob:~$ docker run -it nginx:latest /bin/bash

  • コンテナを見る
docker ps -a

[root@localhost opt] docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
59c4c2f2b6a0        nginx:latest        "/docker-entrypoint.…"   2 minutes ago       Created                                 pedantic_bose

//显示最近创建容器
docker ps -l

//显示最近创建的3个容器
docker ps -n 3

//不截断输出
docker ps --no-trunc 

//获取镜像redis的元信息
docker inspect redis

//获取正在运行的容器redis的 IP
docker inspect --format='{
    
    {range .NetworkSettings.Networks}}{
    
    {.IPAddress}}{
    
    {end}}' redis

//查看正在运行的容器
docker ps

//查看正在运行的容器的ID
docker ps -q

//查看正在运行+历史运行过的容器
docker ps -a

//显示运行容器总文件大小
docker ps -s

  • コンテナーを開始する

docker start 59c4c2f2b6a0

查看镜像 up 状态
[root@localhost opt] docker start 59c4c2f2b6a0
59c4c2f2b6a0
[root@localhost opt] docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
59c4c2f2b6a0        nginx:latest        "/docker-entrypoint.…"   3 minutes ago       Up 9 seconds        80/tcp              pedantic_bose

  • コンテナを停止
docker stop 容器ID
  • コンテナを再起動します
docker restart 容器ID
  • 実行コマンドを開始して、システムのルートディレクトリを表示します。

docker pull centos 7
docker create it centos 7 /bin/bash
docker start 8c6dd3246eb4  

docker run nginx /usr/bin/bash -c ls 

  • 実行直後に閉じ、ステータスは終了します

  • バックグラウンドでの継続的な実行

  • コンテナエントリー


[root@localhost opt] docker exec -it 8c6dd3246eb4 /bin/bash

docker exec :在运行的容器中执行命令

    -d :分离模式: 在后台运行

    -i :即使没有附加也保持STDIN 打开

    -t :分配一个伪终端

 docker exec -i -t  mynginx /bin/bash

docker exec -it 9df70f9a0714 /bin/bash

exit   退出

  • コンテナ輸出

 docker export 8c6dd3246eb4 > nginx_c
 
 8c6dd3246eb4:容器ID
 
 Nginx_c :导出容器文件名 
 
  • コンテナーのインポート(イメージは生成されますが、コンテナーは作成されません)

cat nginx_c | docker import - nginx:web

 nginx_c:导出的容器文件名
 
 nginx:web:新的容器名
 
  • コンテナを削除します(コンテナを停止する必要があります)

[root@localhost opt] docker rm 8c6dd3246eb4 
Error response from daemon: You cannot remove a running container 8c6dd3246eb42099dbf58e2730f348acc21b685a4f27c60185d9a427e1282f09. Stop the container before attempting removal or force remove
[root@localhost opt] docker stop 8c6dd3246eb4
8c6dd3246eb4
[root@localhost opt] docker rm 8c6dd3246eb4
8c6dd3246eb4

  • コンテナーを一括で削除する

方法一:docker ps -a | awk '{print "docker rm $1"}' | bash

方法二:
[root@localhost opt]docker rm -f $(docker ps -aq)
395dab3d44df
2b52ff42681f
1627dc7213cd
960857ff1ba0
59c4c2f2b6a0
 

//强制杀死进程容器(处于运行状态才能杀死进程-docker start id)

docker kill  id

  • 実行中のコンテナを削除する
docker rm -f redis
  • 複数のコンテナを削除する

docker rm -f $(docker ps -a -q)
docker ps -a -q | xargs docker rm

  • -lコンテナ間のネットワーク接続を削除します。接続名はdbです
docker rm -l db 
  • -vコンテナーを削除し、コンテナーによってマウントされたデータボリュームを削除します

docker rm -v redis

  • ミラーを削除しない

vim none.sh

docker ps -a | grep "Exited" | awk '{print $1}'|xargs docker stop
docker ps -a | grep "Exited" | awk '{print $1}'|xargs docker rm
docker images|grep none|awk '{print $3}'|xargs docker rmi

  • -f:SIGKILLシグナルを使用して、実行中のコンテナーを強制的に削除します。

  • -l:コンテナー自体ではなく、コンテナー間のネットワーク接続を削除します

  • -v:コンテナーに関連付けられたボリュームを削除します。

  • コンテナ工程



//top支持 ps 命令参数,格式:docker top [OPTIONS] CONTAINER [ps OPTIONS]


//列出redis容器中运行进程

docker top redis(容器ID)


//查看所有运行容器的进程信息

for i in  `docker ps |grep Up|awk '{print $1}'`;do echo \ &&docker top $i; done

  • コンテナログ

//查看redis容器日志,默认参数
docker logs rabbitmq

//查看redis容器日志,参数:-f  跟踪日志输出;-t   显示时间戳;--tail  仅列出最新N条容器日志;
docker logs -f -t --tail=20 redis

//查看容器redis从2019年05月21日后的最新10条日志。
docker logs --since="2019-05-21" --tail=10 redis

  • docker pause:コンテナー内のすべてのプロセスを一時停止します

  • docker unpause:コンテナー内のすべてのプロセスを再開します。


实例

暂停数据库容器db01提供服务。

docker pause db01

恢复数据库容器db01提供服务。

docker unpause db01

7、ミラーを作成する

  • 既存の画像コンテナに基づいて画像を作成する

docker create -it jasonlix/docker-cobbler /bin/bash

docker commit -m "new" -a "daoke" c83aee844ae0 daoke:test

docker images | grep daoke

  • ローカルテンプレートに基づいて作成

将文件debian-7.0-x86-minimal.tar.gz拖至opt目录中

[root@localhost opt] cat debian-7.0-x86-minimal.tar.gz | docker import - daoke:new
sha256:6683b936f5574560c919751a6622d4131bb7fb4d88f7a9614c55fb7f554ef2c0

[root@localhost opt] docker images | grep new
daoke                       new                 6683b936f557        13 seconds ago      215MB
 

  • dockerfileに基づいてイメージをビルドする

mkdir apache

cd apache

vim Dockerfile

#基于的基础镜像
FROM centos
#维护镜像的用户信息
MAINTAINER The project <[email protected]>
#镜像操作指令安装Apache软件
RUN yum -y update
RUN yum -y install httpd
#开启80端口
EXPOSE 80
#复制网站首页文件
ADD index.html /var/www/html/index.html
#将执行脚本复制到镜像中
ADD run.sh /run.sh
RUN chmod 755 /run.sh
#启动容器时执行脚本
CMD ["/run.sh"]

vim run.sh

#!/bin/bash
rm -rf /run/httpd/*
exec /usr/sbin/apachectl -D FOREGROUND

echo "web test" > index.html

  • 生産ミラー

docker build -t httpd:centos1 .    (注意别忘了末尾有“.”)

  • コンテナを実行する新しいイメージ

docker run -d -p 1216:80 httpd:centos1 

docker start 4fbc428fac3a  (开启容器)

[root@localhost apache]docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                      PORTS                  NAMES
4fbc428fac3a        httpd:centos1       "/run.sh"                8 seconds ago       Up 7 seconds                0.0.0.0:1216->80/tcp   affectionate_lovelace
a4f43a12352e        registry            "/entrypoint.sh /etc…"   2 hours ago         Exited (2) 40 minutes ago                          goofy_bose
ba786a224305        registry            "/entrypoint.sh /bin…"   2 hours ago         Exited (127) 2 hours ago                           zen_hamilton

  • 実際のブラウザーをテストする
  • http://192.168.75.200:1216/

8つのDockerデータ管理

(1)データ管理操作

  • コンテナで生成されたデータを便利に表示する
  • 複数のコンテナ間でのデータ共有

(2)2つの管理方法

  • データ量:ホストとコンテナー間で共有
  • データボリュームコンテナー:コンテナーとコンテナー間で共有
  • データ量:コンテナ用の特別なディレクトリ

(3)データボリュームを作成する


docker run -d -v /data1 -v /data2 --name web httpd:centos

  • ホストディレクトリをデータボリュームとしてマウントします(ホストディレクトリをコンテナディレクトリと同期します)

docker run -d -v /var/www:/data1 --name web-1 httpd:centos

  • web-1はコンテナ名を参照します。httpd:centosはミラーです。つまり、ディレクトリをマウントし、コンテナweb-1ミラーをhttpdとして生成し、ラベルはcentosです。

docker pull centos

//宿主机目录/var/www挂载容器中的/data1

docker run  -v /var/www:/data1 --name web1 -it centos /bin/bash

cd /data1
touch test123

//返回宿主机进行查看

ls /var/www

  • データボリュームコンテナー

//数据卷容器

docker run --name web100 -v /data1 -v /data2 -it centos /bin/bash  ##(加/bin/bash 就是可以直接进入容器)

  • 新しいコンテナーマウントデータボリュームコンテナーweb100

docker run -it -volumes-from web100 --name db1 centos /bin/bash

注释:容器web100 和容器db1 所挂载的目录data1和data2 数据是同步运行的。

  • ポートマッピング

docker run -d -p httpd:centos

docker run -d -p 49280:80 httpd:centos

docker ps -a

9つの地元の民間倉庫施設


docker pull registry

[root@localhost /]# docker pull registry
Using default tag: latest
latest: Pulling from library/registry
cbdbe7a5bc2a: Pulling fs layer 
47112e65547d: Pulling fs layer 
46bcb632e506: Pulling fs layer 
c1cc712bcecd: Pulling fs layer 
3db6272dcbfa: Pulling fs layer 
latest: Pulling from library/registry
cbdbe7a5bc2a: Pulling fs layer 
47112e65547d: Pulling fs layer 
46bcb632e506: Pulling fs layer 
c1cc712bcecd: Pulling fs layer 
3db6272dcbfa: Pulling fs layer 
open /var/lib/docker/tmp/GetImageBlob684407966: no space left on device

---------------------------------------------------

vim /etc/docker/daemon.json
{
    
    
  "insecure-registries":["192.168.75.200:5000"],  //添加
  "registry-mirrors": ["https://1i3tpy0i.mirror.aliyuncs.com"]
}
~ 
systemctl restart docker.service  

docker create -it registry /bin/bash #新建容器

docker ps -a
[root@localhost docker]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                       PORTS                    NAMES
ba786a224305        registry            "/entrypoint.sh /bin…"   44 minutes ago      Exited (127) 9 minutes ago                            zen_hamilton

docker start 231d40e811cd   ##开启(不是up是正确的)

##宿主机的/data/registry自动创建挂载容器中的/tmp/registry
docker run -d -p 5000:5000 -v /data/registry:/tmp/registry registry

docker pull httpd

##更改标记为192.168.75.200:5000/httpd  
docker tag httpd:latest 192.168.75.200:5000/httpd  (标记IP地址与私有仓库的地址和端口相一致)
docker push 192.168.75.200:5000/httpd  ##上传镜像

##获取私有仓库列表
curl -XGET http://192.168.75.200:500/v2/_catalog
docker pull 192.168.75.200:500/httpd ##测试私有仓库下载镜像

  • ポートマッピング

docker run -d -P httpd:centos   ##随机分配外部的映射端口
docker run -d -p 43992:80 httpd:centos  ##指定端口映射
docker ps -a   ##查看

10、コンテナ相互接続

(1)コンテナ相互接続のためのポートマッピング

  • web1という名前のコンテナーを作成して実行すると、ポート番号が自動的にマップされます
docker run -itd -P --name web1 ecntos /bin/bash 

  • web2という名前のコンテナーを作成して実行し、web1に接続して通信します

docker run -itd -P --name web2 --link web1:web1 centos /bin/bash

  • web2コンテナーにping web1

ポートマッピングは、Dockerを別のコンテナーに接続する唯一の方法ではありません。

Dockerには、複数のコンテナーを接続して接続情報を共有できる接続システムがあります。

Docker接続は、親コンテナが子コンテナの情報を見ることができる親子関係を作成します。

(2)コンテナ相互接続のネットワーク設定

新建网络
下面先创建一个新的 Docker 网络。

$ docker network create -d bridge test-net

参数说明:

-d:参数指定 Docker 网络类型,有 bridge、overlay。

其中 overlay 网络类型用于 Swarm mode,在本小节中你可以忽略它。
连接容器

运行一个容器并连接到新建的 test-net 网络:

$ docker run -itd --name test1 --network test-net ubuntu /bin/bash

打开新的终端,再运行一个容器并加入到 test-net 网络:

$ docker run -itd --name test2 --network test-net ubuntu /bin/bash

apt-get update
apt install iputils-ping

下面通过 ping 来证明 test1 容器和 test2 容器建立了互联关系。

如果 test1、test2 容器内中无 ping 命令,则在容器内执行以下命令安装 ping(即学即用:可以在一个容器里安装好,提交容器到镜像,在以新的镜像重新运行以上俩个容器)。

ここに画像の説明を挿入

ここに画像の説明を挿入

11.まとめ

  1. Dockerのコンテナーテクノロジーは、ホスト上の任意のアプリケーション用の軽量でポータブルな自己完結型コンテナーを簡単に作成できます。
  2. ミラー、コンテナ、およびウェアハウスは、Dockerの3つのコアコンセプトです。
  3. Dockerfileは、Dockerプログラムによって解釈されるスクリプトです。Dockerfileは複数の命令で構成されており、各命令はLinuxのコマンドに対応しています。
  4. Dockerコンテナー内のデータのメインデータボリュームとデータボリュームコンテナーモードを管理します。

おすすめ

転載: blog.csdn.net/weixin_42099301/article/details/108723463