花都建网站公司,互联网运营是什么工作,云南文山特产,西部数码网站管理助手serv-u默认密码1、容器数据卷
什么是容器数据卷#xff1f;
就是当容器内存在了mysql#xff0c;在里面书写了数据#xff0c;如果容器删除了#xff0c;那么数据也就没有了#xff0c;通过容器数据卷的技术#xff0c;可以让容器内的数据持久化到Linux服务器上
操作
#docker run -…1、容器数据卷
什么是容器数据卷
就是当容器内存在了mysql在里面书写了数据如果容器删除了那么数据也就没有了通过容器数据卷的技术可以让容器内的数据持久化到Linux服务器上
操作
#docker run -it -v 主机内地址:容器内地址 容器id#举例
#挂载
[rootiZf8zhsqf64x47n1tpdy6oZ ~]# docker run -it -v /home/test:/home centos /bin/bash
[rootcc94b6584256 /]# docker inspect cc94b6584256#查看容器元数据
[rootiZf8zhsqf64x47n1tpdy6oZ ~]# docker inspect cc94b6584256Mounts: [{Type: bind,Source: /home/test,Destination: /home,Mode: ,RW: true,Propagation: rprivate}],
#以上便是绑定成功即当操作/home里的文件时/home/test也会发生变化两者是双向绑定的即使容器关闭了也是绑定的只要一方操作另一方也会变#在容器内操作
[rootcc94b6584256 /]# cd /home
[rootcc94b6584256 home]# ls
[rootcc94b6584256 home]# touch test.java
[rootcc94b6584256 home]# ls
test.java #主机内能看到新创建的文件
[rootiZf8zhsqf64x47n1tpdy6oZ ~]# cd /home
[rootiZf8zhsqf64x47n1tpdy6oZ home]# ls
test
[rootiZf8zhsqf64x47n1tpdy6oZ home]# cd test
[rootiZf8zhsqf64x47n1tpdy6oZ test]# ls
test.java实战Mysql同步数据
docker run -d -p 3310:3306 -v /home/mysql/conf:/etc/mysql/conf.d -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD123456 mysql:8.02、匿名挂载和具名挂载
docker run -d -v 容器内地址 容器名 匿名挂载
docker run -d -v 挂载名一般不以/开头:容器内地址 容器名 具名挂载
docker run -d -v 主机地址一般以/开头:容器内地址 容器名 正常挂载#匿名挂载
[rootiZf8zhsqf64x47n1tpdy6oZ data]# docker run -d -v /etc/nginx nginx
d7a0eaa6d6b8ee7cd209e8e0a47aa70a6e81e72bcea3bb3ef0cce625ee71606c
#剧名挂载
[rootiZf8zhsqf64x47n1tpdy6oZ data]# docker run -d -v packet:/etc/nginx nginx
3c66cf3adfb285362b605868e9eca5501f3bc36480ba8332f37eb5380d28df2c
#正常挂载
[rootiZf8zhsqf64x47n1tpdy6oZ data]# docker run -d -v /home/nginx:/etc/nginx nginx
24821ad29fd67e5f10abe754517960710d303a586131f6113ae062f1f5a9136c查询数据卷
docker volume
[rootiZf8zhsqf64x47n1tpdy6oZ data]# docker volume --help
Commands:create Create a volumeinspect Display detailed information on one or more volumesls List volumesprune Remove all unused volumesrm Remove one or more volumes#查询全部挂载的内容这个就是我刚刚挂载的内容
[rootiZf8zhsqf64x47n1tpdy6oZ data]# docker volume ls
DRIVER VOLUME NAME
local 9c0b26cd142c9d0f1ee318e783fad711c1b03b6b7d73c86e07cc4a0601cf7c20
local packet
local portainer_data#查询出详细的信息
[rootiZf8zhsqf64x47n1tpdy6oZ data]# docker volume inspect packet
[{Driver: local,Labels: null,Mountpoint: /var/lib/docker/volumes/packet/_data, Name: packet,Options: {},Scope: local}
]
**Mountpoint: /var/lib/docker/volumes/packet/_data,** 要是没有指定地址那么就挂载这个地址 拓展—ro rw 的添加 # docker run -d -v /home/nginx:/etc/nginx:ro nginx 只读
# docker run -d -v /home/nginx:/etc/nginx:rw nginx 可读写只读只能通过主机操作容器内部无法操作
3、初始Dockerfile
#创建一个Dockerfile文件文件名就为Dockerfile然后编辑成已下内容#在home目录下创建一个目录(dockerfile-test)
[rootiZf8zhsqf64x47n1tpdy6oZ home]# cd dockerfile-test/
[rootiZf8zhsqf64x47n1tpdy6oZ dockerfile-test]# ls#在该目录下创建Dockerfile文件没有后缀
[rootiZf8zhsqf64x47n1tpdy6oZ dockerfile-test]# vim Dockerfile
#编辑文件的内容
[rootiZf8zhsqf64x47n1tpdy6oZ dockerfile-test]# cat Dockerfile
FROM centos
VOLUME[volume01,volume02]
CMD echo ----end----
CMD /bin/bash
4、数据卷容器
实现三个数据库数据共享
#查看正在运行的docker 容器
[rootiZf8zhsqf64x47n1tpdy6oZ dockerfile-test]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f56f4cd48f94 mysql:5.7 docker-entrypoint... 44 hours ago Up 44 hours 33060/tcp, 0.0.0.0:3310-3306/tcp thirsty_joliot#查看镜像
[rootiZf8zhsqf64x47n1tpdy6oZ dockerfile-test]# docker images -a
REPOSITORY TAG IMAGE ID CREATED SIZE
tomcat01 1.0 0c109a855b95 2 days ago 684 MB
docker.io/portainer/portainer latest 5f11582196a4 15 months ago 287 MB
docker.io/nginx latest 605c77e624dd 2 years ago 141 MB
docker.io/tomcat 9.0 b8e65a4d736d 2 years ago 680 MB
docker.io/tomcat latest fb5657adc892 2 years ago 680 MB
docker.io/mysql 5.7 c20987f18b13 2 years ago 448 MB
docker.io/centos latest 5d0da3dc9764 2 years ago 231 MB
docker.io/elasticsearch 7.6.2 f29a1ee41030 3 years ago 791 MB#启动新的容器挂载之前的mysql
[rootiZf8zhsqf64x47n1tpdy6oZ dockerfile-test]# docker run -d --name mysql02 --volumes-from f56f4cd48f94 c20987f18b13-d 后台运行
--name 取个名字
--volumes-form 容器名|容器id 镜像名|镜像id 与他进行挂载
**问题**想要实现多个数据库之间的挂载但是却出现了一点问题数据库启动一个还是可以的但是启动多了后就会自动停止
总结挂载后的文件在父容器删除后挂载前更改的信息是依然存在的是一个复制的方式