Docker网络及SpringBoot应用打包

Java(SpringBoot)项目打包(构建)成`Docker`镜像的几种方式 小简选择的是最后一个,第一个也还行吧,但是Google那个不需要本地有Docker环境,第一个我还是开着魔法(梯子)打包的,最后一个挺好的。看情况选择的,很久没更新啦!越来越懒了,嘿嘿,下篇再见。 阅读详情

1、查看当前阿里云的一网络信息

# 命令  ip addr 

在这里插入图片描述

2、查看容器内部网络地址

这里使用上一篇博客的自定义Dockerfile文件构建的tomcat,因为默认拉取的镜像是没有ip add 和 ifconfig命令的
详情点击链接

2.1 启动镜像

[root@wkf /]# docker run -d -P --name tomcat01 mytomcat

2.2 查看容器内部的ip信息

[root@wkf build]# docker exec -it tomcat01 ip addr

在这里插入图片描述

2.3、外部ping内部


[root@wkf ~]# ping 172.17.0.2

在这里插入图片描述

2.4 原理

1、每启动一个docker容器,docker就会给docker容器分配一个ip,我们只要安装了docker,就会有一个网卡docker0,桥接模式,使用的技术是evth-pair技术

外部再次测试 ip addr,发现除了docker0 出现了一个新的网卡

在这里插入图片描述
2、再启动一个tomcat02

[root@wkf build]# docker run -d -p 8081:8080 --name tomcat02  mytomcat 

3、测试tomcat01 ping tomcat02
结果可以ping通

结论:tomcat01 和tomcat02 是共用的一个路由器,docker0
所有的容器不指定网络的情况下,都是docker0路由的,docker会给我们的容器分配一个默认的可用ip

docker使用的是Linux的桥接,宿主机是一个Docker容器的网桥 docker0
docker中的所有的网络接口都是虚拟的。虚拟的转发效率高!
只要容器删除,对应网桥就没了

2.5 --link 解决网络连通

2.5.1 直接用服务名ping 发现ping不通
[root@wkf ~]# docker exec -it tomcat01 ping tomcat02
ping: tomcat02: Name or service not known
2.5.2 在启动一个tomcat03 使用–link命令连接tomcat03到tomcat02
docker run -d -P --name tomcat03 --link tomcat02 mytomcat 
2.5.3 测试tomcat03去ping tomcat02,发现ping成功了
[root@wkf ~]# docker exec -it tomcat03 ping tomcat02
PING tomcat02 (172.17.0.3) 56(84) bytes of data.
64 bytes from tomcat02 (172.17.0.3): icmp_seq=1 ttl=64 time=0.136 ms
64 bytes from tomcat02 (172.17.0.3): icmp_seq=2 ttl=64 time=0.095 ms
2.5.4 反向 tomcat02去ping tomcat03,发现失败了
[root@wkf ~]# docker exec -it tomcat02 ping tomcat03
ping: tomcat03: Name or service not known
2.5.5 查看所有的网络 docker network ls
# bridge 就是网桥 docker0
[root@wkf ~]# docker network ls
NETWORK ID     NAME      DRIVER    SCOPE
583488748f8c   bridge    bridge    local
af41c422f293   host      host      local
5a1e992daa1a   none      null      local

在这里插入图片描述

2.5.6 查看网桥信息 docker network inspect 网络id
[root@wkf ~]# docker network inspect 583488748f8c

在这里插入图片描述

2.5.7 外部查看容器tomcat02的网络信息
[root@wkf ~]# docker inspect tomcat02 | grep  Networks -A 20
            "Networks": {
                "bridge": {
                    "IPAMConfig": null,
                    "Links": null,
                    "Aliases": null,
                    "NetworkID": "583488748f8ccc3e0d1c71f8ab3f0a720eaa3e937650cb86d096dee57341f80d",
                    "EndpointID": "23fc6265ac97252eaba6510bbd9f074ce04ad97d7697d8fc225aede11509adee",
                    "Gateway": "172.17.0.1",
                    "IPAddress": "172.17.0.3",
                    "IPPrefixLen": 16,
                    "IPv6Gateway": "",
                    "GlobalIPv6Address": "",
                    "GlobalIPv6PrefixLen": 0,
                    "MacAddress": "02:42:ac:11:00:03",
                    "DriverOpts": null
                }
            }
        }
    }
]
2.5.8 进入容器查看tomcat03 的网络信息
[root@wkf ~]# docker exec -it tomcat03 cat /etc/hosts
127.0.0.1	localhost
::1	localhost ip6-localhost ip6-loopback
fe00::0	ip6-localnet
ff00::0	ip6-mcastprefix
ff02::1	ip6-allnodes
ff02::2	ip6-allrouters
172.17.0.3	tomcat02 b011c81343a5
172.17.0.4	818fa124c3fc

本质探究:–link 就是我们在hosts配置中增加了一个172.17.0.3 tomcat02 b011c81343a5
现在已经不建议使用 --link了!现在使用自定义网络!不适用docker0
docker0的缺点:不支持容器名连接访问

3、自定义网络

3.1 查看所有的docker网络

在这里插入图片描述
网络模式
bridge:桥接 docker (默认,自己创建也使用桥接模式)
nono:不配置网络
host:和宿主机共享网络
container:容器网络连通!(用得少!)

3.2 测试

# 之前我们直接启动的命令  默认--net bridge,而这个就是我们的docker0
docker run -d -P --name tomcat01  mytomcat
docker run -d -P --name tomcat01 --net bridge mytomcat
#docker0特点:默认,域名不能访问, --link 可以打通连接

# 我们可以自定义一个网络
# --driver bridge
# --subnet 192.168.0.0/16  范围192.168.0.2 -> 192.168.255.255
# --gateway 192.168.0.1
[root@wkf ~]# docker network create --driver bridge --subnet 192.168.0.0/16 --gateway 192.168.0.1 mynet
b3c00bbdf4244fe20f9e070ad7b3b5780499ff9985e3d008b1d07cfb150410c7

[root@wkf ~]# docker network ls
NETWORK ID     NAME      DRIVER    SCOPE
583488748f8c   bridge    bridge    local
af41c422f293   host      host      local
b3c00bbdf424   mynet     bridge    local
5a1e992daa1a   none      null      local

自己的网络

在这里插入图片描述

3.3 自定义网络启动

# docker run -d -P --name 容器名字  --net  自定义网络名  镜像名

[root@wkf ~]# docker run -d -P --name tomcat-net-01 --net  mynet mytomcat
2cc83fde438dda9c80d48beac122a6693b0e705117b1e75f525c3baf10135bec
[root@wkf ~]# docker run -d -P --name tomcat-net-02 --net mynet mytomcat
fd5b3dbad0af2ff9e5651d3fc7f9de701d6e1ea968b95ff6ed9a57346a5b895f
# 查看自定义网络信息  docker network inspect 自定义网络名   
[root@wkf ~]# docker network inspect mynet
[
    {
        "Name": "mynet",
        "Id": "b3c00bbdf4244fe20f9e070ad7b3b5780499ff9985e3d008b1d07cfb150410c7",
        "Created": "2022-07-14T23:18:36.278740549+08:00",
        "Scope": "local",
        "Driver": "bridge",
        "EnableIPv6": false,
        "IPAM": {
            "Driver": "default",
            "Options": {},
            "Config": [
                {
                    "Subnet": "192.168.0.0/16",
                    "Gateway": "192.168.0.1"
                }
            ]
        },
        "Internal": false,
        "Attachable": false,
        "Ingress": false,
        "ConfigFrom": {
            "Network": ""
        },
        "ConfigOnly": false,
        "Containers": {
            "2cc83fde438dda9c80d48beac122a6693b0e705117b1e75f525c3baf10135bec": {
                "Name": "tomcat-net-01",
                "EndpointID": "8d351bf3d4c644a737b142479aece1ec5e94318dd2cd35f663ee312fcc629bf1",
                "MacAddress": "02:42:c0:a8:00:02",
                "IPv4Address": "192.168.0.2/16",
                "IPv6Address": ""
            },
            "fd5b3dbad0af2ff9e5651d3fc7f9de701d6e1ea968b95ff6ed9a57346a5b895f": {
                "Name": "tomcat-net-02",
                "EndpointID": "288e6ab708fd9d3c17c6807585e1e3b12f67f5df4d26ca4c2ed11634608c70cf",
                "MacAddress": "02:42:c0:a8:00:03",
                "IPv4Address": "192.168.0.3/16",
                "IPv6Address": ""
            }
        },
        "Options": {},
        "Labels": {}
    }
]

3.4 使用自定义网络启动的两个容器互相ping

# 使用ip去ping
[root@wkf ~]# docker exec -it tomcat-net-01 ping 192.168.0.3
PING 192.168.0.3 (192.168.0.3) 56(84) bytes of data.
64 bytes from 192.168.0.3: icmp_seq=1 ttl=64 time=0.132 ms
64 bytes from 192.168.0.3: icmp_seq=2 ttl=64 time=0.095 ms
^Z64 bytes from 192.168.0.3: icmp_seq=3 ttl=64 time=0.095 ms
# 使用容器名字去ping  不使用--link 也可以ping名字
[root@wkf ~]# docker exec -it tomcat-net-01 ping tomcat-net-02
PING tomcat-net-02 (192.168.0.3) 56(84) bytes of data.
64 bytes from tomcat-net-02.mynet (192.168.0.3): icmp_seq=1 ttl=64 time=0.078 ms
64 bytes from tomcat-net-02.mynet (192.168.0.3): icmp_seq=2 ttl=64 time=0.095 ms
64 bytes from tomcat-net-02.mynet (192.168.0.3): icmp_seq=3 ttl=64 time=0.093 ms

自定义的docker网络已经维护好对应的关系,docker0不支持

4、网络连通

4.1 命令

docker network --help

在这里插入图片描述
在这里插入图片描述

4.2 连接

# 连接mynet和tomcat01
# 命令 docker network  connect 网络名 容器名
[root@wkf ~]# docker network connect mynet tomcat01
# 查看mynet的信息
[root@wkf ~]# docker network  inspect mynet
# 发现tomcat01 已经被放到了mynet网络下

在这里插入图片描述

结论 :
一个容器两个ip

# 01 已经打通了
[root@wkf ~]# docker exec  -it tomcat01 ping tomcat-net-01
PING tomcat-net-01 (192.168.0.2) 56(84) bytes of data.
64 bytes from tomcat-net-01.mynet (192.168.0.2): icmp_seq=1 ttl=64 time=0.128 ms
64 bytes from tomcat-net-01.mynet (192.168.0.2): icmp_seq=2 ttl=64 time=0.114 ms
64 bytes from tomcat-net-01.mynet (192.168.0.2): icmp_seq=3 ttl=64 time=0.091 ms

# 02 还是没有打通 
[root@wkf ~]# docker exec  -it tomcat02 ping tomcat-net-01
ping: tomcat-net-01: Name or service not known

# 将tomcat02 绑定到mynet上,在测试连接,发现连接成功 
[root@wkf ~]# docker network connect mynet tomcat02
[root@wkf ~]# docker exec  -it tomcat02 ping tomcat-net-01
PING tomcat-net-01 (192.168.0.2) 56(84) bytes of data.
64 bytes from tomcat-net-01.mynet (192.168.0.2): icmp_seq=1 ttl=64 time=0.129 ms
64 bytes from tomcat-net-01.mynet (192.168.0.2): icmp_seq=2 ttl=64 time=0.106 ms
64 bytes from tomcat-net-01.mynet (192.168.0.2): icmp_seq=3 ttl=64 time=0.114 ms

5、创建一个Redis集群

5.1 自定义一个redis网卡

# --subnet 172.38.0.0/16  范围172.38.0.2 -> 1;72.38.255.255
docker network create redis --subnet 172.38.0.0/16

5.2 通过脚本创建6个redis配置

for port in $(seq 1 6);\
do \
mkdir -p /mydata/redis/node-${port}/conf
mkdir -p /mydata/redis/node-${port}/data
touch /mydata/redis/node-${port}/conf/redis.conf
cat << EOF >> /mydata/redis/node-${port}/conf/redis.conf
port 6379
bind 0.0.0.0
# 开启集群
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
cluster-announce-ip 172.38.0.1${port}
cluster-announce-port 6379
cluster-announce-bus-port 16379
appendonly yes
EOF
done

5.3 启动6个redis容器

# 启动一个
docker run -d -p  6371:6379 -p 16371:16379 --name redis-1 -v /mydata/redis/node-1/data:/data -v /mydata/redis/node-1/conf/redis.conf:/etc/redis/redis.conf --net redis --ip 172.38.0.11 redis:5.0.9-alpine3.11  redis-server /etc/redis/redis.conf

# 使用shell脚本启动另外5个
for port in $(seq 2 6);
do
docker run -d -p  637${port}:6379 -p 1637${port}:16379 --name redis-${port} -v /mydata/redis/node-${port}/data:/data -v /mydata/redis/node-${port}/conf/redis.conf:/etc/redis/redis.conf --net redis --ip 172.38.0.1${port} redis:5.0.9-alpine3.11  redis-server /etc/redis/redis.conf
done 

5.4 创建集群

redis-cli  --cluster create 172.38.0.11:6379 172.38.0.12:6379 172.38.0.13:6379  172.38.0.14:6379  172.38.0.15:6379  172.38.0.16:6379  --cluster-replicas 1

--cluster create 表示创建集群,后面跟要加入集群的各节点ip地址和端口(包括master和slave)
--cluster replicas 用来指定集群master对应的副本(slave)数量;它会根据我们指定的数量,去创建master和slave,并把16384个槽位平均分配给对应的master节点,并且会自动关联master和slave的关系;

5.5 查看集群信息

# 1、查看信息
/data # redis-cli -c
127.0.0.1:6379> cluster info
cluster_state:ok
cluster_slots_assigned:16384
cluster_slots_ok:16384
cluster_slots_pfail:0
cluster_slots_fail:0
cluster_known_nodes:6
cluster_size:3
cluster_current_epoch:6
cluster_my_epoch:1
cluster_stats_messages_ping_sent:301
cluster_stats_messages_pong_sent:309
cluster_stats_messages_sent:610
cluster_stats_messages_ping_received:304
cluster_stats_messages_pong_received:301
cluster_stats_messages_meet_received:5
cluster_stats_messages_received:610

# 2、查看节点
127.0.0.1:6379> cluster nodes
626480098675304221cf409cc68e31e4b124afb4 172.38.0.13:6379@16379 master - 0 1657973990000 3 connected 10923-16383
dad46032b1d23e39d4595832c419a3f2309259bf 172.38.0.12:6379@16379 master - 0 1657973991519 2 connected 5461-10922
506e5740046a0c06ee7b24bd8a924019d165558f 172.38.0.15:6379@16379 slave 8fbdaa0003dbe63bbf95f64d9563fe46610363a5 0 1657973990000 5 connected
8fbdaa0003dbe63bbf95f64d9563fe46610363a5 172.38.0.11:6379@16379 myself,master - 0 1657973990000 1 connected 0-5460
101cb4b3a7a8e24c7499bf2301a1dab4895fd47d 172.38.0.16:6379@16379 slave dad46032b1d23e39d4595832c419a3f2309259bf 0 1657973989513 6 connected
a2feca3361242a5b1f4382e5ad834e24bb49ca85 172.38.0.14:6379@16379 slave 626480098675304221cf409cc68e31e4b124afb4 0 1657973990917 4 connected

5.6 测试主从复制

# set a b   发现set到13主机上了
127.0.0.1:6379> set a b
-> Redirected to slot [15495] located at 172.38.0.13:6379
OK
#  停掉redis-3  即13主机
[root@wkf ~]# docker stop redis-3
# get a  发现get的数据是从14从机上获取到的 
/data # redis-cli -c
127.0.0.1:6379> get a
-> Redirected to slot [15495] located at 172.38.0.14:6379
"b"
# 再次查看节点  13挂掉了  14变成主机
172.38.0.14:6379> cluster nodes
626480098675304221cf409cc68e31e4b124afb4 172.38.0.13:6379@16379 master,fail - 1657974278493 1657974278386 3 connected
dad46032b1d23e39d4595832c419a3f2309259bf 172.38.0.12:6379@16379 master - 0 1657974894051 2 connected 5461-10922
101cb4b3a7a8e24c7499bf2301a1dab4895fd47d 172.38.0.16:6379@16379 slave dad46032b1d23e39d4595832c419a3f2309259bf 0 1657974894000 6 connected
a2feca3361242a5b1f4382e5ad834e24bb49ca85 172.38.0.14:6379@16379 myself,master - 0 1657974893000 7 connected 10923-16383
506e5740046a0c06ee7b24bd8a924019d165558f 172.38.0.15:6379@16379 slave 8fbdaa0003dbe63bbf95f64d9563fe46610363a5 0 1657974894752 5 connected
8fbdaa0003dbe63bbf95f64d9563fe46610363a5 172.38.0.11:6379@16379 master - 0 1657974894552 1 connected 0-5460

6 SpringBoot 微服务打包Docker镜像

6.1 构建springboot项目c

在这里插入图片描述

6.2 打包应用

6.3 编写Dockerfile

FROM  java:8
COPY  *.jar /app.jar
CMD ["--server.port=8080"]
EXPOSE 8080
ENTRYPOINT ["java","-jar","/app.jar"]

6.4 构建镜像

[root@wkf idea]# docker build -t hellotest .

6.5 发布运行

[root@wkf idea]# docker run -d -p 8080:8080  --name demo-test-hello hellotest

6.6 测试访问

在这里插入图片描述

vmware部署docker+springboot+MySQL(超详细) 可以手工指定ip,也可以使用DHCP自动获取,我这里为了以后调试方便,使用了手工指定IP的方式,只要和电脑本机的有线连接在一个IP段内即可。如果局域网其他终端(如手机访问),虚拟机网络连接需要选择《桥接》模式,而且,需要使用有线连接,不能使用Wi-Fi,切忌切忌!(电脑本地连接的ip段为192.168.3.0,所以虚拟机我设置的IP为192.168.3.155)这样手机打开WiFi,就能通过192.168.3.155访问我虚拟机里的docker项目了。五、启动MySQL、springboot项目。 阅读详情

相关推荐

全志T113 Tina5.0开发:(零)源码下载&修改调试串口

本文章主要作为自己的笔记,如有错误欢迎指出$ repo start product-da-t113-tina-stable --all # 全部下载完成之后,创建分支运行过程可能会出现版本问题;rm -rf .repo //先删除试试( 我安装的是3.6版本)

u014428915的博客 1164

IDEA Docker插件远程连接Docker,并打包部署启动SpringBoot项目

上图中最下面的那个"Run Maven Goal"点击后,会弹出一个小窗口 ,用来输入要执行的maven命令,这里输入。Docker Image的方式主要是方便IDEA操作远程服务器上docker镜像,监控容器信息。创建成功之后可以看到新创建的容器,也可以在服务器(虚拟机)上用docker命令查看。有时候会出现拉取的时间超时的情况,可以配置一下国内的镜像获取阿里云的加速器。设置完成后,点击下图红框中的绿色三角按钮,执行此配置。这里要注意,在写docker镜像地址的时候,如果docker控制台有乱码,

cristianoxm的博客 2279

从0到1搭建StarRocks3.4.1存算一体架构(VM 虚拟机版)

本文详细介绍了如何在VM虚拟机上从零搭建StarRocks 3.4.1存算一体架构。首先阐述了StarRocks作为高性能分布式SQL数据仓库的优势,重点讲解了其存算一体架构的设计原理。随后提供完整的安装指南,包括环境准备(3台CentOS 8虚拟机配置)、网络互通验证、Java环境配置、软件包解压安装等关键步骤。文章特别详细说明了FE和BE节点的配置文件修改(fe.conf和be.conf)以及必要的防火墙端口开放配置。通过图文并茂的方式,帮助开发者和运维人员快速掌握StarRocks集群部署方法,为后续

小 tom的博客 1328

spring cloud 不同服务器间服务互访(springboot在docker读取宿主机ip方案)

spring cloud alibaba nacos注册IP修改

KnowledgeAndWistom的博客 2592

FOC时序及电流采样注意事项

摘要:本文介绍了无刷电机FOC(磁场定向控制)的实现方法,重点解析了电流采样时序与PWM同步的关键技术。在S32K144平台上,需使用两个独立的ADC组件实现双路电流同步采样,采样时刻必须严格对应低边MOS管开启时间并位于PWM波形中央。文章详细说明了硬件触发时序设计、采样电阻配置原则,并通过示波器实测波形验证了电流反馈电路的正确性,指出正弦电流波形应是理想输出形态。关键点包括ADC-PWM时序同步、低边MOS采样及正确的PWM映射配置。

qq_40916548的博客 2619

2019年电赛D题《简易电路特性测试仪》全过程

2019年全国大学生电子设计大赛D题《简易电路特性测试仪》硬件部分及故障分析

zzhao2580的博客 5万+

二、SpringBoot配置绑定的两种方式

SpringBoot配置绑定的两种方式 @ConfigurationProperties(prefix = "stu") @EnableConfigurationProperties({Student.class})

baiqi123456的博客 1158

EEGLAB安装、EDF数据导入、EEG预处理(Matlab)

目录下载和安装下载安装遇到问题及解决方案导入EDF数据EEG预处理 下载和安装 下载 链接:https://pan.baidu.com/s/17eMT6B7LgZ4PyqWvD5ixmg 提取码:12gz 安装 **第一步:**将下载下来的文件解压,修改名称为eeglab,将此文件夹存放在matlab的安装目录里的toolbox文件夹下,下图是我的路径,需要拷贝到自己相对应的路径中 第二步: 打开Matlab软件,点击主页中的设置路径 设置路径 点击添加并包含子文件夹,将eeglab文件夹添加进来,保

y18771025420的博客 1万+

springcloud 启动多网卡选择

欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦: Markdown和扩展Markdown简洁的语法 代码块高亮 图片链接和图片上传 LaTex数学公式 UML序列图和流程图 离线写博客 导入导出Markdown文件 丰富的快捷键 快捷键 加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl

Yoara的备忘录 2310

物联网开发笔记(34)- 使用Micropython开发ESP32开发板之控制步进电机(28BYJ-48)

使用Micropython开发ESP32开发板之控制步进电机(28BYJ-48)

zhusongziye的博客 1万+

CD-HIT的使用

继续我的生信笔记系列。从某网站的附带文献中读到该工具,搜索了一下,发现网上的大佬们都在讲如何用它去冗余,相对官方页面的介绍而言很是片面,于是刚好有聚类的需求的我准备对其全体功能做做实验,学习一下由李伟忠博士在伯纳姆研究所(现为桑福德伯纳姆医学研究所)亚当·戈兹克博士的实验室开发的牛工具。 首先是官方介绍: CD-HIT是一个非常广泛使用的程序,用于蛋白质或核苷酸序列的聚类和比较。最初由李伟忠博士在伯纳姆研究所(现为桑福德伯纳姆医学研究所)亚当·戈兹克博士的实验室开发,CD-HIT速度非常快,可以处理非常

一名学术waste的note pro 1万+

关于如何将一个springboot项目部署至服务器——docker版

使用docker部署springboot项目,并运行

tang_seven的博客 2305

从零开始:如何用Python建立你的第一个人工智能模型

在这篇文章中,我们将介绍如何从零开始使用Python建立你的第一个人工智能模型。无论你是刚接触编程的新手,还是有经验的开发者想进一步探索人工智能领域,这篇文章都将为你提供清晰、详细的指南。我们将一步步探索数据预处理、模型建立、训练和测试的过程,以及如何解读模型的结果。

Allen1862105的博客 4万+

docker部署Springboot到Nacos

docker部署Springboot到Nacos 1. 项目打包 一般正常情况先,点击install就行了 因为我的继承了自己编写的公共父类,一直打包都是只有几kb,依赖什么的都没有打包进去 解决方法:修改pom打包插件 <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId>

changaspl 2446

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Docker进阶篇

1 Docker镜像详解 1.1 UnionFS(联合文件系统) 联合文件系统(UnionFS)是一种分层、轻量级并且高性能的文件系统,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下。联合文件系统是 Docker 镜像的基础。镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像。 特性:一次同时加载多个文件系统,但从外面看起来只能看到一个文件系统。联合加载会把各层文件系统叠加起来,这样最终的文件系统会包含所有底层的文件和目录。

做兴趣使然的Hero 9942

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Docker学习三--Docker网络+SpringBoot镜像上传

Docker0理解 先准备工作,清空测试服务器里面所有容器和镜像 docker -rm -f $(docker ps -a -q) #清空所有容器 docker -rmi -f $(docker images -qa) #清空所有镜像 利用ip addr 查看目前的网卡 发现一共5个网卡. 其中docker0网络是 docker的网桥, 我们开发了很多微服务项目,那些微服务项目都要连接数据库,需要指定数据库的url地 址,通过ip。但是我们用Docker管理的话,假设数据库...

qq_42427924的博客 1400

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

docker入门,镜像,容器,数据卷,dockerfile,docker网络,springboot微服务打包docker镜像[狂神yyds]

docker入门

lpg432的博客 5134

CentOS7中使用Docker部署SpringBoot+Nginx实现负载均衡

前言 使用 Docker 部署应用的方式有多种,如每个应用单独部署再连接容器,如 docker-compose... 本博客是单独部署的每一个容器。 本篇博客的操作有: ① 在本地创建两个 SpringBoot 项目(8090 端口和 8091 端口);分别配置 Dockerfile ② 把 SpringBoot 项目传输到服务器;打包成 Docker 镜像 ③ 拉...

我的博客 3872

Docker springboot mysql 互通

docker创建互通网络 docker network create mynet #docker 安装mysql docker pull mysql:5.7 # docker run -d -p 3306:3306 -v /tmp/mysql/conf:/etc/mysql -v /tmp/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=1234Qweh --name mysql mysql:5.7 docker exec -it..

纯兴趣 263

带注释的mongodb源码_Springboot整合MongoDB的Docker开发,其它应用也类似

1 前言Docker是容器开发的事实标准,而Springboot是Java微服务常用框架,二者必然是会走到一起的。本文将讲解如何开发Springboot项目,把它做成Docker镜像,并运行起来。2 把Springboot打包成Docker镜像Springboot的Web开发非常简单,本次使用之前讲解过的Springboot整合MongoDB的项目,请参考《实例讲解Springboot整...

weixin_39836063的博客 72

Docker部署springboot+MySQL+redis

Docker部署springboot+MySQL+redis

syahfozy的博客 592

CentOS7中使用Docker部署SpringBoot+MySQL项目

前言 使用 Docker 部署应用的方式有多种,如每个应用单独部署再连接容器,如 docker-compose... 本博客是单独部署的每一个容器。 本篇博客的操作有: ① 在本地创建一个 SpringBoot 项目;配置 Dockerfile ② 把 SpringBoot 项目传输到服务器;打包成 Docker 镜像 ③ 拉取官方 MySQL 镜像;配置 MySQ...

我的博客 1万+

Docker入门到精通

Docker是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。开发者在笔记本上编译测试通过的容器可以批量地在生产环境中部署,包括VMs(虚拟机)、bare metal、OpenStack 集群和其他的基础应用平台。DockerFile就是用来构建docker镜像的构建文件,命令参数脚本通过这个脚本可以生成镜像,镜像是一层一层的,脚本一个一个的命令,每个命令都是一层编写一个dockerfile文件docker build dockerfile 构建成为一个镜像。

qq_54063852的博客 1万+

docker网络和应用发布

这里写自定义目录标题docker网络1 - 创建docker网络2 - 创建MYSQL容器实例3 - 创建SpringBoot应用 docker网络 docker网络有三种模式: 1 - none 2 - host 3 - 桥接 本文演示以下内容: 1 - 将应用打包成镜像,并以容器的方式运行; 2 - 容器持久化mysql数据库 3 - 使应用容器可以通过固定名称连接数据库容器,而不是通过ip连接。 基本思路就是: 1 - 创建一个docker内部网络发布应用和数据库 2 - 通过docker的端口映射将

zcx的博客 203

Centos7使用docker部署springboot项目

前言:使用vm安装好centos和网络、java8等。 一.准备好springboot.jar 二.将文件放入centos7的文件夹中 1.使用MobaXterm_Personal_20.2(使用ip addr 查看虚拟机的ip,密码root123456,默认端口22)连接虚拟机上传文件,/home/cxb文件夹下,将文件名hello-0.0.1-SNAPSHOT.jar重命名为hello.jar 2.同目录下vi Dockerfile FROM java:8 # VOLUME 指定了临

小石潭记丶 766

使用Docker将vue+springboot项目部署在服务器上

docker使用 部署springboot 部署vue docker网络

qq_46498663的博客 4960
上一篇: DockerFile的使用
下一篇: Docker Compose
花落 失忆
博客等级 码龄6年 33粉丝 19原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值