docker数据管理和容器相连

(1)数据管理 数据管理类似于mount管理,特性: 1.数据卷可以在容器之间共享和重用,容器间传递数据变得高效简单 2.对数据卷的数据修改会立马生效,无论是本地还是容器操作 3.对数据卷的更新不会影响镜像images,解耦了应用和数据 4.卷会一直存在,直到没有容器使用,可以安全的卸载

[root@k8s ~]# docker run -it -d --name ubuntu -v /root/test:/opt/test:ro ubuntu:latest ro和rw可以定义目录是只读还是读写。

用法: 可以单独建立一个数据卷的容器,本容器为data卷,然后让别的容器挂载本数据容器。 步骤: 1.[root@k8s ~]# docker run -it -d --name database -v /database ubuntu:latest 2.[root@k8s ~]# docker run -it --volumes-from database --name data1 ubuntu:latest root@a3b04a75556e:/# ls bin boot database dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var

通过--volumes-from参数可以将数据容器挂载到其余的所有容器上。

利用数据卷进行数据迁移 数据卷也可以进行备份和恢复,数据卷的备份与恢复类似与文件的拷贝。 备份: [root@k8s ~]# docker run --volumes-from database -v $(pwd):/backup --name worker ubuntu:latest tar cvzf /backup/backer.tar.gz /database tar: Removing leading `/' from member names /database/ /database/1 /database/2 /database/3 /database/4 /database/5 /database/6 /database/7 [root@k8s ~]# ls backer.tar.gz scripts test test.tar.gz utest.tar.gz

还原: 可以创建一个容器,并且挂载存在备份的目录。然后进入容器解压就ok了。

(2)容器相连 映射容器应用的服务端口到本地宿主主机,互联机制实现多个容器通过容器名访问。

端口映射: -P参数会随机映射一个49000~49900的端口到内部容器开放的网络端口 -p可以指定映射的端口,格式为: 1) ip:hostport:containerport 映射到指定主机的指定端口到容器端口 2) ip::containerport 映射指定主机的任意端口(随机分配)到容器端口 3) hostport:containerport 映射本地的某个端口到容器端口

还可以使用udp来标记端口类型,格式为映射规则后添加“/udp”。 如:docker run -it -d --name test2 -p 800:800/udp test:latest

小命令:docker inspect 容器ID 可以查询容器的详细信息。

容器互联: 使用—link 命令可以实现,格式如下: docker run -d -p 80:80 —name web —link db:db nginx:laster

About
高洋,IT从业人员, 1989年4月10日, 邮箱:gy59821@163.com, 现就职于北京玩蟹科技有限公司.