zoukankan      html  css  js  c++  java
  • docker--数据持久化之Data Volume

    使用mysql为例

    查看docker hub官方的mysql image 的dockerfile,有这一行:VOLUME /var/lib/mysql

    -v给volume创建别名

    [root@localhost ~]# docker run -d --name mysql1 -v mysql:/var/lib/mysql --name mysql1 -e MYSQL_ALLOW_EMPTY_PASSWORD=true mysql:5.7.26 
    31584edba6eb9b4aa772076f1c2d73c5eb7b4f1e62dd24b41c68518bdf62e11a
    [root@localhost ~]# 
    [root@localhost ~]# docker volume ls
    DRIVER              VOLUME NAME
    local               mysql
    [root@localhost ~]# docker container ls
    CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                 NAMES
    31584edba6eb        mysql:5.7.26        "docker-entrypoint.s…"   47 seconds ago      Up 46 seconds       3306/tcp, 33060/tcp   mysql1
    [root@localhost ~]# docker volume 
    create   inspect  ls       prune    rm       
    [root@localhost ~]# docker volume inspect mysql
    [
        {
            "CreatedAt": "2019-07-22T03:09:06-07:00",
            "Driver": "local",
            "Labels": null,
            "Mountpoint": "/var/lib/docker/volumes/mysql/_data",#在宿主机的挂账路径
            "Name": "mysql",
            "Options": null,
            "Scope": "local"
        }
    ]
    [root@localhost ~]# 

    删了container,不删volume ,重新创建mysql container,数据还在

    [root@localhost ~]# docker exec -it mysql1 /bin/bash
    root@31584edba6eb:/# mysql -uroot
    Welcome to the MySQL monitor.  Commands end with ; or g.
    Your MySQL connection id is 2
    Server version: 5.7.26 MySQL Community Server (GPL)
    
    Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
    
    Oracle is a registered trademark of Oracle Corporation and/or its
    affiliates. Other names may be trademarks of their respective
    owners.
    
    Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.
    
    mysql> show databases;
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | mysql              |
    | performance_schema |
    | sys                |
    +--------------------+
    4 rows in set (0.00 sec)
    
    mysql> create database docker;
    Query OK, 1 row affected (0.00 sec)
    
    mysql> show databases;
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | docker             |
    | mysql              |
    | performance_schema |
    | sys                |
    +--------------------+
    5 rows in set (0.00 sec)
    
    mysql> exit
    Bye
    root@31584edba6eb:/# docker rm -f mysql1
    bash: docker: command not found
    root@31584edba6eb:/# exit               
    exit
    [root@localhost ~]# docker rm -f mysql1 
    INFO[2019-07-22T03:24:25.954289600-07:00] ignoring event                                module=libcontainerd namespace=moby topic=/tasks/delete type="*events.TaskDelete"
    WARN[2019-07-22T03:24:26.032476919-07:00] 31584edba6eb9b4aa772076f1c2d73c5eb7b4f1e62dd24b41c68518bdf62e11a cleanup: failed to unmount IPC: umount /var/lib/docker/containers/31584edba6eb9b4aa772076f1c2d73c5eb7b4f1e62dd24b41c68518bdf62e11a/mounts/shm, flags: 0x2: no such file or directory 
    mysql1
    [root@localhost ~]# docker volume ls 
    DRIVER              VOLUME NAME
    local               mysql
    [root@localhost ~]# docker run -d --name mysql1 -v mysql:/var/lib/mysql --name mysql2 -e MYSQL_ALLOW_EMPTY_PASSWORD=true mysql:5.7.26 
    877377cb64ec6242d2cd9e821d3978e7f5e6d2dce791d88e605e3f5b2a098762
    [root@localhost ~]# docker exec -it mysql2 /bin/bash
    root@877377cb64ec:/# mysql -uroot
    Welcome to the MySQL monitor.  Commands end with ; or g.
    Your MySQL connection id is 2
    Server version: 5.7.26 MySQL Community Server (GPL)
    
    Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
    
    Oracle is a registered trademark of Oracle Corporation and/or its
    affiliates. Other names may be trademarks of their respective
    owners.
    
    Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.
    
    mysql> show databases;
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | docker             |
    | mysql              |
    | performance_schema |
    | sys                |
    +--------------------+
    5 rows in set (0.00 sec)
    
    mysql> 
  • 相关阅读:
    git 入门操作
    ubuntu apc 安装
    vps mysql自动关闭
    xdebug安装
    C#获取IP和主机名
    C#在类中用调用Form的方法
    luogu3181 [HAOI2016]找相同字符
    luogu6139 【模板】广义后缀自动机(广义SAM)
    广义后缀自动机小结
    Codeforces Round #620 (Div. 2) 题解
  • 原文地址:https://www.cnblogs.com/laonicc/p/11227614.html
Copyright © 2011-2022 走看看