Docker网络及SpringBoot应用打包

2023-05-16

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 测试访问

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Docker网络及SpringBoot应用打包 的相关文章

  • Keras的自定义lambda层去reshape tensor张量时model保存出错的解决办法

    背景 分割网络在进行上采样的时候我用的是双线性插值上采样的 xff0c 而Keras里面并没有实现双线性插值的函数 xff0c 所以要自己调用tensorflow里面的tf image resize bilinear 函数来进行resize
  • c++ 中 class 和 struct 的区别是什么

    xfeff xfeff C 43 43 中的struct对C中的struct进行了扩充 xff0c 它已经不再只是一个包含不同数据类型的数据结构了 xff0c 它已经获取了太多的功能 struct能包含成员函数吗 xff1f 能 xff01
  • Linux top命令的了解以及使用

    以root权限运行 top 命令后 xff0c 会以全屏的方式显示 xff0c 并且会处在对话的模式 操作实例 root登录之后 xff0c 在命令行中输入 xff1a top xff0c 回车 xff0c 即会以全屏的显示模式显示所有内容
  • 一键激活office,激活windows

    github地址 xff1a https github com massgravel Microsoft Activation Scripts 正文 xff1a Microsoft Activation Scripts MAS A Wind
  • Jupyter not connection to kernel 的解决方案

    不知道什么原因 xff0c 今天启动Jupyter Notebook发现不对经 xff0c 各种警告如 xff1a 内核没有连接什么的 xff0c 然后我试了试用spyder编写Python xff0c 结果一进去也是告诉我 error x
  • svm核函数的理解和选择

    特征空间的隐式映射 xff1a 核函数 咱们首先给出核函数的来头 xff1a 在上文中 xff0c 我们已经了解到了SVM处理线性可分的情况 xff0c 而对于非线性的情况 xff0c SVM 的处理方法是选择一个核函数 xff0c 通过将
  • list indices must be integers or slices, not tuple 解决方案

    解决方案 xff1a 用numpy里的array转化下 xff0c 转成元组 xff1a dataSet 61 np array dataSet 或者也可以将dataSet转化为矩阵 xff1a mat dataSet 两者都可行
  • 回归模型——树回归(理论方面的知识)

    一 xff1a 模型介绍 1 线性回归的薄弱处 xff1a 1 1 需要拟合所有的样本点 xff08 局部加权线性回归除外 xff09 但是当数据拥有众多特征并且特征之间关系十分复杂时 xff0c 构建全局模型的想法就显得太难了 xff0c
  • 二叉树遍历(图解)

    二叉树的顺序存储结构就是用一维数组存储二叉树中的节点 xff0c 并且节点的存储位置 xff0c 也就是数组的下标要能体现节点之间的逻辑关系 gt 一般只用于完全二叉树 链式存储 gt 二叉链表 定义 xff1a lchild data r
  • (hive) Execution Error, return code -101 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask解决方案

    解决bug思路 xff1a 出现这个问题说明你的mapreduce input fileinputformat split maxsize设置的太小了 解决方案 xff1a hive default gt set mapreduce inp
  • Ubuntu16.04 server配置记录

    1 安装vmtool 因为没有图形界面 xff0c 这里全部使用命令行操作 xff0c 虚拟机菜单点击安装vmtool工具后 xff0c 需要手动挂载 a mkdir tmp cdrom b mount dev cdrom tmp cdro
  • GCC的编译过程

    今天学习了gcc的编译过程 xff0c gcc是一个交叉平台编译器 xff0c 简单的说就是 xff0c 你可以在一个平台上编译出可以在另一个平台运行的代码 gcc的编译过程细分可以分成四个阶段 一 预处理阶段 预处理阶段有三个功能 有文件
  • 图解GPS原理 为什么需要4颗卫星才能定位,而不是3颗

    转载https blog csdn net hugohong article details 43191597 GPS 是英文Global Positioning System xff08 全球定位系统 xff09 的简称 xff0c 而其
  • Intel CPU,各个系列有什么区别

    CPU作为计算机核心组件 xff0c 直接影响计算机的性能和价格 无论在购买或是组装计算机时 xff0c 选择合适的CPU都是需要首先考虑的问题 以目前的CPU品牌来看 xff0c CPU可以分为Intel xff0c AMD和国产CPU三
  • 链表头结点的作用

    1 防止单链表是空的而设的 当链表为空的时候 带头结点的头指针就指向头结点 如果当链表为空的时候 单链表没有带头结点 那么它的头指针就为NULL 2 是为了方便单链表的特殊操作 插入在表头或者删除第一个结点 这样就保持了单链表操作的统一性
  • Shikra的PID调参教程

    在论坛里看到的Shikra的PID调参教程 xff0c 自己感觉非常好就转过来供大家一起交流学习 http www rcgroups com forums showthread php t 61 1375728 还有师兄的调PID的整理的文
  • 四旋翼位置控制之-定高篇

    先mark一下 xff0c 争取两周之内写完 由于快要毕业了 xff0c 所以一直都很忙 xff0c 并没有时间写完 xff0c 所以拖到现在 xff0c 不好意思 现在开始介绍四旋翼定高以及调试过程 首先介绍下四旋翼的模型 图中为 四旋翼
  • 四元数、欧拉角和方向余弦的定义及关系

    目前 xff0c 描述两个坐标系之间关系的常用方法主要有欧拉角法 方向余弦矩阵法和四元数法 因此要弄懂这三种方法的定义及关系 xff0c 我们必须先从坐标系转化开始了解 下面以四旋翼为例 xff0c 定义两个坐标系 导航坐标系 参考坐标系
  • 四旋翼姿态解算常用的两种算法-互补滤波和梯度下降算法

    上一篇讲了四元数 欧拉角和方向余弦的知识 xff0c 不熟悉的请到这篇博客查看点击打开链接 介绍两种算法前 xff0c 先定义两个坐标系 导航坐标系 参考坐标系 n xff0c 选取东北天右手直角坐标系作为导航坐标系n 载体坐标系 机体坐标
  • 四旋翼位置控制之-GPS水平位置控制

    mark一下 xff0c 争取一周内抽时间写完 感兴趣的朋友可以加我qq讨论 最近事情太多 xff0c 今天争取写完 先给大家介绍一些基本知识 GPS精度因子 xff1a PDOP xff08 Position Dilution of Pr

随机推荐

  • 基于四元数的扩展卡尔曼(EKF)滤波器四旋翼姿态解算详解-1.KF介绍

    先说明一下 xff0c 之前介绍的两种姿态解算算法http blog csdn net wkdwl article details 52119163 互补滤波和入梯度下降姿态解算算法 xff0c 虽然在姿态解算方面效果还比较不错 但是缺点就
  • android开发(一)常见问题

    1 android开发环境 1 添加环境变量名称为 xff1a ANDROID HOME ANDROID HOME 61 D xxx android android sdk 2 下面路径添加到path环境变量里 ANDROID HOME p
  • 基于四元数的扩展卡尔曼(EKF)滤波器四旋翼姿态解算详解-2.EKF介绍

    尽快抽时间写完吧
  • Linux环境安装RabbitMQ

    RabbitMQ Linux环境安装 检查当前linux服务器的版本 lsb release a 官网下载安装包 xff1a https www rabbitmq com download html 1 2 3 选择对应的安装环境 4 对照
  • MySQL的安装

    MySQL的安装 1 下载 网址 xff1a https dev mysql com downloads mysql 2 下载5 7版本 xff08 1 xff09 xff08 2 xff09 xff08 3 xff09 3 配置环境变量
  • Nginx windows server 2012部署过程

    部署静态网页到服务器 今天做了一个静态网页 xff0c 想部署带到自己的阿里云服务器 通过查询可以使用tomcat容器或者nginx xff0c 主流方式是nginx部署 xff0c 记录一下自己部署的过程 一 nginx简介 Nginx
  • 点击按钮实时刷新图片

    js给 lt img gt 标签的src赋值 最近做一个点击一个按钮刷新加载另一张图片的功能 主要就是改变图的路径 记录一下自己遇到的坑 支持原生的js和jq实现 用js原生方法 xff1a document getElementById
  • RestTemplate的学习与使用

    RestTemplate的学习与使用 最近在开发过程中遇到使用接口传输数据 了解到到RestTemplate 1 源码分析 span class token keyword public span span class token keyw
  • Linux环境下redis的安装

    Linux环境下redis的安装 1 下载redis安装包 服务器上执行以下命令下载redis安装包 cd export software wegt http download redis io releases redis 6 2 6 t
  • Docker的安装

    Docker的安装 1 linux下安装docker xff08 CentOS7 xff09 curl sSL https get daocloud io docker sh 2 查看docker的版本 docker v 3 启动 关闭do
  • Redis的应用场景

    1 String操作 xff08 1 xff09 计数器 incr artcle readconunt 文章id get artcle readconunt 文章id 2 Hash操作 1 对象缓存 hmset user 1 name li
  • nginx在linux环境安装

    1 安装依赖包 yum install pcre pcre devel y yum install openssl openssl devel y 2 官网下载安装包传到linux环境 安装包存放位置 export software 解压目
  • 开发杂谈(一)常见问题

    1 github 1 从GITHUB下载慢而且容易中断解决办法 1 从GITHUB下载慢而且容易中断解决办法 将github项目导入到码云网 xff08 https gitee com xff09 然后再下载会很快 xff0c 登录码云网后
  • Windows证书函数

    C语言操作WINDOWS系统存储区数字证书相关函数详解及实例 以下代码使用C 43 43 实现遍历存储区证书及使用UI选择一个证书 使用 CertOpenSystemStore打开证书存储区 在循环中 使用CertEnumCertifica
  • 使用Docker安装RabbitMQ

    1 yum 包更新到最新 yum update xff08 2 xff09 安装需要的软件包 xff0c yum util 提供yum config manager功能 xff0c 另外两个是devicemapper驱动依赖的 yum in
  • docker的安装及常用命令

    安装Docker 官网地址 https www docker com 文档地址 https docs docker com Dockerhub仓库地址 https hub docker com 名词解释 镜像 xff08 image xff
  • docker安装部署一些软件(nginx、tomcat、mysql、es)

    linux防火墙相关操作 systemctl restart firewalld service span class token comment 重启服务 span systemctl start firewalld span class
  • docker的commit和容器数据卷

    commit镜像 span class token function docker span commit 提交容器成为一个新的副本 span class token comment 命令和git原理相似 span span class t
  • DockerFile的使用

    DockerFile dockerfile是用来构建docker镜像的文件 xff01 命令参数脚本 构建步骤 xff1a 1 编写一个dockerfile文件 2 docker build 构建成为一个镜像 3 docker run 运行
  • Docker网络及SpringBoot应用打包

    1 查看当前阿里云的一网络信息 span class token comment 命令 ip addr span 2 查看容器内部网络地址 这里使用上一篇博客的自定义Dockerfile文件构建的tomcat xff0c 因为默认拉取的镜像