docker-file 网络

ops/2024/10/20 23:43:43/

docker_1">docker挂载

1.绑定挂载(Bind Mounts):绑定挂载是将主机上的文件或目录挂载到容器中。

docker run -v /host/path:/container/path image_name 

2.卷挂载(Volume Mounts):卷挂载将 Docker 数据卷挂载到容器中。数据卷是一个可供一个或多个容器使用的特殊目录,用于存储数据和共享数据。它独立于容器的生命周期,容器可以在挂载点读取和写入数据,就像使用普通目录一样。可以通过在运行容器时使用 -v 或 --mount 参数指定卷挂载。

docker run -v volume_name:/container/path image_name
相当于挂载宿主机目录下的卷 /var/lib/docker/volumes/volume_name, 到容器的目录

3.临时文件系统(tmpfs)挂载:临时文件系统挂载允许将临时文件系统挂载到容器的指定路径。与绑定挂载和卷挂载不同,临时文件系统挂载仅在容器的生命周期内存在,并且不会对主机文件系统产生影响。可以通过在运行容器时使用 --tmpfs 参数来指定临时文件系统挂载。例如:
docker run --tmpfs /container/path image_name

原文链接:https://blog.csdn.net/weixin_49171365/article/details/131506045

docker__17">docker 镜像结构

分层结构,不同的模块可以有共享的层。
在这里插入图片描述

DockerFile

1.基础命令

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

dockerfile_31">2.根据dockerfile构建镜像

在这里插入图片描述

docker_35">docker网络

docker容器里运行的所有容器mysql redis nginx等在同一个网段中,因为他们有相同的网关。

在这里插入图片描述

dockerdocker0_43">安装docker会默认创建一张虚拟的网卡docker0

网卡充当网桥的作用,所有和他相连的分配到一个ip,可以相互访问

在这里插入图片描述

不同容器的ip地址是网桥给分配的,重启后ip地址可能会变。
在java代码中配置mysql的ip地址会有问题

自定义网络

加入自定义网络容器可以互相访问,
并且可以通过容器名互相访问,不需要知道容器名。
在这里插入图片描述

docker network create heima

新加入的网卡
在这里插入图片描述

容器加入网络 docker network connect heima nginx
docker inspect nginx 查看 多出一个network

在这里插入图片描述

docker__68">docker 部署黑马商城

视频内容p34
在这里插入图片描述

=====手动部署=====1.打包java jar包,通过dockerfile构建java镜像,启动docker run -d --name hm -p 8080:8080 --network heima hmall2.挂载mysqldocker run -d  \--name mysql \-p 3306:3306 \-e TZ=Asia/Shanghai \-e MYSQL_ROOT_PASSWORD=123 \-v /root/mysql/data:/var/lib/mysql \-v /root/mysql/init:/docker-entrypoint-initdb.d \-v /root/mysql/conf:/etc/mysql/conf.d \mysql2.mysql连接网络
docker network connect heima mysql18080 用户端
18081 服务端3.挂载nginxdocker run -d \--name nginx \-p 18080:18080 \-p 18081:18081 \-v /root/nginx/html:/usr/share/nginx/html \-v /root/nginx/nginx.conf:/etc/nginx/nginx.conf \--network heima \nginx

docker_compose_111">docker compose

docker compose描述信息和docker run差不多,语法上会有些差异
在这里插入图片描述

docker_rundocker_compose_115">左侧 docker run构建容器,右侧docker compose构建容器

在这里插入图片描述

直接上传compose文件


docker_compose_up_d_rooot_121">docker compose up -d 创建了一个镜像,默认名字是rooot

在这里插入图片描述

创建了容器

在这里插入图片描述

docker_compose_down_125">docker compose down

容器全部移除,网络全部移除
在这里插入图片描述


http://www.ppmy.cn/ops/45229.html

相关文章

STL-queue的使用及其模拟实现

在C标准库中,队列(queue)是一种容器适配器,它以先进先出的方式组织数据,其中从容器一端插入元素,另一端取出元素。 queue的使用 queue的构造函数 queue的成员函数 empty:检测队列是否为空size:返回队列中有…

灯塔工厂产业数字化平台解决方案(50页PPT)

方案介绍: 随着工业4.0和智能制造的快速发展,传统工厂正面临着转型升级的迫切需求。为了提升生产效率、优化资源配置、增强市场竞争力,我们推出了灯塔工厂产业数字化平台解决方案。该方案旨在通过先进的信息技术手段,将传统工厂转…

网络之再谈体系结构

大家都知道的是网络的体系结构,现代软件常用的体系结构无非是TCP/IP协议栈,OSI因为实现复杂并且效率没有TCP/IP协议栈好,所以不用OSI,但是,最近在复习网络知识的时候,发现了一些奇怪的地方,那就…

el-select 组件获取整个对象

法一:要获取整个对象的话,如果有列表就可以遍历列表,找到指定对象 let obj this.chainTaskList.find((item) > item.chainTaskNo e); if (obj) {this.form.storeNo obj.storeNo;this.form.storeName obj.couponVO.storeName; }或 fo…

TH方程学习(1)

一、背景介绍 根据CW方程的学习,CW方程的限制条件为圆轨道,不考虑摄动,二者距离相对较小。TH方程则可以将物体间的相对运动推广到椭圆轨道的二体运动模型,本部分将结合STK的仿真功能,联合考察TH方程的有用性&#xff…

Mybatis多表查询

MyBatis-多表查询-一对一查询(方式一) 一个菜品对应一个分类 直接菜品记录category对象 菜品id写入Dish,后面的分类直接写入 Category类 封装,如果sql不能封装上,那么直接使用resultmap封装 使用resultType只能封装基本属性 所以要定义一个resultmap手动封装 使用标签 要…

《web应用技术》第9次课后作业

一、将前面的代码继续完善功能 1、采用XML映射文件的形式来映射sql语句; 2、采用动态sql语句的方式,实现条件查询的分页。 二、学习git的使用。 1、每个小组将自己的项目上传到gitee,学会协作开发; 2、学会从gitee上拉取项目…

理解消息队列:队列与主题的区别

理解消息队列:队列与主题的区别 如果你研究过多种消息队列产品,可能会发现每种消息队列都有自己的一套消息模型,像队列(Queue)、主题(Topic)或分区(Partition)这些名词概念在不同的消息队列模型中含义各异。这是因为没有统一的标准。尽管曾有国际组织尝试制定过消息相…