Docker 多容器编排Swarm(六)

本文涉及的产品
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: Docker Swarm 和 Docker Compose 一样,都是 Docker 官方容器编排项目,但不同的是,Docker Compose 是一个在单个服务器或主机上创建多个容器的工具,而 Docker Swarm 则可以在多个服务器或主机上创建容器集群服务,对于微服务的部署,显然 Docker Swarm 会更加适合。

著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

docker swarm简介

Docker Swarm 和 Docker Compose 一样,都是 Docker 官方容器编排项目,但不同的是,Docker Compose 是一个在单个服务器或主机上创建多个容器的工具,而 Docker Swarm 则可以在多个服务器或主机上创建容器集群服务,对于微服务的部署,显然 Docker Swarm 会更加适合。

从 Docker 1.12.0 版本开始,Docker Swarm 已经包含在 Docker 引擎中(docker swarm),并且已经内置了服务发现工具,我们就不需要像之前一样,再配置 Etcd 或者 Consul 来进行服务发现配置了。

docker swarm 体系结构如如所示:

一个Manager下面有多个Worker(实际运行中每个都是一个container)

3d7b57db82d7ef31080ad407e86ca03.png

下图是一个Service和Replicas(复制品)模型图, service是nginx,但是下面有3个replicas nginx构成了一个集群

714d9120a946656451a0dc2c8cc5cf6.png

如何创建swarm集群

swarm node节点的分配是默认随机,起初我们是不知道的

docker swarm --help     #查看帮助
docker swarm init --advertise-addr=198.168.205.10  #初始化一个docker swarm manager
docker node ls
  1. 第一台机器,执行命令设置为主节点
[vagrant@swarm-manager~]$docker swarminit--advertise-addr=192.168.205.10
Swarm initialized:current node (ywpy3eosncgw413bervl9kgc7)is now  manager 
To add a worker to this swarm, run the following command: I
docker swarmjoin--tokenSWMTKN-1-3cv8y6rb944uc6j2bub73jjvdue7vo7p8hr38005lj5kf290g3-6zlwprjtwrxkjn90jua5l4q 192.168.205.10:2377
Toadd a manager to this swarm, run 'docker swarm join-token manager'and follow the instrucyions
  1. 第二台机器,执行上图中倒数第二段的命令
[ vagrant @ swarm -worker1~]$ docker swarm join -- token SWMTKN -1-3cv8y6rb944uc6j2bub73jjvdue7vo7p8hr380o5lj5k
t290g5-bzLwprtwrxkmx5g0ua5L4q192.168.205.10:25
 This node joined a swarm as a worker 。
  1. 然后回到第一台manager机器查看一下当前节点
[vagrant@swarm-manager  docker node ls  
ID  HOSTNAME  STATUS  AVAILABILITY  MANAGER STATUS  
hahlhop9aouynv5893nrw9moj ywpy3eosncgw413bervl9kgc7* Iswarm-manager swarm-worker1 Ready Ready Active  Active  
  1. 剩下的几台机器依次执行同样的命令
[ vagrant @ swarm -worker1~]$ docker swarm join -- token SWMTKN -1-3cv8y6rb944uc6j2bub73jjvdue7vo7p8hr380o5lj5k
t290g5-bzLwprtwrxkmx5g0ua5L4q192.168.205.10:25
 This node joined a swarm as a worker 
  1. 再次查看第一台manager机器,会发现已经有3个docker swarm node
[vagrant@swarm-manager ~]$ docker node  ls  
ID  HOSTNAME  STATUS  AVAILABILITY  MANAGER STATUS  
ywpy3eosncgw413bervl9kgc7 * swarm-manager Ready Active  Leader  
hahlhop9aouynv5893nrw9moj Le3hfq08q3r01uz4h6ghb570m swarm-worker1 swarm-worker2 Ready Ready Active Active
  1. 至此,一个简单的docker swarm集群创建完成

创建维护和水平扩展

docker service create --help
docker service ls   #查看所有
docker service scale #水平扩展
docker service scale [serviceName] = [num] #设置service(container)数目
docker service ps [serviceNmae]         #查看当前service详细
docker ps
  1. 举例: 执行命令
docker service create --name demo busybox sh -c"while true;do sleep 3600;done"
[nodel] (local) root@192.168.0.18 ~ 
$docker service create --name demo busybox sh -c "while true;do sleep 3600;done' znrtsx3w2ekppkmgmdihhy9sn
overall progress: 1 out of 1 tasks
1/1: running  [-  >
verify: Service converged
  1. 执行命令docker service ls查看,REPLICAS表示水平扩展
  2. 68987e5305c9cc6449495c89ec33797.png
  3. 执行命令docker service ps demoNODE显示node3表示demo service在我们的第三台机器上
  4. df70d73c1a2101a83a2c1b31b419d53.png
  5. 执行命令docker service scale=5,水平扩展5个相同的服务,此时REPLICAS是5/5,5/5是什么意思呢,第一个5是表示有多少个是ready(准备),第二个5是有多少个scheuld(分片实例
  6. ac37bebabb131b236497c38838aef50.png
  7. 执行命令docker service ps demo可以看到该servie所有部署情况
  8. d2dea0ebf6d766699ccf7037d36234a.png

第一台机器,也就是Docker Swarm Manange执行docker service rm demo命令后,则以上创建的service demo 的container全部销毁,可以执行docker service ps demo, docker ps再次查看详情。

实战-swram集群里部署wordpress

docker network create -d overlay demo   #创建名为demo的docker network
docker network ls   #查看
docker exec [containerID] ip a  #查看容器ip
  1. 执行命令
docker service create --name mysql --env MYSQL_ROOT_PASSWORD=root --env MYSQL_DATABASE=wordpress --network demo --mount type=volume,source=mysql-data,destination=/var/lib/mysql mysq
[vagrant@swarm-manager~]$docker service create --name mysql --env MYSQL_ROOT_PASSWORD=root --env MYSQL_DATABASE=wordpress--networkdemo--mount type=volume,source=mysql-data,destination=/var/l b/mysql mysql
snzj39jxw044gojs0evj1yxko
overall progress: 1 out of 1 tasks
1/1:running verify: Service converged 
  1. 查看service mysql部署情况
[vagrant@swarm-manager ~]$  docker  service ps mysql  
ID  NAME  IMAGE NODE  DESIRED STATE 
CURRENT STATE ERROR PORTS 
552puk51lz81  mysql.1 mysql:latest  swarm-manager Running 
Running 23 seconds ago
[vagrant@swarm-manager ~]$ docker ps
CONTAINER ID  IMAGE COMMAND CREATED STATUS  
PORTS NAMES 
eb85f0656e45  mysql:latest  "docker-entrypoint.s.." 34 seconds ago  
3306/tcp  mysql.1.552puk51lz81f90xl9pi2we73
  1. 3.执行命令
docker service create --name wordpress -p 80:80 --env WORDPRESS_DB_PASSWORD=root --env WORDPRESS_DB_HOST=mysql --network demo wordpress
[vagrant@swarm-manager ~]$docker service create --name wordpress -p80:80 --env WORDPRESS_DB_PASS WORD=root --envWORDPRESS_DB_HOST=mysql --network demo wordpress utzivgyq796am70znise0eaqj
overall progress: 1 out of 1 tasks1/1:running
verify: Service converged
[vagrant@swarm-manager ~]$ docker service ps wordpress
ID  NAME  IMAGE NODE  DESIRED STATE 
CURRENT STATE ERROR PORTS 
10uf3rlu51ju  wordpress.1 wordpress:latest  swarm-worker2 Rya
Running 54 seconds ago
  1. 执行命令docker service ps wordpressdocker ps查看wordpress部署情况
[vagrant@swarm-worker2 ~]$ docker ps
CONTAINER ID  IMAGE COMMAND CREATED STATUS  PORTS NAMES 
ddeacd221551  wordpress:latest  "docker-entrypoint.s..."  About a minute ago  Up Abou ut a minute 80/tcp  wordpress.1.10uf3rlu51jujqpfcv4qvsogm 
[vagrant@swarm-worker2 ~]$  

swarm 底层机制会同步网络的创建,因为它要实现多个节点之间容器的通信。

swar96f5bb95b2e7ce235a11239c91a5dc4.pngm集群服务间通信


  1. docker network create -d overlay demo创建名为demo的docker network
  2. 执行命令
docker service create --name whoami -p 8000:8000 --network demo -d jwilder/whoami
[vagrant@swarm-manager~]$docker service create --name whoami -p 8000:8000 --network demo -d jwilder/whoami
image jwilder/whoami:latest could not be accessed on a registry to record its digest. Each node will access jwilder/whoami:latest independently, possibly leading to different nodes running different
versions of the image.  
  1. 执行命令docker service lsdocker service ps whoami查看,可以看出service在当前机器上
[ vagranteswarm - manager ~]$ docker service Ls 
 ID 
 NAME 
 MODE 
 PORTS WhOaML 
 REPLICAS 
 IMAGE 
 jwilde 
e1jr9b1e5l3z
 replicated 
 r / whoami : latest 
*:8000->8000/tcp
[ vagrant @ swarm - manager ~]$ docker service ps whoami 
 D 
 NAME 
 SIRED STATE 
 CURRENT STATE 
cen8tudtj8n2
 whoami .1
 nning 
 Running 13 seconds qgo 
[ vagrant 
 CONTAINER ID ATUS 
5b792811ea3e
20 seconds 
1/1
 IMAGE 
 ERROR 
 jwilder / whoami : latest 
 NODE 
P0RTS
 swarm - manager 
 DE 
 Ru 
:@ swarm - manager ~]$ docker pS 
 AE 
 ST 
 COMMAND 
 CREATED 
21sec0nd
 PORTS 
 jwilder / whoami : latest "/ app / http ”
8000/tCp_
 NAMES 
 whoami .1.cen8tudtj8n296csvgfn9yymp-
  1. 执行命令curl 127.0.0.1:8000,结果返回了host name
[ vagrant @ swarm - manager ~]$ curl 127.0.0.1:8000
 I ' m 5b792811ea3e
  1. 执行命令docker service create --name client -d --network demo busybox sh -c "while true;do sleep 4600;done"
[ vagrant @ swarm - manager ~]$ docker service create -- name client - d -- network demo busyb ox sh - c " while true ; do sleep 3600; done "
 image busybox : latest could not be accessed on a registry to record its digest . Each node will access busybox : latest independently , possibly leading to different nodes running different 
 Verstons otthe Lmage 。
303bqxlblaeaq2y83nbpja2ed
  1. 执行命令docker service lsdocker service ps client查看,可以看出service在另一台机器上
Lvagrant @ swarm - manager ~]$ docker service ps client 
 TD 
 D STATE 
injkoccl08be
 NAME 
 CURRENT STATE 
c1ient.1
 Running 49 seconds ago 
 IMAGE 
 ERROR 
 busybox : latest 
N0DE
P0RTS
 swarm -worker1
 DEsIRE 
Runnin
  1. 查看并进入service client
[vagrante swarm-worker1 docker  ps  
CONTAINER 1D  IMAGE COMMAND CREATED 
STATUS  PORTS NAMES 
f9f80eb1dcf5  busybox:latest  "sh -c 'while true; …"  About a minute ago  
Up About a minute client.1.inikoccl08besw6t4woc3z5hs  
[vagrant@swarm-worker1 ~  $ docker exec-it f9f8 sh  
#
  1. 看到可以ping通whoami主机地址,但是主机地址显示10.0.0.7,很显然这不是真是的ip地址
/# ping whoami
PING whoami (10.0.0.7)  56 data bytes 
64 bytes fron 10.0.0.7: seq=0 ttl=64 time=0.043 ms  
64 bytes fron 10.0.0.7: seq=1 ttl=64 time=0.127 ms  
64 bytes fron 10.0.0.7: seq=2 ttl=64 time=0.087 ms  
64 bytes fron 10.0.0.7: seq=3 ttl=64 time=0.088 ms  
^C
--- whoami ping statistics ---
4 packets transmitted, 4 packets received, 0% packet loss round-trip min/avg/max=0.043/0.086/0.127 ms
/ #
  1. 进入service whoami机器执行docker service scale whoami=2,横向扩展2个
[vagrant@swarm-manager ~]$docker service scale whoami=2 whoami scaled to 2
overall progress: 2 out of 2 tasks1/2:running2/2:running
verify: Service converged
[vagrant@swarm-manager ~]$ docker service ps whoami
ID  SIRED STATE NAME  CURRENT STATE IMAGE ERROR PORTS NODE  DE  
cen8tudtj8n2  whoami.1  jwilder/whoami:latest swarm-manager Ru  
nning Running 16 minutes ago  
i1c0ys6wm1ak  whoami.2  jwilder/whoami:latest swarm-worker2 Ru  
nning Running 39 seconds ago  
  1. 再次重复第7、8步,还是同样的结果,其实这个一个vip(虚拟IP),可以使用nslookup命令查看DNS
/# nslookup whoami 
127.0.0.11
 SerVer :
 Address 1:127.0.0.11
 Name :
 whoami 
 Address 1:10.0.0.7
#
 DNS 服务器地址
虚拟 IP 
/# nslookup tasks . whoami Server :
1z7.0.0.11
 Address 1:127.0.0.11
 Name :
 Address 1:10.0.0.8 whoami .1.cen8tudtj8n296csvgfn9yymp. demo Address 2:10.0.0.16 whoami .2.i1c0ys6wm1ak067i68vgq3qwji. demo .
 tasks . whoami 真实容器 IP 
  1. 在部署了service whoami的机器上执行docker exec [containerID] ip a查看对应的容器IP地址,即可知道真实IP,VIP(虚拟IP)不会经常变动,机器IP可能变动

此时多次执行命令curl 127.0.0.1:8000,会发现每次返回的host name可能会变,这是因为已经提供了负载均衡功能了。

Internal Load Balancing 图:

b3262be6115045f9e05253fb5ff5624.png

DNS+VIP+iptables+LVS

34a9c94faa8d842565cee4a80bb34cc.png

Routing Mesh的两种体现

  • Internal——Container和Container之间的访问通过overlay网络(通过VIP虚拟ip)
  • Ingress——如果服务有绑定接口,则此服务可以通过任意swarm节点的相应接口访问

上述的操作分别采用了这2种方式

Ingress负载均衡

  • 外部访问的负载均衡
  • 服务端口被暴露到各个swarm节点
  • 内部通过IPVS进行负载均衡
  • 3f0993891de675d0ac74d0f34dadc9d.png
  1. 使用之前的例子service whoami,NODE分别在swarm-manager、swarm-manager2两台机器上
  2. 093af8b7e1bd910edad7c2a4edfcdc1.png
  3. 可以发现每次都会返回不同的host name,负载均衡
[ vagrant @ swarm - manager ~]$ curl 127.0.0.1:8000
 I ' m d9b75ff1a594
[ vagrant @ swarm - manager ~]$ curl 127.0.0.1:8000
 Im 5b792811ea3e
[ vagrant @ swarm - manager ~]$ curl 127.0.0.1:8000 I ' m d9b75ff1a594
 Lvagrant @ swarm - manager ~]$ curl 127.0.0.1:8000
 I ' m 5b792811ea3e
[ vagrant @ swarm - manager ~]$ curl 127.0.0.1:8000 I ' m d9b75ff1a594
 Lvagrant @ swarm - manager ~]$ curl 127.0.0.1:8000
 I ' m 5b792811ea3e
  1. swarm-manager1没有service whoami,也能访问
[ vagrant @ swarm -worker1~]$ curl 127.0.0.1:8000
 I ' m d9b75ff1a594
[ vagrantc ]$ curl 127.0.0.1:8000
 I ' m 5b792811ea3e

swarm-manager1执行sudo iptables -nL -t nat查看转发规则

Chain DOCKER-INGRESS(2 references)
target  prot opt source destination 
DNAT  tcp 0.0.0.0/0 0.0.0.0/0 tcp dpt:8000 to:172.18.0  
.2:8000
RETURN  all --  0.0.0.0/0 0.0.0.0/0 
[vagrant@swarm-worker1 ~]$curl 127.0.0.1:8000
I'm d9b75ff1a594  

执行ip a可以看出在同一网段

4:docker0:<NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN
link/ether 02:42:e6:8d:34:e5 brd ff:ff:ff:ff:ff:ff
inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
docker_awbridge: <BROADCAST.MULTICAST,UP.LOWER_UP> mtu 1500 qdisc noqueue state Up
9
link/ether 02:42:c2:83:19:f4 brd ff:ff:ff:ff:ff:f
inet 172.18.0.1/16 brd 172.18.255.255 scope globa docker_gwbridge 
valid_lft forever preferred_lft forever inet6 fe80::42:c2ff:fe83:19f4/64 scope link
yUllu rt torever orerereu Llt ore
11:vethec89e00@if10:<BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master docker_gwbridge state UP
link/ether 9e:c5:26:52:0f:44 brd ff:ff:ff:ff:ff:ff link-netnsid 1
inet6 fe80::9cc5:26ff:fe52:f44/64 scope link

2. brctl show

[vagrant@swarm-worker1 ~]$ brctl show
bridge name bridge id STP enabled interfaces  
docker0 8000.0242e68d34e5 no  veth975c56e
docker_gwbridge 8000.0242c28319f4 no  vethec89e00 

3. docker network ls   docker network inspect docker_gwbridge

[vagrant@swarm-worker1 ~]$ docker network ls
NETWORK ID  NAME  DRIVER  SCOPE 
ef2d10b71ed5  bridge  bridge  local swarm 
heweupwlcull  demo  overlay 
3bc9a28069c4  docker_gwbridge bridge  local 
0c5059ff84b3  host  host  local 
obe9f2751sv7  50ca943d108d  none  ingress null  overlay local swarm 
[vagrant@swarm-worker1 ~]$docker network inspect docker_qwbriage 

4. docker_gwbridge 具体内容

"ConfigOnly": false,"Containers":{
"f9f80eb1dcf5888efc3f1050bf04ef937e0af63b738773ef8e1b027128e36c79":{
"Name": "gateway_f9f80eb1dcf5",
Endpotrro::"e4e12bd68d9b1a4df42099063913a20f47f835d6a95335c9d0cff04
e49bd2571",
"MacAddress": "02:42:ac:12:00:03","IPv4Address": "172.18.0.3/16","IPv6Address":""} ,
"ingress-sbox":{
"Name": "gateway_ingress-sbox",
"EndpointID":"11e289691864c53e2ddbd49f1e89d86c7cd7d5829225eb306266b31
a7c50d9a8",
"02 60-场2#  
"IPv4Address": "172.18.0.2/16" IPv6Address":
} ,
"Options":{

5. sudo ls /var/run/docker/netns   sudo nsenter --net=/var/run/docker/netns/ingress_sbox

[vagrant@swarm-worker1 ~]$sudo ls /var/run/docker/netns10de222a0ebc 1-heweupwlcu 1-obe9f2751s inaress sbox
[vagrant@swarm-worker1~$nsenter --net=/var/run/docker/netns/ingress_sbox nsenter:cannot open/var/run/docker/netns/ingress_sbox: Permission denied
[vagrant@swarm-worker1~]$sudonsenter--net=/var/run/docker/netns/ingress_sbox root@swarm-worker1 vagrant# ip a
LO:<LUUPBACK,UP,LUWERUP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo
valid lft forever breferred_lft forever
7:eth0@if8:<BROADCAST.MULTICAST.UP.LOWER_UP> mtu 1450 adisc noaueue state UP
link/ether 02:42:0a:ff:00:03 brd ff:ff:ff:ff:ff:ff link-netnsid 0 inet 10.255.0.3/16 brd 10.255.255.255 scope global eth0
valid lft forever preferred_lft forever
10:eth1@if11:<BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP
link/ether02:42:ac:12:00:02 brd ff:ff:ff:ff:ff:ff link-netnsid 1 inet 172.18.0.2/16 brd 172.18.255.255 scope global eth1
valid lft forever preferred lft forever
[root@swarm-worker1 vagrant]# 

6. iptables -nL -t mangle,白色处具体是做负载均衡的

[root @ swarm -worker1 vagrant ]# iptables - nL - t mangle Chain PREROUTING ( policy ACCEPT )
 target 
 prot opt source 
 MARK 
 tcp --0.0.0.0/0
l01
 destination 
0.0.0.0/0
 tCp dpt :8000 MARK set 0x
 Chain TNPUT ( policy ACCEPT ) target 
 prot opt source 
 destination 
 Chain FORWARD ( policy ACcEPT )
 target 
 prot opt sourCe 
 destination 
 Chain ouTPuT ( policy AccepT )
 target 
 prot opt source 
 MARK 
 nTT 
 destination 
102s5 a 7
IMARK cet 0x101

7. 下载LVS管理工具,yum install ipvsadm8. 再次进入root,执行ipvsadm -l

Chain POSTROUTING (policy ACCEPT)
target  prot opt source destination 
Iroot@swarm-worker1 vagrant]# ipvsadm -l
IP Virtual Server version 1.2.1(size=4096) Prot LocalAddress:Port Scheduler Flags
->  RemoteAddress:Port  Forward Weight ActiveConn InActConn 
FWM 257 rr  真实service地址 
10.255.0.8:0  Masq  1 
10.255.0.9:0  Masq  1 0 0 
[root@swarm-worker1 vagrant]# 

Ingress Network的数据包走向详情

166e4e2b91163226_tplv-t2oaga2asx-zoom-in-crop-mark_4536_0_0_0.png

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
2天前
|
边缘计算 物联网 开发者
什么是容器Docker?
什么是容器?容器,也叫Docker,是一个开源的容器化平台,用于开发、测试和部署应用程序。通过将软件打包为标准化的单元(容器),使得应用程序可以在任何地方一致地运行,不论是在开发者的本地机器上,还是在云计算平台上。Docker容器包含了应用程序运行所需的一切,包括代码、运行时、系统工具、系统库等,从而解决了“在我这里可以正常工作,但在服务器上不行”的问题。
15 1
|
5天前
|
安全 关系型数据库 开发者
Docker Compose凭借其简单易用的特性,已经成为开发者在构建和管理多容器应用时不可或缺的工具。
Docker Compose是容器编排利器,简化多容器应用管理。通过YAML文件定义服务、网络和卷,一键启动应用环境。核心概念包括服务(组件集合)、网络(灵活通信)、卷(数据持久化)。实战中,编写docker-compose.yml,如设置Nginx和Postgres服务,用`docker-compose up -d`启动。高级特性涉及依赖、环境变量、健康检查和数据持久化。最佳实践涵盖环境隔离、CI/CD、资源管理和安全措施。案例分析展示如何构建微服务应用栈,实现一键部署。Docker Compose助力开发者高效驾驭复杂容器场景。
17 1
|
6天前
|
存储 监控 安全
Docker Compose:轻松实现容器编排的利器
【7月更文挑战第2天】 1. **基础与概念**:服务(多容器实例)、网络(灵活通信)、卷(数据持久化)和配置(安全管理)。 2. **实战指南**:安装Compose,编写`docker-compose.yml`文件,启动应用,并介绍依赖、环境变量、健康检查和数据持久化。 3. **最佳实践**:环境隔离、CI/CD集成、资源管理、日志监控、安全策略及案例分析,展示完整应用栈搭建。
19 1
|
5天前
|
缓存 Linux 开发工具
docker的centos容器使用yum报错
docker的centos容器使用yum报错
20 0
|
10天前
|
Java API Docker
使用Spring Boot和Docker进行容器化部署
使用Spring Boot和Docker进行容器化部署
|
10天前
|
运维 Serverless 文件存储
函数计算产品使用问题之在利用Docker镜像部署应用时,容器内的应用如何能访问函数计算配置的NAS挂载
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
21天前
|
NoSQL 关系型数据库 Redis
Docker的通俗理解和通过宿主机端口访问Redis容器的实例
本文目标:引导初学者入门Docker,理解镜像、容器和宿主机概念,学习常用Docker命令,特别是如何创建并从Redis容器通过宿主机端口访问。 关键点: - Docker核心:镜像(类)、容器(实例)、宿主机(运行环境)。 - `docker pull` 拉取镜像,如 `redis:3.0`。 - `docker run -d --name` 后台运行容器,如 `my-redis`。 - `-p` 参数做端口映射,如 `6379:6379`。 - `docker exec -it` 交互式进入容器,如 `bash` 或执行命令。
101 4
|
18天前
|
前端开发 安全 数据库
Web架构&前后端分离站&Docker容器站&集成软件站&建站分配
Web架构&前后端分离站&Docker容器站&集成软件站&建站分配
|
15天前
|
NoSQL Redis Docker
使用 Docker Compose 接管现有容器的文档
使用 Docker Compose 接管现有容器的文档
27 2
|
18天前
|
Cloud Native 安全 Docker
云上攻防-云原生篇&Docker安全&系统内核&版本&CDK自动利用&容器逃逸
云上攻防-云原生篇&Docker安全&系统内核&版本&CDK自动利用&容器逃逸

相关产品

  • 容器服务Kubernetes版