【Docker 模块】使用手册
什么是 Docker?Docker 是一个用于开发、发布和运行应用程序的开放平台。Docker 使您能够将应用程序与基础架构分离,以便您可以快速交付软件。使用 Docker,您可以像管理应用程序一样管理基础设施。通过利用 Docker 快速交付、测试和部署代码的方法,您可以显着减少编写代码和在生产环境中运行之间的延迟。
什么是 Dockerfile?
Docker 可以通过读取 Dockerfile 中的指令自动构建镜像,Dockerfile 是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明。
什么是Docker Compose?
Docker Compose 是一种用于帮助定义和共享多容器应用程序的工具。使用 Compose,我们可以创建一个 YAML 文件来定义服务,并且使用一个命令或操作,可以启动所有内容或将其全部关闭。
安装:
测试版本的面板:在左侧菜单 "Docker" 界面安装
正式版本的面板:需要先在"面板设置"中的 面板菜单栏隐藏 将 "Docker" 打开,按F5刷新界面,在左侧菜单 "Docker" 界面安装
安装后界面如下:点击图片可看大图
产品功能列表与详解:
一、镜像
Docker 镜像是容器的基础。镜像没有状态,它永远不会改变。
二、容器
容器是Docker 镜像的运行实例。
三、Compose
Compose是一个使用 Docker 定义和运行复杂应用程序的工具。
四、Compose模板
Compose模板 定义构成Compose 项目的yaml文件。
五、网络
容器网络是由 Docker 为容器创造的虚拟环境的一部分,能让容器从宿主机的网络环境中独立出来。
六、存储卷
存储卷是一个或多个容器中的一个特别指定的目录,存储卷旨在数据持久化,独立于容器的生命周期。因此删除容器时,Docker 永远不会自动删除卷。
七、仓库
仓库是用来存放Docker镜像。
八、设置
Docker 服务的状态。
一、镜像
镜像界面预览:点击图片可看大图
[*]从仓库拉取:从Docker官方库、第三方库拉取镜像
例:
从docker官方仓库拉取镜像:mysql:5.7
mysql:5.7 解释; mysql是镜像的名称,5.7是标签,采用英文“:”分隔
从第三方仓库拉取镜像:registry.cn-shenzhen.aliyuncs.com/star7th/showdoc
解释:第三方仓库/用户/镜像的名称,没有标签默认为:latest
[*]导入镜像:从本服务器导入镜像
[*]构建镜像:通过Dockerfile文件构建镜像
查看构建镜像例子:点我直达 Dockerfile 构建镜像例子
[*]推送:将镜像推送到指定的仓库
注意:需要先设置你自己仓库,才能进行推送
标签填写格式:镜像名:标签,镜像名要与仓库名相同才能正常推送。如图:
[*]导出:导出镜像到本服务器
[*]删除:删除镜像,删除镜像后无法恢复请注意相关的备份
[*]ID:镜像的sha256指纹信息,也是镜像的ID
[*]镜像名:镜像的名称和标签,Docker镜像唯一的标识,如果”构建/导入镜像”有相同”镜像名称:标签”将会覆盖旧的镜像
[*]大小:镜像的大小
[*]创建时间:镜像创建的时间
二、容器
容器界面预览:点击图片可看大图
[*]添加容器:通过镜像创建容器、通过Compose模板创建容器编排
例:我们以“mysql:5.7”镜像为例创建容器
在命令行中一般这样创建容器:
docker run -d --name mysql_test -p 3361:3306 -v /docker/mysql_data/:/var/lib/mysql/ -e MYSQL_ROOT_PASSWORD=my-passwd mysql:5.7命令解释:
run:使用mysql:5.7镜像创建容器
-d:容器后台运行
--name:设置容器名为:mysql_test
-p 3361:3306:映射宿主机3361端口到容器3306端口
-v /docker/mysql_data/:/var/lib/mysql/:映射宿主机/docker/mysql_data/ 目录到容器/var/lib/mysql/ 目录,用于数据的持久化(宿主机目录如果不存在会自动创建)
-e:MYSQL_ROOT_PASSWORD=my-passwd:指定环境变量,并设置MySQL root用户密码为 my-passwd,在mysql镜像中如果不指定这条环境变量将无法运行容器
在面板中可以这样创建容器:
界面解释:
容器:对应 --name,填写容器名称
镜像:选择mysql:5.7 创建容器
暴露端口:对应 -p 3361:3306 ,注意:填写完成后要点+号图标,才会生效
启动命令:可留空
容器停止后自动删除容器:勾上后容器停止将自动删除这个容器,请注意数据的备份删除后无法恢复
限制CPU、内存:限制容器使用的资源
挂载卷:对应 -v /docker/mysql_data/:/var/lib/mysql/ ,也可以在 “存储卷界面” 添加并且选择存储卷名做数据的持久化,注意:填写完成后要点+号图标,才会生效
标签:用于标识容器的用处,可留空
环境变量:对应 -e MYSQL_ROOT_PASSWORD=my-passwd
重启规则:
不重启:重启服务器/重启Docker服务不会启动容器
关闭时重启:重启服务器/重启Docker服务自动启动容器
错误时重启(默认5次):容器出错时将重启,超过5次后不再重启,请查看容器日志进行排查错误
面板默认已经使用 run -d 后台运行
公共镜像的容器如何使用,请查看其官方的资料
[*]实时监控:实时监控容器的 CPU、内存、硬盘IO、网络IO 资源的使用
[*]终端:终端模式进入容器
注意:需要容器是启动状态才能进入容器,否则将退出到宿主机
[*]目录:通过文件管理器进入容器目录
[*]日志:查看容器的运行日志
[*]删除:删除容器,删除容器后数据无法恢复请注意数据的备份,如果容器有做数据持久化,存储卷是不会被删除
[*]容器名:可以点击进去使用“容器配置”,“生成镜像”功能
(1) 容器配置:点击“容器名”查看容器配置,可点击“…”可以查看更多配置
(2) 生成镜像:将当前容器生成镜像、生成镜像后导出压缩包
[*]状态:可以选择 启动、停止、暂停、取消暂停、重启、重载容器
[*]镜像:容器使用的镜像
[*]IP:容器的IP地址
[*]CPU使用率:容器的CPU使用率
[*]端口 (主机-->容器):宿主机映射到容器的端口,左边为宿主机
[*]启动时间:第一次启动容器的时间
[*]批量操作:选择1个及以上对容器进行批量操作:启动、停止、暂停、取消暂停、重启、重载、删除容器
三、Compose
Compose界面预览:点击图片可看大图
[*]添加Compose项目:从Compose模板中建立容器
查看Docker Compose例子:点我直达 Docker Compose例子
[*]容器列表:
(1) Compose操作:可选择 启动、停止、暂停、取消暂停、重启整个Compose项目
(2) 状态:可以选择 启动、停止、暂停、取消暂停、重启、重载容器
(3) 终端:终端模式进入容器
(4) 目录:通过文件管理器进入容器目录
(5) 日志:查看容器的运行日志
(6) 删除:删除单个容器,删除后数据无法恢复请注意数据的备份,如果容器有做数据持久化,存储卷是不会被删除
[*]删除:删除整个Compose项目的容器,将删除项目内所有的容器,删除后数据无法恢复请注意数据的备份,如果容器有做数据持久化,存储卷是不会被删除
[*]Compose项目名称:项目名称
[*]容器数量:项目内的容器数量
[*]启动时间:第一次启动容器的时间
[*]描述:用于描述此项目的用处
[*]批量操作:选择1个及以上对项目进行批量操作:删除Comose项目
四、Compose模板
Compose模板界面预览:点击图片可看大图
[*]添加:添加Compose模板、搜索本地模板
[*]编辑:编辑Compose模板
[*]拉取镜像:根据Compose模板的配置拉取镜像
[*]删除:删除Compose模板,删除后无法恢复请注意模板内容的备份
[*]模板名:模板的名称
[*]路径:模板的存储路径
[*]描述:用于描述此模板的用处
[*]批量操作:选择1个及以上对模板进行批量操作:删除Compose模板
五、网络
网络界面预览:点击图片可看大图
[*]添加网络:添加新的网络到Docker
[*]删除:删除容器网络
[*]网络名:网络的名称
[*]显示:网络驱动类型
(1) none:none模式不使用网络
(2) host:host模式直接使用宿主机的网络
(3) bridge:bridge模式与宿主机桥接,容器默认使用的网络
[*]网络号:容器网络的IP范围
[*]网关:容器网络子网的网关IP地址
[*]标签:用于标识容器网络的用处
[*]创建时间:创建容器网络的时间
[*]批量操作:选择1个及以上对网络进行批量操作:删除网络
六、存储卷
存储卷界面预览:点击图片可看大图
[*]添加存储卷:添加新的存储卷
可先添加存储卷,再到 添加容器界面 选择存储卷
[*]删除:删除存储卷,删除存储卷后数据无法恢复请注意数据的备份
[*]存储卷:容器数据持久化的存储卷名称
[*]挂载点:存储在宿主机的路径
[*]所属容器:目前那个容器在使用这个存储卷
[*]设备:存储卷所存储的设备
[*]创建时间:创建存储卷的时间
[*]标签:用于标识存储卷的用处
[*]批量操作:选择1个及以上对存储卷进行批量操作:删除存储卷,删除存储卷后数据无法恢复请注意数据的备份
七、仓库
仓库界面预览:点击图片可看大图
[*]添加仓库:添加docker官方库、第三方仓库
docker官方库添加如下:
添加仓库可参考:https://www.bt.cn/bbs/thread-80965-1-1.html
[*]编辑:编辑仓库
[*]删除:删除仓库
[*]URL:镜像仓库链接
[*]用户:登录仓库用户
[*]仓库名:仓库名称/镜像名称
[*]描述:用于标识仓库的用处
[*]批量操作:选择1个及以上对仓库进行批量操作:删除仓库
八、设置
设置界面预览:点击图片可看大图
[*]Docker服务:当前Docker服务状态,可开启、重启、停止。启动Docker服务后,容器是否启动根据重启规则来启动
[*]容器监控:开启、关闭。关闭后CPU使用率将不再监控
[*]监控天数:设置容器页面监控保存天数。默认为30天
[*]加速URL:设置加速URL,设置加速后需要手动重启Docker。Docker默认仓库在国内下载较慢,建议使用加速URL
常用的国内镜像仓库:
科大:https://docker.mirrors.ustc.edu.cn/网易:https://hub-mirror.c.163.com/阿里云: (需要注册登录获取专属镜像加速器地址) https://cr.console.aliyun.com/
【Docker 模块】使用手册---2022/7/5 第一版
本使用手册编写时使用的环境:
操作系统:CentOS7.9.2009 x86_64,内核3.10.0
面板版本:7.9.2(当前最新正式版)
面板Python环境:3.7.9
您在使用过程中有遇到问题或者有好的建议,请开新帖或者本帖下留言 上传图片:
文档出来得非常及时,不过不知道这个功能收不收费 windows版不支持docker吗?已经更新到最新,但是面板设置和左侧菜单栏都没有看到docker相关内容 发送私信.gif
创建容器不能API吗 API显示404 优秀 正在学习中 目前碰到一个问题 宝塔安装docker 后 clash 一直端口9090 显示跨域不能使用了 请问我根据项目模板创建完项目,此时容器列表中有5个容器(A、B、C、D、E),这时我更新了项目模板的yaml文件中的A模块配置,那么我该如何操作,让他仅重新编译A模块并重启。 大炮运维V587 发表于 2022-7-7 16:08
希望docker 镜像访问宿主主机mysql
试过--net=host和--add-host=host.docker.internal:host-gateway
都不能让镜像访问宿主主机的数据库,
我怀疑是我宝塔的Docker管理器配置有点问题
我是把下面这段代码填到这个启动命令中的,不知道是什么原因,大佬不吝赐教
--add-host=host.docker.internal:host-gateway
--spring.datasource.url=jdbc:mysql://host.docker.internal:3306/note?useUnicode=true&characterEncoding=utf-8&allowPublicKeyRetrieval=true&allowMultiQueries=true&useSSL=false&serverTimezone=GMT%2B8
--spring.datasource.username=root
--spring.datasource.password=111
求教:重启docker容器后端口变化怎么办,如果固定端口呢? 运维风光 发表于 2022-9-20 11:42
上传图片:
这个文本框有点太旧了吧
页:
[1]