当前位置: 首页 > news >正文

Docker 入门与实践:从零开始构建容器化应用环境

Docker

  • 一、docker常用命令
    • docker ps 格式化输出
    • Linux设置命令别名
  • 二、数据卷
    • 相关命令
    • 挂载到默认目录(/var/lib/docker)
    • 挂载到本地目录
  • 三、自定义镜像
    • Dockerfile
    • 构建镜像的命令
  • 四、网络
    • 自定义网络
  • 五、DockerCompose
    • 相关命令

一、docker常用命令

在这里插入图片描述

docker ps 格式化输出

docker ps --format "table {{.ID}}\t{{.Names}}\t{{.Ports}}\t{{.Status}}"

Linux设置命令别名

编辑此文件

vi ~/.bashrc

alias [别名]=[需要别名的命令]
注意,等号两边不要空格,若命令包含空格,则一定要加 ‘ ’

刷新生效

source ~/.bashrc

举个例子:
在这里插入图片描述

二、数据卷

在docker容器中,容器只包含可运行的最小环境,在容器不能使用vi命令进行编辑,因此通过数据卷把容器中的文件挂载到宿主机,实现双向数据绑定。

  • 数据卷是一个虚拟目录,方便操作容器内文件
  • -v 数据卷名:容器目录
    在这里插入图片描述

相关命令

在这里插入图片描述

挂载到默认目录(/var/lib/docker)

在这里插入图片描述

挂载到本地目录

在这里插入图片描述
举个例子:

docker运行mysql镜像

在这里插入图片描述

三、自定义镜像

镜像结构:
在这里插入图片描述

Dockerfile

在这里插入图片描述
举个例子:
在这里插入图片描述

构建镜像的命令

在这里插入图片描述
举个例子:

在这里插入图片描述

四、网络

当Docker进程启动时,会在主机上创建一个名为docker0的虚拟网桥,此主机上启动的Docker容器都会连接到这个虚拟网桥上。虚拟网桥的工作方式和物理交换机类似,这样主机上的所有容器就通过交换机连在了一个二层网络中。
注意:网桥分配的ip地址是随机的,每次容器启动可能分配的ip地址不相同。
在这里插入图片描述

自定义网络

自定义网络会创建一个新的虚拟网桥,容器之间可以通过容器名相互访问,不再受ip地址变化而影响访问
在这里插入图片描述
容器加入自定义网络的两种方式:

  • 在容器创建时,可以直接加入网络。
    在这里插入图片描述
  • 在容器已经运行后,使用命令行加入
docker network connect 【网络】【容器名】

举个例子:
在这里插入图片描述

五、DockerCompose

通过一个yml文件,可快速构建项目。
在这里插入图片描述
和docker run的语法相比较:
在这里插入图片描述

相关命令

在这里插入图片描述
举个例子:

[root@long java-jar-web-project-docker]# cat docker-compose.yml 
version: '3'                                     # Docker-Compose版本
services: web:build:                                   # Jdk运行环境使用Dockerfile文件context: ./web-servicedockerfile: Dockerfileports:                                   # 端口映射  9999 -> 9999- '9999:9999'container_name: web_db                	 # 容器名volumes:- './jar:/home/jar_home'             # 映射路径, 将主机的 ./jar 路径映射到容器内的/home/jar_homedepends_on:       						 # 执行顺序- 'redis'- 'mysql'networks:								 # 绑定ip地址extnetwork:ipv4_address: 175.20.0.4mysql:       								 # mysql 同上environment:MYSQL_ROOT_PASSWORD: 123456MYSQL_USER: testMYSQL_PASS: testimage: mysql:5.7networks:extnetwork:ipv4_address: 175.20.0.2container_name: mysql_dbrestart: alwaysvolumes:- './mysql-service/db:/var/lib/mysql'- './mysql-service/conf/my.cnf:/etc/my.cnf'- './mysql-service/init:/docker-entrypoint-initdb.d/'ports:- '6606:3306'redis:  									 # redis restart: alwaysimage: redis 							 # redis镜像container_name: redis_db    			 # redis容器名字command: redis-server --requirepass 123456 --appendonly yes    # redis容器密码,开启持久化networks:								 # 绑定ip地址extnetwork:ipv4_address: 175.20.0.3ports:									 # 端口映射- '6609:6379'volumes:   								 # 将本地 ./redis-service/db 映射到 容器中的 /data 目录- './redis-service/db:/data'
networks:extnetwork:ipam:config:- subnet: 175.20.0.0/16

后记
👉👉💕💕美好的一天,到此结束,下次继续努力!欲知后续,请看下回分解,写作不易,感谢大家的支持!! 🌹🌹🌹

相关文章:

Docker 入门与实践:从零开始构建容器化应用环境

Docker 一、docker常用命令docker ps 格式化输出Linux设置命令别名 二、数据卷相关命令挂载到默认目录(/var/lib/docker)挂载到本地目录 三、自定义镜像Dockerfile构建镜像的命令 四、网络自定义网络 五、DockerCompose相关命令 一、docker常用命令 dock…...

C# 用户控件UserControl事件解绑资源释放

用户控件继承子 UserControl 。 现在有个业务需求在UserControl 所在的窗体关闭时解除事件HMouseDown绑定。 因没有相关的Close事件。后来本人想了一个办法在 ROICtlDesigner类的 Dispose 方法中执行相关的释放代码 比如解除事件绑定 释放资源 public partial class ROICt…...

QT-QTCreator环境配置

准备工作: 下载QT: 链接:https://pan.baidu.com/s/1prJcsC4DGqhKiXvLuPQFVA?pwd60b3 提取码:60b3下载WindowsKits: 链接:https://pan.baidu.com/s/1QNiS3HpbH5M5kXx5AhkqnQ?pwde2h8 提取码:e2h8安装的…...

最大连续和

【问题描述】 对于一个具有n个元素的整型数组 a,求具有最大连续和的子数组(最少具有一个元素)。 【输入形式】 输入的第一行为一个整数 n,接下来的一行为 n 个整数,表示数组的元素。 【输出形式】 输出具有最大连续和的…...

分布式系统事务一致性解决方案(基于事务消息)

参考:https://rocketmq.apache.org/zh/docs/featureBehavior/04transactionmessage/ 文章目录 概要错误的方案方案一:业务方自己实现方案二:RocketMQ 事务消息什么是事务消息事务消息处理流程事务消息生命周期使用限制使用示例使用建议 概要 …...

Unity Animation--动画剪辑

Unity Animation--动画剪辑 动画剪辑 动画剪辑是Unity动画系统的核心元素之一。Unity支持从外部来源导入动画,并提供创建动画剪辑的能力使用“动画”窗口在编辑器中从头开始。 外部来源的动画 从外部来源导入的动画剪辑可能包括: 人形动画 运动捕捉…...

如何将 redis 快速部署为 docker 容器?

部署 Redis 作为 Docker 容器是一种快速、灵活且可重复使用的方式,特别适合开发、测试和部署环境。本文将详细介绍如何将 Redis 部署为 Docker 容器,包括 Docker 安装、Redis 容器配置、数据持久化、网络设置等方面。 步骤 1:安装 Docker 首…...

iOS - Undefined symbols: 解决方法

Undefined symbols: 是让人苦恼的报错,如何知道是 哪个 symbols 不对呢? 今天探索到下面的方法: 1、点击导航上方 最右侧的按钮,查看历史报错 2、选中报错信息,右键选择 Expand All Transcripts 在出现的详细信息面…...

优化理论复习——(三)

本篇介绍无约束优化的问题,通过四种算法来进行求解的过程和思路,也是最优化方法中的最重要的一类问题。 无约束优化问题主要是通过迭代搜索算法来切结,比线性规划的计算量都小一点。 目录 无约束优化问题最优性条件最速下降法牛顿法共轭梯度…...

RK3568笔记二十四:基于Flask的网页监控系统

若该文为原创文章,转载请注明原文出处。 此实验参考 《鲁班猫监控检测》,原代码有点BUG,已经下载不了。2. 鲁班猫监控检测 — [野火]嵌入式AI应用开发实战指南—基于LubanCat-RK系列板卡 文档 (embedfire.com) 一、简介 记录简单的摄像头监…...

[Django 0-1] Core.Serializers 模块

Core.Serializers 模块 Django 序列化模块 模块结构 . ├── __init__.py ├── base.py ├── json.py ├── jsonl.py ├── python.py ├── pyyaml.py └── xml_serializer.py1 directory, 7 files自定义序列化器 通过继承django.core.serializers.base.Serial…...

鸿蒙内核源码分析(用栈方式篇) | 程序运行场地谁提供的

精读内核源码就绕不过汇编语言,鸿蒙内核有6个汇编文件,读不懂它们就真的很难理解以下问题. 1.系统调用是如何实现的? 2.CPU是如何切换任务和进程上下文的? 3.硬件中断是如何处理的? 4.main函数到底是怎么来的? 5.开机最开始发生了什么? 6.关机…...

Linux 进程间通信之匿名管道

💓博主CSDN主页:麻辣韭菜💓   ⏩专栏分类:Linux知识分享⏪   🚚代码仓库:Linux代码练习🚚   🌹关注我🫵带你学习更多Linux知识   🔝 目录 前言 一. 进程间通信介绍 1.进程间通…...

数据结构与算法学习笔记六--数组和广义表(C语言)

目录 前言 1.数组 1.定义 2.初始化 3.销毁 4.取值 5.设置值 6.完整代码 前言 这篇博客主要介绍数据结构中的数组和广义表的用法。 1.数组 在数据结构中,数组是一种线性数据结构,它由一组连续的相同类型的元素组成,每个元素都有一个唯…...

图搜索算法详解

图搜索算法详解 摘要: 图搜索算法是解决路径规划和网络分析问题的关键技术。本文将详细介绍图搜索算法的基本概念、分类以及常见的算法,如广度优先搜索(BFS)、深度优先搜索(DFS)、A*搜索等。同时&#xff…...

安卓中常见的UI控件

TextView(文本视图)EditText(编辑文本)Button(按钮)ImageView(图像视图)ImageButton(图像按钮)CheckBox(复选框)RadioButton&#xff…...

基于Labelme的背部穴位关键点制作

一、穴位定位方法 穴位定位,自春秋时期以来,通过各代医学实践的继承与发展,形成了一套较为科学的定位体系。这套体系基于经络理论,采用“寸”作为测量单位,按照人体比例来进行精确的穴位定位,主要有依据体…...

go-mysql-transfer 同步数据到es

同步数据需要注意的事项 前提条件 1 要同步的mysql 表必须包含主键 2 mysql binlog 必须是row 模式 3 不支持程序运行过程中修改表结构 4 要赋予连接mysql 账号的权限 reload, replication super 权限 如果是root 权限则不需要 安装 go-mysql-transfer ​ git clone…...

外包干了3天,技术就明显退步了。。。。。

先说一下自己的情况,本科生,19年通过校招进入广州某软件公司,干了接近4年的功能测试,今年年初,感觉自己不能够在这样下去了,长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了四年的功能测试…...

将要上市的自动驾驶新书《自动驾驶系统开发》中摘录各章片段 1

以下摘录一些章节片段: 1. 概论 自动驾驶系统的认知中有一些模糊的地方,比如自动驾驶系统如何定义的问题,自动驾驶的研发为什么会有那么多的子模块,怎么才算自动驾驶落地等等。本章想先给读者一个概括介绍,了解自动驾…...

String、StringBuilder、StringBuffer之间的区别是什么?

在Java中,String、StringBuilder 和 StringBuffer 是处理字符串的三个类,其中 String 是不可变对象,而 StringBuilder 和 StringBuffer 是可变对象。这些类在字符串操作方面具有不同的特性和用途。 String String 类表示不可变的字符序列&a…...

docker系列8:容器卷挂载(上)

目录 传送门 从安装redis说起 什么是容器卷挂载 操作系统的挂载 日志文件一般是"首恶元凶" 挂载命令 容器卷挂载 卷挂载命令 启动时挂载 查看挂载卷信息 容器卷管理 查看卷列表 创建容器卷 具名挂载与匿名挂载 具名挂载 传送门 docker系列1&#xff…...

痉挛性斜颈患者自己做哪些运动对脖子好?

痉挛性斜颈(Dystonia)是一种罕见的神经系统疾病,其特点是颈部肌肉痉挛,导致头部姿势异常倾斜或扭曲。而在治疗痉挛性斜颈中,运动疗法是非常重要的一部分。下面将介绍一些痉挛性斜颈患者可以自己进行的运动,…...

数据结构——二叉树链式结构的实现(上)

二叉树概念 再看二叉树基本操作前,再回顾下二叉树的概念, 二叉树是: 1. 空树 2. 非空:根节点,根节点的左子树、根节点的右子树组成的。 从概念中可以看出,二叉树定义是递归式的 二叉树构成&#xff1…...

数据结构内容概览

0. 绪论 绪论01——复杂度度量 绪论02——复杂度分析 绪论03——递归分析 绪论04——算法分析 绪论05——动态规划 算法设计与优化——前n项和计算 算法设计优化——对于任意非负整数,统计其二进制展开中数位1的总数 算法设计优化——Fibonacci数 算法设计优化——…...

当Linux系统运行时间长了之后,会出现磁盘空间不足提示,需要及时进行清理

Linux系统(CentOS 7)的磁盘空间不足时,可以采取以下步骤进行清理: 查找并删除大文件: 使用du和find命令可以找到并删除大文件。例如,要查找/目录下大于100MB的文件,可以运行: find /…...

【Flask 系统教程 4】Jinjia2模版和语法

Jinjia2 模板 模板的介绍 Jinja2 是一种现代的、设计优雅的模板引擎,它是 Python 的一部分,由 Armin Ronacher 开发。Jinja2 允许你在 HTML 文档中嵌入 Python 代码,以及使用变量、控制结构和过滤器来动态生成内容。它的语法简洁清晰&#…...

与 Apollo 共创生态:七周年大会心得

与 Apollo 共创生态:七周年大会心得 前言 4月19日,百度Apollo迎来七周年,历经七年的不懈追求与创新,Apollo开放平台已陆续推出了13个版本,汇聚了来自全球170多个国家与地区的16万名开发者及220多家合作伙伴。作为一名…...

『FPGA通信接口』DDR(4)DDR3内存条SODIMMs读写测试

文章目录 前言1.MIG IP核配置2.测试程序3.DDR应用4.传送门 前言 不论是DDR3颗粒还是DDR3内存条,xilinx都是通过MIG IP核实现FPGA与DDR的读写。本文区别于DDR颗粒,记录几个与颗粒配置不同的地方。关于DDR的原理与MIG IP的简介,请查看前面文章&…...

Element UI 快速入门指南

Element UI 快速入门指南 Element UI 是一个基于 Vue.js 的组件库,提供了丰富的 UI 组件和工具,可以帮助开发人员快速构建现代化的 Web 应用程序。本文将介绍如何快速入门使用 Element UI,并展示一些常用的组件和功能。 安装 Element UI 使…...

wordpress敏感词/宁波seo关键词费用

列表推导式 # 过滤掉长度小于3的字符串列表,并将剩下的转换成大写字母 l1 [太白金星, fdsaf, alex, sb, ab] print([ i.upper() for i in l1 if len(i) > 3]) #out:[太白金星, FDSAF, ALEX]匿名函数 num_to_ipv4 lambda x: ..join([str(int(x/(256**i)%256))…...

wordpress 顶一下/seo实战论坛

主要说一下个人经历,希望能给即将面试的小伙伴一些有效信息。大家都要加油~ 基本情况 先说一下个人基本情况,计算机科学与技术专业。主要学的Android开发,所以投的岗位都是Android开发工程师。投了知乎,内推了阿里蘑菇街腾讯百度…...

wordpress 显示点击数/网上怎么注册公司免费的

SoftwareONE携手微软在苏州举行VIP会议,会议详细如下:有兴趣的朋友,邮件最下方有我的联系方式,可以直接跟我联系,期待您的参与! 若有打扰之处,还请见谅,谢谢! SQL Serv…...

全球最大的外贸平台/seo网站优化推广教程

黑客技术点击右侧关注,了解黑客的世界!Linux编程点击右侧关注,免费入门到精通!回想一下我们发布 iOS 应用,不仅步骤繁琐,非常耗时。一旦其中一步失误了,又得重新来。作为一名优秀的工程师不应该…...

更新服务 wordpress/模板网站建站哪家好

一.Base镜像(scratch) docker hub中99%的镜像都是通过在base镜像中安装和配置需要的软件构建出来的 二.自定义镜像mycentoses 1.编写: 1)Hub默认centos镜像什么情况, 如下: 现在要实现这3点 2&#xff0…...

上海正规建设网站私人订制/数字营销服务商seo

python中一般使用xlrd(excel read)来读取Excel文件,使用xlwt(excel write)来生成Excel文件(可以控制Excel中单元格的格式),需要注意的是,用xlrd读取excel是不能对其进行操作的:xlrd.open_workbook()方法返回xlrd.Book类型&#xf…...