关于Docker

前提 tí)

我会写下我学到的有关Docker的知识。

这个问题

基本指令

使用Dockerfile的信息构建容器镜像。

构建

读取指定目录中的Dockerfile并构建容器镜像。

构建的容器镜像将会保存在运行该命令的机器上。
可以通过-t标签添加一个保存时的名称。

显示保存在本地的Docker容器内容

用最新版本的dockerdemo镜像,以守护进程方式在后台运行,并将主机的8080端口映射到容器的80端口上。

実行中のコンテナの出力
docker container ls

停止容器
docker container stop 容器ID

容器网络是什么?

服务器上有一个LAN端口。
有几个物理上连接着LAN电缆的网络接口卡(NIC)。
虚拟服务器像EC2也是一样。
EC2只是对这样的NIC进行了虚拟化,工作原理与物理服务器相同。
传入Eth0的通信由内核控制。
在Linux中,可以使用iptables等工具来控制通信。
Docker可以很好地在内核级别运行,并为容器和外部通信做桥接。

Eth0のような物理的なレイヤーを通過

Dockerネットワークのレイヤーに到着

Dockerデーモンが物理レイヤーとDockerレイヤーのネットワークを接続する

コンテナはDockerデーモンを通じて外部のネットワークと通信している
↓Dockerレイヤーの中身
もっともよく使われているシンプルなネットワーキングBridge

Bridgeという仮想的なネットワークの接続ポイントを使用した方法

コンテナを3つ立ち上げた場合

vethをかいして、それぞれのコンテナはBridgeに接続している

Bridgeはネットワーク機器でいうとスイッチのような役割で、Bridge自体は独立したネットワーク領域

Bridgeに応じたIPアドレスがコンテナに割り当てられる

Bridgeは複数作成することができる

显示当前Docker网络的信息。

查看网桥的网络地址是什么。

创建一个名为greenbridge的可附加的docker网络,网络类型为bridge,子网为10.99.0.0/16。

容器的容量是多少?

在默认情况下,容器内部生成的数据将保存在容器内部。
→如果删除容器,所有数据都会完全消失。
容器是一种不可变且临时的执行进程,是双刃剑。
数据库容器需要永不消失的数据。

不要将定制数据保存在容器内。

通过使用Docker的挂载功能,可以实现容器和主机之间的文件共享。

这个区别是指文件共享区域是由Docker控制还是由主机控制的。

如何与容器和Docker区域进行协作

绑定挂载

Docker中卷的管理和挂载方式
编辑Dockerfile文件
VOLUME /var/www/html
VOLUME用于指定容器端的挂载点

使用Bind mount实现文件共享的方法:
docker容器运行命令:–name bindmount1 -d -p 80:80 -v /root/bindmount:/var/www/html volumdemo:latest

在主機上指定要掛載的目錄位於左側。
使用冒號分隔,指定右側容器要掛載的區域。

在中国本地化的方式之一:
docker容器运行命令:docker container run –name bindmount1 -d -p 80:80 -v ${pwd}:/var/www/html volumdemo:latest

当前目录将自动替换为${pwd}。

广告
将在 10 秒后关闭
bannerAds