快递系统查询网站怎么做,创建网站需要注意的问题,广汉移动网站建设,设计广告图用什么软件文章目录 一、概述二、数据卷三、数据卷容器四、端口映射五、容器互联#xff08;使用centos镜像#xff09;总结 一、概述
管理 Docker 容器中数据主要有两种方式#xff1a;数据卷#xff08;Data Volumes#xff09;和数据卷容器#xff08;DataVolumes Containers使用centos镜像总结 一、概述
管理 Docker 容器中数据主要有两种方式数据卷Data Volumes和数据卷容器DataVolumes Containers。
二、数据卷
数据卷是一个供容器使用的特殊目录位于容器中。可将宿主机的目录挂载到数据卷上对数据卷的修改操作立刻可见并且更新数据不会影响镜像从而实现数据在宿主机与容器之间的迁移。数据卷的使用类似于 Linux 下对目录进行的 mount 操作。
数据卷就是一种可以独立于容器生命周期存储的机制数据卷能提供数据持久化和数据共享。
数据卷的特性
持久化数据卷是容器中持久化存储的一种方法即使容器被删除数据卷中的数据仍然可以保留。
数据共享数据卷可以被多个容器共享和重用从而有效地实现容器之间的数据共享。
安全卷权限控制可以在创建数据卷时指定权限如读写、只读访问权限等。
性能优化数据卷支持读写操作容器可以对数据卷中的数据进行读取和写入。这使得容器可以像访问本地文件一样访问数据卷中的数据。
1、创建数据卷
[rootlocalhost ~]# docker volume create mydata
mydata
2、查看所有数据卷
[rootlocalhost ~]# docker volume ls
DRIVER VOLUME NAME
local mydata
3、查看数据卷信息
[rootlocalhost ~]# docker volume inspect mydata
[{CreatedAt: 2023-09-04T16:09:5508:00, #卷创建的时间戳Driver: local, #卷使用的存储驱动。在这个例子中驱动为“local”表示这个卷是由本地文件系统提供的。Labels: null, #卷标签。这里没有标签。Mountpoint: /var/lib/docker/volumes/mydata/_data, #卷在宿主机上的挂载点即卷数据在宿主机上的实际存储位置。Name: mydata, #卷的名称。Options: null, #卷的选项如读写权限、备份等。这里没有选项。Scope: local #卷的作用域。在这个例子中作用域为“local”表示这个卷只在当前宿主机上可用。}
]
#宿主机目录/var/www 挂载到容器中的/data1。
注意宿主机本地目录的路径必须是使用绝对路径。如果路径不存在Docker会自动创建相应的路径。
docker run -v /var/www:/data1 --name web1 -it centos:7 /bin/bash #-v 选项可以在容器内创建数据卷
ls
echo this is web1 /data1/abc.txt
exit#返回宿主机进行查看
cat /var/www/abc.txt 三、数据卷容器
数据卷容器就是一种被用来提供共享文件或者持久化数据存储的容器
#创建一个容器作为数据卷容器
docker run --name web2 -v /data1 -v /data2 -it centos:7 /bin/bash
echo this is web2 /data1/abc.txt
echo THIS IS WEB2 /data2/ABC.txt#使用 --volumes-from 来挂载 web2 容器中的数据卷到新的容器
docker run -it --volumes-from web2 --name web3 centos:7 /bin/bash
cat /data1/abc.txt
cat /data2/ABC.txt四、端口映射
在启动容器的时候如果不指定对应的端口在容器外是无法通过网络来访问容器内的服务。端口映射机制将容器内的服务提供给外部网络访问实质上就是将宿主机的端口映射到容器中使得外部网络访问宿主机的端口便可访问容器内的服务。
docker run -d --name test10 -P nginx #随机映射端口从32768开始docker run -d --name test11 -p 4300:80 nginx #指定映射端口[rootlocalhost opt]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
acb59c1ebdb7 nginx /docker-entrypoint.… 5 seconds ago Up 4 seconds 0.0.0.0:4300-80/tcp, :::4300-80/tcp test11
d467201345f0 nginx /docker-entrypoint.… About a minute ago Up About a minute 0.0.0.0:32768-80/tcp, :::32768-80/tcp test10
16dd7fda47b5 centos:7 /bin/bash 20 minutes ago Up 20 minutes web2
07217b774610 centos:7 /bin/bash 23 minutes ago Up 23 minutes web1浏览器访问http://192.168.40.107:32768、http://192.168.40.107:4300五、容器互联使用centos镜像
容器互联是通过容器的名称在容器间建立一条专门的网络通信隧道。简单点说就是会在源容器和接收容器之间建立一条隧道接收容器可以看到源容器指定的信息。
#创建并运行源容器取名web1
docker run -itd -P --name web1 centos:7 /bin/bash #创建并运行接收容器取名web2使用--link选项指定连接容器以实现容器互联
docker run -itd -P --name web2 --link web1:web1 centos:7 /bin/bash #--link 容器名:连接的别名#进web2 容器 ping web1
docker exec -it web2 bash
ping web1总结
容器中股那里数据有数据卷和数据卷容器两种方式。 Docker可以使用映射容器端口到宿主机和容器互联机制来实现网络访问。