docker nfs文件系统持久化,swarm部署NGINX使用nfs示例

这篇具有很好参考价值的文章主要介绍了docker nfs文件系统持久化,swarm部署NGINX使用nfs示例。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1. docker 部署nfs

1.1 说明
部署nfs,做容器数据文件持久化
经测试swarm无法部署nfs
1.2 检查 nfsd 模块是否已经被加载

nfsd 是NFS服务器的内核模块

root@swarm-m1:/data/project/nfs# lsmod | grep nfsd
nfsd                  417792  11
auth_rpcgss            94208  2 nfsd,rpcsec_gss_krb5
nfs_acl                16384  2 nfsd,nfsv3
lockd                 102400  3 nfsd,nfsv3,nfs
grace                  16384  2 nfsd,lockd
sunrpc                397312  20 nfsd,nfsv4,auth_rpcgss,lockd,nfsv3,rpcsec_gss_krb5,nfs_acl,nfs

如果没有加载,执行:
modprobe nfsd
1.3 docker-compose文件
root@swarm-m1:/data/project/nfs# cat docker-compose.yml
version: '3'  # 使用的docker-compose版本号
services:  # 定义服务列表
  nfs-server:    # 定义一个名为nfs-server的服务
    container_name: nfs_nginx    # 容器的名称
    image: itsthenetwork/nfs-server-alpine:latest  # 使用的镜像名称和标签
    restart: unless-stopped   # 除非你明确地停止了容器,否则总是会重启容器
    # 以下是不同的重启策略说明:
    # unless-stopped:除非你明确地停止了容器,否则总是会重启容器
    # always:容器总是会在退出后重启
    # on-failure:只有在容器退出状态为非零(也就是出错)的情况下才会重启容器
    volumes:  # 定义卷映射列表
      - /data/project/nfs/mount:/nfsshare   # 将宿主机的/data/project/nfs/mount目录映射到容器的/nfsshare目录
    command: "/nfsshare *(rw,sync,no_subtree_check,no_auth_nlm,insecure,no_root_squash)"  # 容器启动后要执行的命令
    environment:   # 设置环境变量
      - SHARED_DIRECTORY=/nfsshare  # 设置环境变量SHARED_DIRECTORY的值为/nfsshare
    ports:   # 端口映射列表
      - 2049:2049  # 将宿主机的2049端口映射到容器的2049端口
    privileged: true  # 给容器全部权限,允许容器内部的进程访问宿主机的设备
配置文件中挂载的目录为:
/data/project/nfs/mount
需要赋予权限,执行:
chmod -R 777 /data/project/nfs/mount
1.4 启动容器
docker-compose -f /data/project/nfs/docker-compose.yml up -d
如果需要同时启动多个:
docker-compose -f my-docker-setup-1.yml -f my-docker-setup-2.yml up -d

2. 编写nginx的swarm - docker-compose文件

root@swarm-m1:/data/project/nginx# cat docker-compose.yml
version: "3"  # 指定docker-compose的版本
services:  # 定义要启动的服务列表
    nginx:  # 定义一个名为nginx的服务
      image: 101.43.228.87:5003/test/nginx:v1  # 使用的镜像名称和标签
      # container_name: nginx # 容器名称(在Swarm模式中,不建议使用)
      volumes:  # 定义挂载卷
        - nfs_html:/usr/share/nginx/html  # 挂载nfs_html到容器的指定路径
        - nfs_conf:/etc/nginx  # 挂载nfs_conf到容器的指定路径
      networks:  # 定义使用的网络列表
        - nginx-net  # 使用名为nginx-net的网络
      # restart: always #容器的重启策略(在Swarm模式中使用deploy代替)
      ports:  # 定义端口映射
        - 80:80  # 映射宿主机的80端口到容器的80端口
      deploy:  # 在Swarm模式下的部署配置
        replicas: 8  # 定义要启动的实例数量
        update_config:  # 定义滚动更新的配置
          parallelism: 2  # 定义每次更新的实例数量
          delay: 10s  # 更新每个实例之间的延迟
        rollback_config:  # 添加回滚行为
          parallelism: 3   # 一次更新3个
          delay: 10s    # 间隔10秒
        resources:  # 定义资源限制和预留
          limits:  # 定义资源限制
            cpus: '0.5'  # 每个容器的CPU限制
            memory: 512M  # 每个容器的内存限制
          reservations:  # 定义资源预留
            cpus: '0.1'  # 每个容器的CPU预留
            memory: 128M  # 每个容器的内存预留
volumes:  # 定义卷
  nfs_html:  # 定义名为nfs_html的卷
    driver: local  # 使用local驱动程序
    driver_opts:  # 驱动程序选项
      type: nfs  # 类型为NFS
      o: nfsvers=4,addr=192.168.31.181,rw  # NFS选项
      device: ":/nginx/html"  # NFS设备路径
  nfs_conf:  # 定义名为nfs_conf的卷
    driver: local  # 使用local驱动程序
    driver_opts:  # 驱动程序选项
      type: nfs  # 类型为NFS
      o: nfsvers=4,addr=192.168.31.181,rw  # NFS选项
      device: ":/nginx/conf"  # NFS设备路径
networks:  # 定义网络
  nginx-net:  # 定义名为nginx-net的网络
    driver: overlay  # 使用overlay驱动程序
如果有需求想在每台节点上都run一个相同的副本,方法其实很简单,只需要在命令中将"--replicas n"更换成"--mode=global"即可!

复制服务(--replicas n)

将一系列复制任务分发至各节点当中,具体取决于您所需要的设置状态,例如“--replicas 3”。

全局服务(--mode=global)

适用于集群内全部可用节点上的服务任务,例如“--mode global”。如果大家在 Swarm 集群中设有 7 台 Docker 节点,则全部节点之上都将存在对应容器。

3. swarm部署service

3.1 部署service
docker stack deploy -c /data/project/nginx/docker-compose.yml nginx --with-registry-auth

-c 或 --compose-file  指定配置文件
--with-registry-auth  确保从私有仓库拉取镜像时 Swarm 节点可以使用相应的凭据。

1.部署不存在的service可以不加--with-registry-auth

2.如果service已存在,修改docker-compose后需要重新部署时
需要添加--with-registry-auth,防止node节点无法拉取远程镜像

4. 其他操作

4.1 查看全部service信息
root@swarm-m1:~# docker service ls
ID             NAME          MODE         REPLICAS   IMAGE                              PORTS
lgicaxzr8r8j   nginx_nginx   replicated   8/8        101.43.228.87:5003/test/nginx:v1   *:80->80/tcp
4.2 查看指定service下容器运行情况
root@swarm-m1:~# docker service ps nginx_nginx  | grep Running
ji2zcy87oy3p   nginx_nginx.1       101.43.228.87:5003/test/nginx:v1   swarm-n2   Running         Running 16 hours ago              
jvwr5usxh5do   nginx_nginx.2       101.43.228.87:5003/test/nginx:v1   swarm-n2   Running         Running 16 hours ago              
kooi77fx8sjc   nginx_nginx.3       101.43.228.87:5003/test/nginx:v1   swarm-n2   Running         Running 16 hours ago              
1px78c083di3   nginx_nginx.4       101.43.228.87:5003/test/nginx:v1   swarm-n1   Running         Running 16 hours ago              
xoi94772ad2d   nginx_nginx.5       101.43.228.87:5003/test/nginx:v1   swarm-n1   Running         Running 16 hours ago              
r8y9jvlxntlh   nginx_nginx.6       101.43.228.87:5003/test/nginx:v1   swarm-n1   Running         Running 16 hours ago              
rulhm9lfesry   nginx_nginx.7       101.43.228.87:5003/test/nginx:v1   swarm-n2   Running         Running 16 hours ago              
unlhvwdi6pal   nginx_nginx.9       101.43.228.87:5003/test/nginx:v1   swarm-n1   Running         Running 16 hours ago
4.3 调整service下容器个数
docker service scale nginx_nginx=4
4.4 查看service配置信息 – 格式化输出(便于查看)
docker service inspect --pretty nginx_nginx
4.5 强制重新部署 nginx_nginx-web 服务的所有实例,即使配置没有改变。
docker service update --force nginx_nginx
4.6 强制重新部署服务,还确保每更新一个任务后都会暂停5秒,然后再继续下一个
这可以确保更新不会太快地同时发生,从而可能提供更加平滑的更新体验,特别是在高可用性环境中。
docker service update --force --update-delay 5s nginx_nginx
4.7 强制重新部署服务
每更新一个任务后都会暂停5秒,滚动更新期间每次只更新2个任务
docker service update --force --update-delay 5s --update-parallelism 2 nginx_nginx

5. 其他命令

Docker基础命令:
    docker run: 运行一个容器。
    docker ps: 列出运行中的容器。
    docker images: 列出可用的镜像。
    docker exec: 在一个运行的容器中执行命令。
    docker logs: 获取容器的日志输出。
    docker build: 从Dockerfile构建镜像。
    docker pull: 从registry拉取镜像。
    docker push: 将镜像推送到registry。
    docker stop/start/restart: 停止/启动/重启容器。
    docker rm: 删除容器。
    docker rmi: 删除镜像。

Docker Compose命令:
    docker-compose up: 启动Compose文件定义的服务。
    docker-compose down: 停止并删除Compose文件定义的服务。
    docker-compose logs: 查看服务的日志。
    docker-compose build: 为服务构建或重新构建镜像。
    docker-compose ps: 列出由Compose文件定义的服务。

Docker Swarm命令:
    docker swarm init: 初始化一个新的Swarm集群。
    docker swarm join: 将节点加入到Swarm集群。
    docker node ls: 列出Swarm集群中的节点。
    docker service create: 创建一个新的服务。
    docker service ls: 列出服务。
    docker service scale: 调整服务的副本数。
    docker service update: 更新服务。
    docker service logs: 查看服务的日志。
    docker service rm: 删除服务。
    docker stack deploy: 使用Compose文件部署一堆服务。
    docker stack ls: 列出stacks。
    docker stack rm: 删除stack。

6. html文件ADD进镜像中,更新版本后回滚

6.1 创建Dockerfile
root@swarm-m1:/data/project/nginx# ls
docker-compose.yml  docker-compose.yml_back  Dockerfile  html
root@swarm-m1:/data/project/nginx# cat Dockerfile 
FROM 101.43.228.87:5003/test/nginx:v1
# 添加html文件到nginx默认的网页目录
ADD ./html/  /usr/share/nginx/html/
6.2 通过Dockerfile构建镜像
文件更新时,重新构建Dockerfile时,标签需要不通,来区分不同版本,方便标识
root@swarm-m1:/data/project/nginx# docker build -t 101.43.228.87:5003/test/nginx:v3 .
[+] Building 0.1s (7/7) FINISHED                                                                                                                                            
 => [internal] load build definition from Dockerfile                                                                                                                   0.0s
 => => transferring dockerfile: 160B                                                                                                                                   0.0s
 => [internal] load .dockerignore                                                                                                                                      0.0s
 => => transferring context: 2B                                                                                                                                        0.0s
 => [internal] load metadata for 101.43.228.87:5003/test/nginx:v1                                                                                                      0.0s
 => [internal] load build context                                                                                                                                      0.0s
 => => transferring context: 1.23kB                                                                                                                                    0.0s
 => CACHED [1/2] FROM 101.43.228.87:5003/test/nginx:v1                                                                                                                 0.0s
 => [2/2] ADD ./html/  /usr/share/nginx/html/                                                                                                                          0.0s
 => exporting to image                                                                                                                                                 0.0s
 => => exporting layers                                                                                                                                                0.0s
 => => writing image sha256:9c889a1380870031007473175b6df013e949408cc73e273b892f14e6a851b09c                                                                           0.0s
 => => naming to 101.43.228.87:5003/test/nginx:v3                                                                                                                      0.0s
root@swarm-m1:/data/project/nginx# docker images
REPOSITORY                                         TAG       IMAGE ID       CREATED         SIZE
101.43.228.87:5003/test/nginx                      v3        9c889a138087   7 seconds ago   142MB
注意:
Dockerfile的  构建上下文 问题
建上下文的内容: 默认情况下,构建上下文是执行docker build命令的当前目录及其所有子目录和文件。因此,如您在/data/project/nginx目录下运行docker build.,那么这个目录及其所有子目录和文件都会成为构建上下文。
Dockerfile中的指令:在Dockerfile中,只能引用构建上下文中的文件和目录。例如,COPY或ADD指令只能复制构建上下文中的文件或目录。

所以执行docker build时如果Dockerfile中有ADD或者COPY命令,那么则需要ADD或COPY的文件(目录)和Dockerfile在同一目录下

否则会报错:
root@swarm-m1:/data/project/nginx# docker build -t 101.43.228.87:5003/test/nginx:v3 .
[+] Building 0.1s (6/6) FINISHED                                                                                                                                            
 => [internal] load build definition from Dockerfile                                                                                                                   0.0s
 => => transferring dockerfile: 190B                                                                                                                                   0.0s
 => [internal] load .dockerignore                                                                                                                                      0.0s
 => => transferring context: 2B                                                                                                                                        0.0s
 => [internal] load metadata for 101.43.228.87:5003/test/nginx:v1                                                                                                      0.0s
 => [internal] load build context                                                                                                                                      0.0s
 => => transferring context: 2B                                                                                                                                        0.0s
 => CACHED [1/2] FROM 101.43.228.87:5003/test/nginx:v1                                                                                                                 0.0s
 => ERROR [2/2] ADD /data/project/nfs/mount/nginx/html/  /usr/share/nginx/html/                                                                                        0.0s
------
 > [2/2] ADD /data/project/nfs/mount/nginx/html/  /usr/share/nginx/html/:
------
Dockerfile:4
--------------------
   2 |     
   3 |     # 添加html文件到nginx默认的网页目录
   4 | >>> ADD /data/project/nfs/mount/nginx/html/  /usr/share/nginx/html/
   5 |     
--------------------
ERROR: failed to solve: failed to compute cache key: failed to calculate checksum of ref 9c697a07-db7d-41e4-bb90-e00c64efdddf::ge6uv12ufq6j7bhc3ccbrr8is: failed to walk /var/lib/docker/tmp/buildkit-mount3795223411/data/project/nfs/mount/nginx: lstat /var/lib/docker/tmp/buildkit-mount3795223411/data/project/nfs/mount/nginx: no such file or directory
6.3 将镜像上传至harbor
root@swarm-m1:/data/project/nginx# docker push 101.43.228.87:5003/test/nginx:v3
The push refers to repository [101.43.228.87:5003/test/nginx]
c58f63417128: Pushed 
a1bd4a5c5a79: Layer already exists 
597a12cbab02: Layer already exists 
8820623d95b7: Layer already exists 
338a545766ba: Layer already exists 
e65242c66bbe: Layer already exists 
3af14c9a24c9: Layer already exists 
v3: digest: sha256:79900ec93b1110d1c9228a5122f714ee5c567d0d4a55359693ae7a93863b74c3 size: 1777
执行docker pull后,即可看到harbor有镜像
![image](https://note.youdao.com/yws/res/18858/80F974D5D2B24322A531DE2105F46D03)
6.4 将docker-compose中的镜像改为v3版本
root@swarm-m1:/data/project/nginx# cat docker-compose.yml
#stack 最低支持版本为 3
version: "3"
services:
    nginx: # 服务名称
      image: 101.43.228.87:5003/test/nginx:v3  # 镜像名称
      # container_name: nginx # 容器名称
      volumes:
        - nfs_html:/usr/share/nginx/html
        - nfs_conf:/etc/nginx
      networks:
        - nginx-net #指定网络
      # restart: always #重启策略
      ports:
        - 80:80 #挂载端口
      deploy:
        replicas: 8  #生成实例数量
# 在添加了update_config后,当你使用docker stack deploy命令更新stack时,Swarm会使用滚动更新策略,这样就可以在不中断服务的情况下进行更新了
        update_config:   # 添加滚动更新   
          parallelism: 3   # 一次更新2个
          delay: 10s    # 间隔10秒
        rollback_config:  # 添加回滚行为
          parallelism: 3   # 一次更新3个
          delay: 10s    # 间隔10秒
        resources:
          limits:
            cpus: '0.5'  # 限制每个容器使用的最大CPU为1.5核
            memory: 512M  # 限制每个容器使用的最大内存为512MB
          reservations:
            cpus: '0.1'  # 保留至少0.5核CPU给每个容器
            memory: 128M  # 保留至少256MB的内存给每个容器

volumes:
  nfs_html:
    driver: local
    driver_opts:
      type: nfs
      o: nfsvers=4,addr=192.168.31.181,rw
      device: ":/nginx/html"
  nfs_conf:
    driver: local
    driver_opts:
      type: nfs
      o: nfsvers=4,addr=192.168.31.181,rw
      device: ":/nginx/conf"

networks:
  nginx-net: #需要创建的网络名称
    driver: overlay #指定网络类型
6.5 swarm 重新部署server - 滚动升级
问题:
在更新Dockerfile后,重新构建镜像,即:更新镜像后
直接执行docker service update 时,无法更新容器的镜像,需要执行:
docker stack deploy -c docker-compose.yml nginx --with-registry-auth

需要添加--with-registry-auth,防止node节点无法拉取远程镜像

来部署或更新堆栈
root@swarm-m1:/data/project/nginx# docker stack deploy -c docker-compose.yml nginx --with-registry-auth
Updating service nginx_nginx (id: lgicaxzr8r8jlio80agv5899y)
执行完成后,可以查看更新情况
root@swarm-m1:/data/project/nginx# docker service ps nginx_nginx | grep Running
cqfjs2tq34h7   nginx_nginx.1       101.43.228.87:5003/test/nginx:v4   swarm-n1   Running         Running 15 seconds ago                      
whdgvyuhtvzw   nginx_nginx.2       101.43.228.87:5003/test/nginx:v4   swarm-n2   Running         Running 14 seconds ago                      
s7kg64f0sobp   nginx_nginx.3       101.43.228.87:5003/test/nginx:v4   swarm-n1   Running         Running 32 seconds ago                      
rloyt5t7nb36   nginx_nginx.4       101.43.228.87:5003/test/nginx:v4   swarm-n2   Running         Running 1 second ago                        
vqtrmv8p8crt   nginx_nginx.5       101.43.228.87:5003/test/nginx:v4   swarm-n2   Running         Running less than a second ago              
uo1t7w7ph8z0   nginx_nginx.6       101.43.228.87:5003/test/nginx:v4   swarm-n1   Running         Running 32 seconds ago                      
aidkm19309kd   nginx_nginx.7       101.43.228.87:5003/test/nginx:v4   swarm-n1   Running         Running less than a second ago              
zjj0go08u0yn   nginx_nginx.9       101.43.228.87:5003/test/nginx:v4   swarm-n2   Running         Running 15 seconds ago      
说明:
docker stack deploy命令用于在Docker Swarm模式下部署或更新服务。当更改了docker-compose.yml文件中的内容并希望这些更改反映在Swarm集群中的服务上时,通常需要运行此命令。

不需要运行docker stack deploy的情况:
1. 服务日志和监控:如果您只是查看服务的日志或监控服务的健康和性能,不需要重新部署堆栈。
2. 扩展服务:如果您想增加或减少服务的副本数量,可以使用docker service scale命令而不是重新部署整个堆栈。
3. 查看服务详情:使用docker service inspect或docker service ps查看服务的配置和状态时不需要重新部署。
4. 手动滚动更新:如果您想手动控制滚动更新的过程,可以使用docker service 5. update命令。但是,请注意,这些更改不会被记录在docker-compose.yml文件中。
6. 服务的运维操作:如清理旧的任务或容器、重启特定任务等,这些都不需要重新部署堆栈。
6.6 更新后回滚

需要在docker-compose中写明回滚操作:
rollback_config: # 添加回滚行为
parallelism: 3 # 一次更新3个
delay: 10s # 间隔10秒文章来源地址https://www.toymoban.com/news/detail-777820.html

root@swarm-m1:/data/project/nginx# docker service rollback nginx_nginx 
nginx_nginx
rollback: manually requested rollback 
overall progress: rolling back update: 8 out of 8 tasks 
1/8: running   [==================================================>] 
2/8: running   [==================================================>] 
3/8: running   [==================================================>] 
4/8: running   [==================================================>] 
5/8: running   [==================================================>] 
6/8: running   [==================================================>] 
7/8: running   [==================================================>] 
8/8: running   [==================================================>] 
verify: Service converged 
首先,需要理解当使用docker stack deploy时,其实是在更新服务,而不只是简单地部署。每次当使用该命令并更改docker-compose.yml的内容,实际上正在对服务进行更新。
执行docker service rollback时,是在告诉Docker Swarm回滚到上一个服务的状态

回滚配置: 默认情况下,Docker Swarm的服务不会保存所有的版本,所以回滚只会回到上一个状态。如果你在短时间内多次使用docker stack deploy命令,并在不停地更改配置,那么你可能无法回滚到你想要的那个特定版本。
镜像标签: 如果你在多次部署中使用了相同的镜像标签(例如:latest),这可能会引起混淆。每次部署时,最好使用不同的、具体的版本标签,这样在回滚时你会知道你回滚到了哪个版本。
有时回退时,不会生效,
为了解决这个问题,你可以考虑以下的方法:

    在每次构建新的镜像时,使用不同的版本标签而不是覆盖现有的标签。这样,你可以确保每次部署都有一个清晰的版本历史,使回滚变得更加明确。

    如果你需要回滚到特定的服务配置或镜像,而不是上一个版本,你可能需要手动使用docker service update命令指定镜像版本和配置。

    确保你的Swarm配置、网络和存储设置都正确,以避免回滚时出现问题。

    考虑使用Docker的版本控制工具和持续集成/持续部署工具,以自动化和跟踪你的部署过程,确保你可以轻松地回到任何之前的状态。
7. 调度策略
Apache Benchmark (ab) 是 Apache HTTP 服务器套件的一部分。以下是如何在不同的操作系统上安装 ab:
7.1 Ubuntu/Debian安装
apt-get update
apt-get -y install apache2-utils
7.2 CentOS安装
yum -y install httpd-tools
安装完成后,你可以在终端或命令行中输入 ab 来验证其是否已经正确安装。
7.3 使用
root@swarm-m1:/data/project/nfs/mount/nginx/html# ab -n 10000 -c 1000 http://192.168.31.181:80/
This is ApacheBench, Version 2.3 <$Revision: 1843412 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking 192.168.31.181 (be patient)
Completed 1000 requests
Completed 2000 requests
Completed 3000 requests
Completed 4000 requests
Completed 5000 requests
Completed 6000 requests
Completed 7000 requests
Completed 8000 requests
Completed 9000 requests
Completed 10000 requests
Finished 10000 requests


Server Software:        nginx/1.23.3
Server Hostname:        192.168.31.181
Server Port:            80

Document Path:          /
Document Length:        619 bytes

Concurrency Level:      1000
Time taken for tests:   2.611 seconds
Complete requests:      10000
Failed requests:        0
Total transferred:      8520000 bytes
HTML transferred:       6190000 bytes
Requests per second:    3830.46 [#/sec] (mean)
Time per request:       261.065 [ms] (mean)
Time per request:       0.261 [ms] (mean, across all concurrent requests)
Transfer rate:          3187.07 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0   89  15.1     90     126
Processing:    46  160  52.9    154     392
Waiting:        1  131  54.2    125     365
Total:        140  249  52.5    243     473

Percentage of the requests served within a certain time (ms)
  50%    243
  66%    261
  75%    274
  80%    284
  90%    318
  95%    356
  98%    394
  99%    406
 100%    473 (longest request)

到了这里,关于docker nfs文件系统持久化,swarm部署NGINX使用nfs示例的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Docker】Docker 部署 Mysql 并设置数据持久化

    我们使用Docker的目的就是图它方便下载部署,不用常规的经历下载、配置、安装等等繁琐的步骤。但是与此同时Docker也存在一些缺点,像删除容器后数据就都没有了。很显然,不能持久化对于需要数据持久化的MySQL数据库来说是不能接受的,那有没有方式可以解决。 有,通过

    2024年02月10日
    浏览(33)
  • 使用docker安装部署elasticsearch,并持久化到容器卷

    1.拉取Elasticsearch Docker镜像 在终端中执行以下命令来从Docker Hub拉取特定版本(如8.2.0)的Elasticsearch镜像。请确保你的网络连接正常,并且Docker已经在你的机器上安装并正确配置。 2.创建挂载目录 执行以下命令在本地创建文件夹,用于持久化 Elasticsearch 的数据和配置。 如果上述文

    2024年04月08日
    浏览(47)
  • docker (六)-进阶篇-数据持久化最佳实践MySQL部署

    容器的数据挂载通常指的是将宿主机(虚拟机或物理机)上的目录或文件挂载到容器内部 详情参考docker官网文档 查询官网,MySQL必须要设置超级用户密码的环境变量 说明:上面的 -v 用于将项目数据目录、日志目录、配置文件目录映射到宿主机, --restart=always 表示重启  doc

    2024年02月20日
    浏览(47)
  • DevOps工具:k8s数据共享与持久化-nfs

    可伸缩 :可利用k8s集群的资源执行自动化任务。 可追溯 :通过将构建产物和相关数据持久化,可以确保每个构建版本的可追溯性,有利于快速排查和解决问题,同时可回滚到之前得版本。而CI、CD和测试各阶段都可能产生文件(不适合存储数据库),因此需要持久化。 数据

    2024年03月25日
    浏览(42)
  • yapi容器化docker部署以及mongodb容器的持久化挂载异常问题

    通过docker形式部署yapi,需要准备一个mongodb,然后直接在一个空文件夹里写好Dockerfile,其中通过wget下载yapi的zip包。 基本按照这篇文章:https://www.modb.pro/db/149666 来处理即可 把mongodb的docker 跑起来, --auth 表示需要密码才能访问 注意 原文中启动mongo的容器是这样的 首先创建Mon

    2024年02月14日
    浏览(51)
  • k8s通过nfs-provisioner配置持久化存储

    一、nfs-client-provisioner简介 Kubernetes集群中NFS类型的存储没有内置 Provisioner。但是你可以在集群中为NFS配置外部Provisioner。 Nfs-client-provisioner是一个开源的NFS 外部Provisioner,利用NFS Server为Kubernetes集群提供持久化存储,并且支持动态购买PV。但是nfs-client-provisioner本身不提供NFS,需

    2024年02月11日
    浏览(41)
  • K8S使用持久化卷存储到NFS(NAS盘)

    参考文章:K8S-v1.20中使用PVC持久卷 - 知乎 目录 1、概念: 1.1 基础概念 1.2 PV的配置 1.2.1 静态PV配置 1.2.2 动态PV配置 1.2.3 PVC与PV的绑定 1.2.4 PVC及PV的使用 2 部署PV及PVC 2.1 所有K8S机器都需要安装NFS程序 2.2 仅针对需要暴露文件服务的机器开启NFS服务         2.2.1 Linux为例开启NFS服

    2023年04月26日
    浏览(52)
  • Docker Desktop使用宿主机Windows的配置文件持久化存储数据

    《微软官网Windows 上的 Docker 引擎帮助文档》 以Nginx为例 把Nginx的配置文件复制到Windows 注意:Windows的盘符是小写的,以及目录直接是用反斜杠的!(我掉这坑里好久!!!) 修改宿主机的nginx.conf配置文件 删除nginx容器 重启启动一个新的Nginx容器 访问localhost

    2024年02月09日
    浏览(52)
  • docker持久化部署vue前端nodejs后端项目-- 01. docker以及docker-compose在window以及linux的安装

    本章节主要来讲述docker desktop 界面版本使用以及docker-compose 的安装和使用 GIT地址:添加链接描述 docker 专栏:点击此处 章节 1 docker以及docker-compose在window以及linux的安装 2 项目对应的docker-compose结构 3 怎么将docker-compose项目部署到服务器上 4 配置服务器JENKINS环境 额外篇 章节

    2024年02月04日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包