docker-file 网络

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 镜像结构

分层结构,不同的模块可以有共享的层。

DockerFile

1.基础命令

2.根据dockerfile构建镜像

docker网络

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

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

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

不同容器的ip地址是网桥给分配的,重启后ip地址可能会变。

在java代码中配置mysql的ip地址会有问题

自定义网络

加入自定义网络的容器可以互相访问,

并且可以通过容器名互相访问,不需要知道容器名。

docker network create heima

新加入的网卡

容器加入网络 docker network connect heima nginx

docker inspect nginx 查看 多出一个network

docker 部署黑马商城

视频内容p34

c 复制代码
=====手动部署=====

1.打包java jar包,通过dockerfile构建java镜像,启动
	docker run -d --name hm -p 8080:8080 --network heima hmall

2.挂载mysql

docker 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 \
  mysql

2.mysql连接网络
docker network connect heima mysql


18080 用户端
18081 服务端

3.挂载nginx

docker 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

docker compose描述信息和docker run差不多,语法上会有些差异

左侧 docker run构建容器,右侧docker compose构建容器

直接上传compose文件


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

创建了容器

docker compose down

容器全部移除,网络全部移除

相关推荐
进击的圆儿25 分钟前
TCP可靠传输的秘密:从滑动窗口到拥塞控制
网络·网络协议·tcp/ip
图图图图爱睡觉26 分钟前
主机跟虚拟机ip一直Ping不通,并且虚拟机使用ifconfig命令时,ens33没有ipv4地址,只有ipv6地址
服务器·网络·tcp/ip
lhxcc_fly1 小时前
Linux网络--8、NAT,代理,网络穿透
linux·服务器·网络·nat
开开心心就好1 小时前
电子报纸离线保存:一键下载多报PDF工具
网络·笔记·macos·pdf·word·音视频·phpstorm
是Yu欸2 小时前
【博资考5】网安2025
网络·人工智能·经验分享·笔记·网络安全·ai·博资考
交换机路由器测试之路3 小时前
交换机路由器基础(二)-运营商网络架构和接入网
网络·架构
马达加斯加D3 小时前
k8s --- Intro
云原生·容器·kubernetes
大隐隐于野3 小时前
tcp large-receive-offload
网络
Gauss松鼠会4 小时前
【openGauss】构建一个兼容Oracle模式支持创建package的openGauss的docker镜像
数据库·docker·oracle·opengauss
liubaoyi2175 小时前
网络原理--HTTP
网络·http