IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> Docker的学习(下) -> 正文阅读

[系统运维]Docker的学习(下)

Docker的学习(下)

此教程基于【编程不良人】2021年最新Docker容器技术&Docker-Compose实战教程,哔哩哔哩链接:https://www.bilibili.com/video/BV1ZT4y1K75K?p=1

官方文档地址:https://docs.docker.com/get-started/

中文文档地址:https://vuepress.mirror.docker-practice.com/

24.Docker Compose简介、安装

image-20220123120118578

image-20220123120729671

image-20220123122451463

在linux中安装docker compose,首先输入

sudo curl -L https://github.com/docker/compose/releases/download/1.25.5/docker-compose-`uname -s -`uname -m` > /usr/local/bin/docker-compose

之后修改下载好的docker compose名字,

image-20220123121735390

之后移动这么docker-compose到我们的/usr/local/bin目录下,因为这个目录已经配置了环境变量,我们之后就可以直接使用docker compose的命令,无须在配置环境变量,之后输入

sudo chmod +x /usr/local/bin/docker-compose

表示给予/usr/local/bin/docker-compose这个目录执行权限

image-20220123122240176

之后查看docker compose是否安装成功

docker-compose -v

image-20220123122405020

25.Docker Compose的第一个环境

image-20220123123235707

首先我们在某个目录创建一个docker-compose.yml文件,之后打开该文件书写相关信息,

image-20220123123525139

版本号为docker-compose的版本号,目前4.0以下的版本都可写,ports的书写建议用引号包起来,如将8080:8080改为"8080:8080",因为你使用的端口号小于60且没放到引号中,yaml会自动解析xx:yy这种数字格式为60进制,可能会得到错误的结果。

附docker compose与docker引擎的对应版本:

image-20220123140408957

保存文件,之后在该目录下输入docker-compose up 或者 dcoker-compose up -d(表示后台启动),发现不同服务的启动日志会以不同的颜色显示

注意:docker-compose up 启动的前提是你的docker compose文件名为docker-compose.yml,如果你的docker compose文件名不叫这个,则需要指定docker compose的名字,如 docker-compose -f 你的docker compose名字 up

image-20220123123804373

之后我们通过浏览器访问8080端口和8083端口,结果如下

image-20220123123923266

26.Docker Compose的命令模板

image-20220123124340597

image-20220123145602007

image-20220123131926993

image-20220123142539347

image-20220123134747301

image-20220123124302866

image-20220123124447643

image-20220123125027115

volumes

我们继续书写docker-compose.yml,使用自定义数据卷的方式将宿主机的/root/apps与容器的/usr/local/tomcat/webapps作映射,

image-20220123130000809

之后运行docker-compose,我们输入docker-compose up ,发现tomcat已经将我们宿主机/root/apps下的所有文件都当作一个web应用进行部署了

image-20220123130232221

我们继续书写docker-compose代码,使用自动创建数据卷的方式,此处需要注意的是,我们的数据卷需要先声明

image-20220123130452279

之后重新运行docker-compose,我们输入docker volume ls 查看所有的数据卷,发现我们自动创建的数据卷tomcatwebapps并不叫tomcatwebapps,而是叫hello_tomcatwebapps,这是因为我们的docker-compose.yml所在的文件夹叫hello,docker-compose会将这个目录作为项目名自动拼接上。如果需要自定义项目名,可以通过 -p 项目名的形式进行启动docker-compose,

docker-compose -p apps(自定义项目名)up

image-20220123130943239

我们也可以自定义,但是这种方式必须在启动服务之前手动创建这个数据卷,所有我们一般用默认的即可,即将true改为false

image-20220123131408497

networks

我们继续书写docker-compose.yml文件,指定容器连接的网络

image-20220123133000690

之后启动docker-compose,查看启动日志发现创建的是hello_hello网桥,即和volumes一样,docker-compose会将docker-compose.yml所在这个目录作为项目名自动拼接上

image-20220123133233581

我们可以通过docker network ls 查看所有的网桥,我们不想加上项目名,继续书写docker-compose.yml文件,

image-20220123133608825

但是使用这种方式后我们必须在启动服务时先创建这个网桥,dcoker network create -d bridge hello(创建hello网桥)

container_name

我们可以指定每个容器的名称,我们继续书写docker-compose.yml文件,

image-20220123133925627

之后启动docker-compose,查看服务启动日志,发现名称已经改变

image-20220123134047131

之后我们进入端口为8080的tomcat01容器的终端交互模式,并抓取tomcat02的内容,

image-20220123134408646

ip a 查看ip地址:

image-20220123134557341

environment

此处我们以配置mysql为例,我们继续打开docker-compose.yml文件

image-20220123134926674

之后启动docker-compose,并使用navicat连接mysql数据库,新增一个数据库,之后进入所对应的数据卷,发现我们所创建的数据库test已经存在

image-20220123135337248

command

此处我们以配置redis为例,我们继续打开docker-compose.yml文件

image-20220123135547013

之后启动docker-compose,并使用RDM连接redis,新增一个数据,之后进入所对应的数据卷,发现我们持久化文件已经存在

image-20220123135756533

27-28.Docker Compose回顾

image-20220123140708074

29.Docker Compose模板命令总结

env_file

从文件中获取环境变量,可以为单独的文件路径或列表,可以用来替代environment,如我们如果直接在docker compose中的environment中书写mysql的密码,这样不安全。我们在docker-compose所在的目录下新建一个mysql.env文件,书写如下代码:

image-20220123141608054

之后继续书写docker-compose文件,替换environment

image-20220123141649040

depends_on

解决容器的依赖、启动先后的问题,继续书写docker-compose文件,

image-20220123142212645

healthcheck

通过命令检查容器是否健康运行

以下表示对tomcat01这个服务在1分30s内对运行 cmd curl -f http://localhost 发起请求看是否能响应,重试次数为3次,超时时间为10s

image-20220123143348778

sysctls

配置容器内核参数

用来修改容器中系统内部参数,并不是必须的,有些服务启动受容器内操作系统参数限制可能会无法启动必须通过修改容器中参数才能启动

image-20220123144153850

ulimits

指定容器的ulimits限制值

image-20220123144413463

总结:

image-20220123144622272

30.Docker Compose中模板指令build的使用

image-20220123145522597

首先,我们的dockerfile文件如下

image-20220123150305084

之后编写docker-compose.yml文件,

image-20220123150759719

之后输入docker-compose updocker-compose -d(后台启动) up 启动docker-compose,

image-20220123150951481

问题:为什么我们此处先写bulid能给我们先构建镜像在运行呢?

这是我们我们启动docker compose使用的是up指令,up指令非常强大,它能帮助我们构建镜像再运行

31.Docker Compose指令的使用

image-20220123151408276

image-20220123152656814

image-20220123154457840

image-20220123153938339

image-20220123154704966

up

docker-compose up 表示启动所有服务

docker-compose up 服务名 表示启动某个服务

down

停止up命令所启动的容器,并移除网络,我们自己创建的网桥并不会移除,只会移除它自动创建的

image-20220123153000040

exec

进入指定的容器

image-20220123153405735

ps

列出项目中目前的所有容器

image-20220123153613434

restart

重启项目中的服务

image-20220123153822367

top

查看所有容器:

image-20220123154117114

查看具体某个容器:

image-20220123154205846

pause、unpause

暂停、恢复暂停的服务:

image-20220123154415048

logs

docker-compose logs 查看所有的容器启动日志

docker-compose logs 容器名称 | 容器id 查看某个容器启动日志

32.Docker可视化工具Portainer的使用

image-20220123155827422

image-20220123161302994

首先我们输入 docker pull portainer/portainer ,之后启动portainer

docker run -d -p 8000:8000 -p 9000:9000 --name=portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portianer_data:/data portainer/portainer

image-20220123161704849

之后我们访问9000端口,我们需要先进行注册

image-20220123161754600

之后我们选择连接本地的portainer

image-20220123161921493

之后进入到主界面

image-20220123162011965

我们点击进去就可以查看更多详情

image-20220123162136872

网桥管理:

image-20220123162341873

容器管理:

image-20220123162625093

通过docker compose启动

我们也可以在docker-compose.yml文件中使用portainer

image-20220123163013615

之后 docker-compose up 即可

喜欢请关注我

至此,我们的Docker的学习(下)就讲解完毕了,喜欢我的话可以关注我的微信公众号 我爱学习呀嘻嘻 ,不定期分享各类资源哦。

Docker的学习(上)

Docker的学习(中)

在这里插入图片描述

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-01-24 11:21:19  更:2022-01-24 11:22:58 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 12:29:48-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码