美文网首页
第六章:Docker数据管理

第六章:Docker数据管理

作者: xrichardyan | 来源:发表于2017-08-06 15:05 被阅读0次

6.1数据卷

1.在容器内创建一个数据库

$ docker run -d -P --name web -v /webapp training/webapp python app.py    # 注意:只里面的 -P 是大写
Unable to find image 'training/webapp:latest' locally
latest: Pulling from training/webapp
e190868d63f8: Pull complete 
909cd34c6fd7: Pull complete 
0b9bfabab7c1: Pull complete 
a3ed95caeb02: Pull complete 
10bbbc0fc0ff: Pull complete 
fca59b508e9f: Pull complete 
e7ae2541b15b: Pull complete 
9dd97ef58ce9: Pull complete 
a4c1b0cb7af7: Pull complete 
Digest: sha256:06e9c1983bd6d5db5fba376ccd63bfa529e8d02f23d5079b8f74a616308fb11d
Status: Downloaded newer image for training/webapp:latest
034cc7dedb4b2a207476b8c0810bb5599c8bc847f0af753b3ca4f3dcf522ae63
$ docker images
REPOSITORY           TAG                 IMAGE ID            CREATED             SIZE
training/webapp      latest              6fae60ef3446        2 years ago         349MB

2.挂载一个主机目录作为数据卷

使用 -v 标记可以指定挂载一个本地的已有的目录到容器中作为数据卷

$ docker run -d -P --name web -v /src/webapp:/opt/webapp training/webapp python app.py
3aeda02e4fe6e3797325a91b74d53a0793152f5ad9ccae03ea92b40b53909f0b

上面的命令加载电脑本机的 /src/webapp 目录到容器的 /opt/webapp 目录。

3.挂载一个本地主机文件作为数据卷

(不推荐)

6.2数据卷容器

$ docker run -it -v /dbdata --name dbdata ubuntu
root@851a7c458c64:/# ls    # 查看 /dbdata 目录 
bin  boot  dbdata  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var

然后,可以和其他容器中使用 --volumes-from 来挂载 dbdata容器中的数据卷,例如创建 db1 和 db2 两个容器,并从 dbdata 容器挂载数据卷:

$ docker run -it  --volumes-from dbdata --name db1 ubuntu
root@d6b56948c842:/# exit
$ docker run -it  --volumes-from dbdata --name db2 ubuntu
root@0025f65e34dc:/# exit

查看已创建的容器

$ docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                          PORTS               NAMES
0025f65e34dc        ubuntu              "/bin/bash"         19 seconds ago      Exited (0) 13 seconds ago                           db2
d6b56948c842        ubuntu              "/bin/bash"         41 seconds ago      Exited (0) 25 seconds ago                           db1
851a7c458c64        ubuntu              "/bin/bash"         12 minutes ago      Exited (0) About a minute ago                       dbdata

三个容器任何一方在该目录下的写入,其他容器都可以看到。

$ docker run -it -v /dbdata --name dbdata ubuntu
root@851a7c458c64:/# ls
bin  boot  dbdata  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
root@851a7c458c64:/# cd /dbdata/
root@851a7c458c64:/dbdata# touch helloworld.py
root@851a7c458c64:/dbdata# ls
helloworld.py

在 db1 容器内查看它:

$ docker run -it  --volumes-from dbdata --name db1 ubuntu
root@d6b56948c842:/# ls
bin  boot  dbdata  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
root@d6b56948c842:/# cd dbdata/
root@d6b56948c842:/dbdata# ls
helloworld.py

可以多次使用 --volume-from 参数来从多个容器挂载多个数据卷。还可以从其他已经挂载了容器卷的容器来挂载数据卷。

6.3利用数据卷容器来迁移数据

1.备份

2.恢复

相关文章

  • 39-docker(一)

    本章内容 ◆ Docker简介◆ Docker 镜像与制作◆ Docker 数据管理◆ Docker 网络◆ Do...

  • docker(三)docker镜像文件

    数据管理前提1>docker容器不应该负责持久化2>业界使用docker,等价于使用服务3>官方使用docker,...

  • docker 镜像与容器

    Docker中通过模板创建镜像,Docker容器、仓库及数据管理[https://blog.51cto.com/f...

  • Docker的那些事儿—Docker数据管理(28)

    从本节开启Docker存储部分,学习docker是如何对数据管理的。 上一篇:Docker的那些事儿—容器与外部网...

  • Docker学习五、docker容器数据卷

    前言、Docker中的数据管理 Docker镜像是由多个只读层叠加而成,启动容器时,Docker会加载只读层并会在...

  • 第六章:Docker数据管理

    6.1数据卷 1.在容器内创建一个数据库 2.挂载一个主机目录作为数据卷 使用 -v 标记可以指定挂载一个本地的已...

  • Docker基本命令

    镜像操作相关命令 容器操作相关命令 访问Docker仓库 Docker数据管理 端口映射与容器互联 Dockerf...

  • Docker 入门教程之数据管理

    Docker 数据管理的方式 Docker 对于容器数据的存储推荐挂载到宿主机,以此减轻容器的大小,也方便数据和容...

  • Docker数据管理

    容器管理数据方式: 数据卷:容器内数据直接映射到本地主机环境; 数据卷容器:使用特定容器维护数据卷。 数据卷 类似...

  • docker数据管理

    容器添加数据卷 数据卷添加权限 ro-read-only 只读rw-read-write 写读 dockerfil...

网友评论

      本文标题:第六章:Docker数据管理

      本文链接:https://www.haomeiwen.com/subject/bewmlxtx.html