• docker 4 : 容器数据卷使用


    该实验参考bilibili狂神说视频:

    将本地文件夹挂载到docker容器对应的文件夹下:

    例如将宿主机/home/ceshi挂载到centos7容器内部/home,这样容器内/home里的文件跟宿主机/home/ceshi实现将同步。

    命令参考:

    docker run -it -v /home/ceshi:/home centos:centos7 /bin/bash

    [root@localhost ~]# docker run -it -v /home/ceshi:/home centos:centos7 /bin/bash
    [root@b423e6a40290 /]# cd /home/
    [root@b423e6a40290 home]# ll
    total 0
    [root@b423e6a40290 home]# touch 1.txt
    [root@b423e6a40290 home]# ll
    total 0
    -rw-r--r--. 1 root root 0 Apr  1 02:42 1.txt
    
    然后回到宿主机,进入/home目录,可以看到下面已自动创建了一个名为ceshi的文件夹,进入之后可以看到我们创建的1.txt文件。
    
    [root@localhost ~]# cd /home/
    [root@localhost home]# 
    [root@localhost home]# ll
    total 0
    drwxr-xr-x. 2 root root 19 Mar 31 22:42 ceshi
    [root@localhost home]# cd ceshi/
    [root@localhost ceshi]# ll
    total 0
    -rw-r--r--. 1 root root 0 Mar 31 22:42 1.txt
    
    然后我们在宿主机上创建一个2.txt的文件,回到容器,也能看到对应的2.txt已经同步到容器。
    
    [root@localhost ceshi]# touch 2.txt
    [root@localhost ceshi]# ll
    total 0
    -rw-r--r--. 1 root root 0 Mar 31 22:42 1.txt
    -rw-r--r--. 1 root root 0 Mar 31 22:43 2.txt
    
    [root@b423e6a40290 home]# ll
    total 0
    -rw-r--r--. 1 root root 0 Apr  1 02:42 1.txt
    -rw-r--r--. 1 root root 0 Apr  1 02:43 2.txt
    

      

      在容器详细信息可以看到:

    [root@localhost ceshi]# docker inspect b423e6a40290
            "Mounts": [
                {
                    "Type": "bind",
                    "Source": "/home/ceshi",
                    "Destination": "/home",
                    "Mode": "",
                    "RW": true,
                    "Propagation": "rprivate"
    

      

      当我们停止容器之后,文件不会消失,并且重启之后,会重新加载文件夹下所有文件。

    停止容器:
    [root@localhost ~]# docker ps
    CONTAINER ID   IMAGE                 COMMAND        CREATED        STATUS        PORTS                    NAMES
    
    进入宿主机测试目录下创建文件3.txt:
    [root@localhost ~]# cd /home/ceshi/
    [root@localhost ceshi]# touch 3.txt
    [root@localhost ceshi]# ll
    total 0
    -rw-r--r--. 1 root root 0 Mar 31 22:42 1.txt
    -rw-r--r--. 1 root root 0 Mar 31 22:43 2.txt
    -rw-r--r--. 1 root root 0 Mar 31 23:02 3.txt
    
    重启并进入容器:
    [root@localhost ceshi]# docker ps -a
    CONTAINER ID   IMAGE                 COMMAND        CREATED          STATUS                          PORTS                    NAMES
    b423e6a40290   centos:centos7        "/bin/bash"    20 minutes ago   Exited (0) About a minute ago                            angry_allen
    3cf493d3feb0   portainer/portainer   "/portainer"   16 hours ago     Up 16 hours                     0.0.0.0:8088->9000/tcp   clever_kowalevski
    4300e911311e   lihaijun/centos7:v1   "/bin/bash"    18 hours ago     Exited (137) 17 hours ago                                heuristic_chatelet
    93b35bb0c041   centos:centos7        "/bin/bash"    18 hours ago     Exited (0) 18 hours ago                                  epic_darwin
    [root@localhost ceshi]# docker start b423e6a40290
    b423e6a40290
    [root@localhost ceshi]# docker attach b423e6a40290
    
    查看文件是否已经同步:
    [root@b423e6a40290 /]# cd /home/
    [root@b423e6a40290 home]# ll
    total 0
    -rw-r--r--. 1 root root 0 Apr  1 02:42 1.txt
    -rw-r--r--. 1 root root 0 Apr  1 02:43 2.txt
    -rw-r--r--. 1 root root 0 Apr  1 03:02 3.txt

      下面创建一个mysql试试:

    [root@localhost ceshi]# docker run -d -p 3310:3306 -v /home/mysql/conf:/etc/mysql/conf.d -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql01 mysql:5.7
    440a5df74aa3cfa186908cb9fe3a1e72a30bba91c53dcbba5128476e43fbec4d
    
    参数说明:
    -d:后台运行
    -p:端口映射,将内部3306端口映射为3310端口
    -v:挂载容器卷,将宿主机的/home/mysql/data和/home/mysql/conf分别挂载到容器的/var/lib/mysql和/etc/mysql/conf.d
    -e:传递环境变量,这里传递root的密码为123456
    --name:容器的名称
    mysql:5.7:镜像的名称和版本
    
    [root@localhost ceshi]# docker ps
    CONTAINER ID   IMAGE                 COMMAND                  CREATED         STATUS         PORTS                               NAMES
    440a5df74aa3   mysql:5.7             "docker-entrypoint.s…"   3 minutes ago   Up 3 minutes   33060/tcp, 0.0.0.0:3310->3306/tcp   mysql01
    3cf493d3feb0   portainer/portainer   "/portainer"             17 hours ago    Up 16 hours    0.0.0.0:8088->9000/tcp              clever_kowalevski
    
    查看文件夹的文件:
    [root@localhost ~]# cd /home/mysql/
    [root@localhost mysql]# ll
    total 4
    drwxr-xr-x. 2 root             root    6 Mar 31 23:20 conf
    drwxr-xr-x. 5 systemd-coredump root 4096 Mar 31 23:20 data
    [root@localhost mysql]# cd data/
    [root@localhost data]# ll
    total 188484
    -rw-r-----. 1 systemd-coredump input       56 Mar 31 23:20 auto.cnf
    -rw-------. 1 systemd-coredump input     1676 Mar 31 23:20 ca-key.pem
    -rw-r--r--. 1 systemd-coredump input     1112 Mar 31 23:20 ca.pem
    -rw-r--r--. 1 systemd-coredump input     1112 Mar 31 23:20 client-cert.pem
    -rw-------. 1 systemd-coredump input     1680 Mar 31 23:20 client-key.pem
    -rw-r-----. 1 systemd-coredump input     1359 Mar 31 23:20 ib_buffer_pool
    -rw-r-----. 1 systemd-coredump input 79691776 Mar 31 23:20 ibdata1
    -rw-r-----. 1 systemd-coredump input 50331648 Mar 31 23:20 ib_logfile0
    -rw-r-----. 1 systemd-coredump input 50331648 Mar 31 23:20 ib_logfile1
    -rw-r-----. 1 systemd-coredump input 12582912 Apr  1 00:19 ibtmp1
    drwxr-x---. 2 systemd-coredump input     4096 Mar 31 23:20 mysql
    drwxr-x---. 2 systemd-coredump input     8192 Mar 31 23:20 performance_schema
    -rw-------. 1 systemd-coredump input     1680 Mar 31 23:20 private_key.pem
    -rw-r--r--. 1 systemd-coredump input      452 Mar 31 23:20 public_key.pem
    -rw-r--r--. 1 systemd-coredump input     1112 Mar 31 23:20 server-cert.pem
    -rw-------. 1 systemd-coredump input     1676 Mar 31 23:20 server-key.pem
    drwxr-x---. 2 systemd-coredump input     8192 Mar 31 23:20 sys
    
    通过mysql工具创建一个名为test的数据库的时候,会发现在宿主机的data目录下多出来一个test的文件夹。
    [root@localhost data]# ll
    total 188484
    -rw-r-----. 1 systemd-coredump input       56 Mar 31 23:20 auto.cnf
    -rw-------. 1 systemd-coredump input     1676 Mar 31 23:20 ca-key.pem
    -rw-r--r--. 1 systemd-coredump input     1112 Mar 31 23:20 ca.pem
    -rw-r--r--. 1 systemd-coredump input     1112 Mar 31 23:20 client-cert.pem
    -rw-------. 1 systemd-coredump input     1680 Mar 31 23:20 client-key.pem
    -rw-r-----. 1 systemd-coredump input     1359 Mar 31 23:20 ib_buffer_pool
    -rw-r-----. 1 systemd-coredump input 79691776 Mar 31 23:20 ibdata1
    -rw-r-----. 1 systemd-coredump input 50331648 Mar 31 23:20 ib_logfile0
    -rw-r-----. 1 systemd-coredump input 50331648 Mar 31 23:20 ib_logfile1
    -rw-r-----. 1 systemd-coredump input 12582912 Apr  1 00:19 ibtmp1
    drwxr-x---. 2 systemd-coredump input     4096 Mar 31 23:20 mysql
    drwxr-x---. 2 systemd-coredump input     8192 Mar 31 23:20 performance_schema
    -rw-------. 1 systemd-coredump input     1680 Mar 31 23:20 private_key.pem
    -rw-r--r--. 1 systemd-coredump input      452 Mar 31 23:20 public_key.pem
    -rw-r--r--. 1 systemd-coredump input     1112 Mar 31 23:20 server-cert.pem
    -rw-------. 1 systemd-coredump input     1676 Mar 31 23:20 server-key.pem
    drwxr-x---. 2 systemd-coredump input     8192 Mar 31 23:20 sys
    drwxr-x---. 2 systemd-coredump input       20 Apr  1 00:26 test
    

      

  • 相关阅读:
    neutron外网介绍
    oracle时间转换问题汇总
    redhat72普通用户计划任务实现守护进程
    Rabbitmq消息持久化
    rabbitmq消息流转分析
    Rabbitmq基本概念
    protobuf传文件存入oracle
    X32指令自动委托
    IT系统上线事宜
    可转债业务玩法
  • 原文地址:https://www.cnblogs.com/tortoise512/p/14605777.html
Copyright © 2020-2023  润新知