docker仓库及数据卷
docker help rmi, 删除本地镜像
docker run -it --name=centos centos:latest /bin/sh --name的选项可以方便我们以后引用此image,直接使用此处定义的名字
就可以了
docker stop 停止一个容器,建议用此方法而不用docker kill
docker logs centos centos是给image起起的名字,能够输出过去image中的输出信息
docker start 启动一个已经停止的容器
docker help attach, Attach to a running container
创建一个本地仓库:yum install docker-registry
service docker-registry start 启动服务,ss -tnl查看5000端口是否启动
docker tag 2b8fd9751c4c 192.168.204.135:5000/busybox:1 tag命令可以使用docker help tag获取使用帮助,2b8fd9751c4c
为image ID,192.168.204.135:5000/busybox指定仓库和连接端口,1指定TAG
docker push 192.168.204.135:5000/busybox:1上传image到仓库
此时会报错:unable to ping registry endpoint https://192.168.204.135:5000/v0/
vim /etc/sysconfig/docker 修改docker配置文件:
ADD_REGISTRY='--add-registry 192.168.204.135:5000'
INSECURE_REGISTRY='--insecure-registry 192.168.204.135:5000'
此时就可以上传成功了
Docker的数据卷:Data Volume
数据卷是供一个或多个容器使用的文件或目录,有多种特性:
可以共享于多个容器之间
对数据卷的修改会立即生效
对数据卷的更新与镜像无关
数据卷会一直存在
使用数据卷的方式:
(1) -v /MOUNT_POINT
默认映射的宿主机路径: /var/lib/docker/volumes/
使用-v标记来创建一个数据卷并挂载到容器里
(2) -v /HOST/DIR:/CONTAINER/DIR
/HOST/DIR: 宿主机路径
/CONTAINER/DIR :容器上的路径
加载主机的目录到容器的目录,主机的目录必须是绝对路径,如果目录不存在,docker会自动为你创建它
例如:docker run -it -v ~/datavolume:/data centos /bin/bash
此后你在容器/data目录下的修改会保存到宿主机的/datavolume目录下
docker run -it --rm -v ~/datavolume:/data:ro centos:latest /bin/bash
:ro的作用为创建的数据卷在容器中只读
(3) 在Dockerfile中使用VOLUME指令定义
数据卷容器:命名的容器挂载数据卷,其它容器通过挂载这个容器实现数据共享,挂载数据卷的容器就叫做数据卷容器
使用方法
(1):docker run -it --name centos1 -v ~/datavolume:/data centos:latest /bin/bash 创建一个命名的容器,在/data下创建一些文件,退出容器
(2)docker run -it --volumes-from centos1 centos /bin/bash 查看/data目录,还可以启动多个容器,来共享卷,即使删除了数据
卷容器,关在数据卷的其他容器仍然可以访问挂载数据卷的目录,并修改
在容器之间共享卷:
--volumes-from=[] Mount volumes from the specified container(s)
后跟容器名
删除卷:docker rm -v container_name 删除容器的同时删除其卷(如果还有其他容器在使用此卷,这卷不会被删除)
数据卷的备份:
docker run --volumes-from centos -v /tmp:/tmp --name centos1 centos tar cvf /tmp/centos.tar /data
第一个centos是一个正在运行的容器的名字,第一个/tmp表示将centos中的数据卷备份到宿主机的/tmp目录下,第二个/tmp表示同时将数
据卷备份到centos1这个容器的/tmp目录下,tar cvf /tmp/centos.tar 表示备份到宿主机下的/tmp并以centos.tar这个格式存放,/data指定
centos中存放数据卷的目录,可以同时指定多个目录
数据卷的恢复:
先创建一个带有数据卷的容器:docker run -it --name centos1 -v /tmp:/tmp centos /bin/bash
启动另一个容器并恢复docker run -it --volumes-from centos1 -v /data/volume:/data centos tar xvf /tmp/centos.tar;/bin/bash
/data/volume指的是恢复到宿主机的目录,/data是容器的目录,tar xvf /tmp/centos.tar指的是centos1上备份数据卷的目录
注意docker数据卷本质上是存在于宿主机的文件系统中,可以是目录也可以使文件
使用brctl show 命令可以看见docker创建的桥,一般叫docker0
最新文章
- Log4net入门使用
- 说说Thread.Sleep(0)的那些奇怪的事
- JVM 性能调优实战之:一次系统性能瓶颈的寻找过程
- 安装Windows操作系统的驱动程序(驱动精灵版) - 进阶者系列 - 学习者系列文章
- JQ封装图片预加载插件
- Git学习记录--git仓库
- 解决VS2017编译后的EXE文件不能在其他电脑上运行的问题
- Alienware R8外星人台式机安装双系统(WIN10+Ubuntu)的总结
- 第十四节,卷积神经网络之经典网络Inception(四)
- MSSQL一种取代游标的方案
- 对象&;内置对象&; 对象构造 &;JSON&;__proto__和prototype
- laravel处理菜单保持的方法:
- Uni2D 入门 -- Asset Table
- kbmmw 5.06.20 发布
- 第05章:MongoDB-CRUD操作--数据库
- 常见浏览器兼容性问题与解决方案css篇
- java安装教程及环境配置
- Kafka—性能逆天的存在
- SpringBoot配置成Liunx服务
- ring0 根据EThread遍历线程
热门文章
- apache占用内存高解决办法
- 使用Office 365前,企业必须要知道的10件事
- python学习 02 元组
- Redis(Windows安装方法与Java调用实例 &; 配置文件参数说明 &; Java使用Redis所用Jar包 &; Redis与Memcached区别 &; redis-cli.exe命令及示例)
- 请求SQL数据是存在<;null>;,的解决方法
- 在Linux中显示日历(cal)
- 在UIWebView中设置cookie
- IOS发送带附件的邮件
- swagger api 文档框架
- 【BZOJ4930】棋盘 拆边费用流