docker数据卷Volumes

本文详细介绍了Docker中数据卷(Volumes)的创建、挂载和特点,包括本地目录(Bindmounts)的挂载规则,以及如何将war包放入容器并通过docker cp进行操作。还涵盖了docker run命令的使用实例和NFS存储的配置方法。
摘要由CSDN通过智能技术生成

一、挂载共享目录:数据卷(Volumes)、本地目录(Bind mounts)

1、数据卷

数据卷是一个可供一个或多个容器使用的特殊目录,它绕过UFS,可以提供很多有用的特性:

  • 数据卷可以在容器之间共享和重用
  • 对数据卷的修改会立马生效
  • 对数据卷的更新不会影响镜像
  • 数据卷默认会一直存在,即使容器被删除

注意:数据卷的使用,类似于Linux下目录的使用或文件进行mount,镜像中的被指定为挂载点的目录中的文件会隐藏掉,能显示看的是挂载的数据卷。

Docker中提供了两种挂载方式,-v 或--mount,推荐使用 --mount,因为--mount 更简洁易懂。

创建一个数据卷并查看:

# docker volume create nginx3

# docker volume ls
DRIVER              VOLUME NAME
local               nginx3

# docker volume inspect nginx3
[
    {
        "CreatedAt": "2020-08-18T14:22:26+08:00",
        "Driver": "local",
        "Labels": null,
        "Mountpoint": "/var/lib/docker/volumes/nginx3/_data",
        "Name": "nginx3",
        "Options": null,
        "Scope": "local"
    }
]

docker run 的时候,使用--mount 来将数据卷挂载到容器,在一次 docker run 中可以挂载多个数据卷。

docker run --name test-web -d -p 8080:8080 -v  my-volume:/webapp  test-web:latest

docker run --name test-web -d -p 8080:8080  --mount source=my-volume,target=/webapp test-web:latest

2、挂载主机目录(Bind mounts)
docker run --name test-web -d -p 8080:8080 --mount type=bind,source=/src/webapp,target=/opt/webapp  test-web

docker run --name nginx-web -d -p 80:80  -v  /usr/local/tomcat/webapps/:/usr/local/nginx/html     nginx:latest

注:

     1、-v参数    后面如果跟的不是本地的绝对路径,而只是一个目录名,docker会默认创建一个volume数据卷 。

                        如果 -v 参数是一个本地的绝对路径,则会挂载本地目录到容器里面。

     2、docker volume 的默认路径在   /var/lib/docker/volumes/ 

     3、使用 -v 参数时如果本地目录不存在,Docker会自动创建。使用 --mount 参数时,如果本地目录不存在,Docker会报错

     4、Docker挂载主机目录的默认权限是读写,用户也可以通过增加 readonly 指定为只读
3、确认 volume 挂载
$ docker inspect shenlel --format "{{ .Mounts }}"
[{volume pre_install_nvidia-docker /mnt/data/docker-data/volumes/pre_install_nvidia-docker/_data /opt local z true }]

二、将war包放入容器

1、# docker images
REPOSITORY                         TAG                 IMAGE ID            CREATED             SIZE
tomcat                             latest              882487b8be1d        3 weeks ago         507MB

2、# docker  run  -p  8080:8080  --name  test_tomcat  --restart=always    -d   tomcat:latest
85da0208e1b1c8179849b1a383911f982eddba703dbc5c1cefbed9ce4f87ac94

3、# docker  cp  网页.war  85d:/usr/local/tomcat/webapps/

4、# docker exec -it  85d  bash  (进入容器,正常的war包会被自动解压)
root@85da0208e1b1:/usr/local/tomcat# ls
BUILDING.txt     LICENSE  README.md     RUNNING.txt  conf     lib   native-jni-lib  webapps
CONTRIBUTING.md  NOTICE   RELEASE-NOTES  bin          include  logs  temp         work

5、若要断开与容器的连接,并且关闭容器:exit

 如果只想断开和容器的连接而不关闭容器:快捷键:ctrl+p+q

三、docker命令

docker run —name="centos_kch" -itd  centos  tail -f /etc/hosts    (tail -f /etc/hosts) 的作用夯住容器,pid=1的进程要让他保持着,防止容器退出

 docker cp 用于容器与主机之间的数据拷贝。

3、docker volume使用NFS存储

https://www.cnblogs.com/elvi/p/8463673.html    有待整理

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

塞北酒鬼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值