容器技术

六十五、Docker Swarm-使用local volume

2022-01-16  本文已影响0人  InsaneLoafer

swarm 使用 local volume

本节源码,两个文件

docker-compose.yml

version: "3.8"

services:
  db:
    image: mysql:5.7
    environment:
      - MYSQL_ROOT_PASSWORD_FILE=/run/secrets/mysql_pass
    secrets:
      - mysql_pass
    volumes:
      - data:/var/lib/mysql

volumes:
  data:

secrets:
  mysql_pass:
    file: mysql_pass.txt

mysql_pass.txt

vagrant@swarm-manager:~$ more mysql_pass.txt
abc123
vagrant@swarm-manager:~$

使用local volume

[vagrant@swarm-manager ~]$ ls
docker-compose.yaml  mysql_pass.txt
[vagrant@swarm-manager ~]$
[vagrant@swarm-manager ~]$
[vagrant@swarm-manager ~]$ docker stack deploy --compose-file docker-compose.yaml db
Creating network db_default
Creating secret db_mysql_pass
Creating service db_db
[vagrant@swarm-manager ~]$
[vagrant@swarm-manager ~]$ docker stack ls
NAME      SERVICES   ORCHESTRATOR
db        1          Swarm
[vagrant@swarm-manager ~]$ docker service ls
ID             NAME      MODE         REPLICAS   IMAGE       PORTS
j6wqdraaxnkt   db_db     replicated   0/1        mysql:5.7
[vagrant@swarm-manager ~]$
[vagrant@swarm-manager ~]$ docker service ps db_db
ID             NAME      IMAGE       NODE            DESIRED STATE   CURRENT STATE            ERROR     PORTS
l6ogf9p9o0cl   db_db.1   mysql:5.7   swarm-worker2   Running         Running 15 seconds ago
[vagrant@swarm-manager ~]$
[vagrant@swarm-worker2 ~]$ docker container ls
CONTAINER ID   IMAGE       COMMAND                  CREATED          STATUS          PORTS                 NAMES
584b0fe14812   mysql:5.7   "docker-entrypoint.s…"   20 seconds ago   Up 20 seconds   3306/tcp, 33060/tcp   db_db.1.l6ogf9p9o0cl6ug8j5mp32i3g
[vagrant@swarm-worker2 ~]$
[vagrant@swarm-worker2 ~]$ docker volume ls
DRIVER    VOLUME NAME
local     db_data
[vagrant@swarm-worker1 ~]$ docker volume ls
DRIVER    VOLUME NAME
[vagrant@swarm-worker1 ~]$

[vagrant@swarm-manager ~]$ docker volume ls
DRIVER    VOLUME NAME
[vagrant@swarm-manager ~]$
[vagrant@swarm-worker2 ~]$ docker container inspect 58 | grep Source
                    "Source": "db_data",
                "Source": "/var/lib/docker/volumes/db_data/_data",
[vagrant@swarm-worker2 ~]$
[vagrant@swarm-worker2 ~]$ sudo ls /var/lib/docker/volumes/db_data/_data
auto.cnf    ca.pem           client-key.pem  ibdata1      ib_logfile1  mysql               private_key.pem  server-cert.pem  sys
ca-key.pem  client-cert.pem  ib_buffer_pool  ib_logfile0  ibtmp1       performance_schema  public_key.pem   server-key.pem

删除stack,volume依旧存在,实现数据持久化

[vagrant@swarm-manager ~]$ docker stack rm db
Removing service db_db
Removing secret db_mysql_pass
Removing network db_default
[vagrant@swarm-manager ~]$
[vagrant@swarm-manager ~]$
[vagrant@swarm-manager ~]$ docker stack ls
NAME      SERVICES   ORCHESTRATOR
[vagrant@swarm-manager ~]$
[vagrant@swarm-manager ~]$ docker service ls
ID        NAME      MODE      REPLICAS   IMAGE     PORTS

----
[vagrant@swarm-worker1 ~]$
[vagrant@swarm-worker1 ~]$ docker volume ls
DRIVER    VOLUME NAME
[vagrant@swarm-worker1 ~]$
上一篇 下一篇

猜你喜欢

热点阅读