Docker安装

CentOS6上安装Docker

# yum -y install epel-release

# yum -y install docker-io

CentOS7上安装Docker

# yum -y install docker

启动Docker

# /etc/init.d/docker start

如果启动后无进程,日志中出现:

/usr/bin/docker: relocation error: /usr/bin/docker: symbol dm_task_get_info_with_deferred_remove, version Base not defined in file libdevmapper.so.1.02 with link time reference

解决办法:

# yum upgrade device-mapper-libs

Docker镜像管理

# docker pull centos //从docker.com获取centos镜像

# docker images //查看本地都有哪些镜像

# docker tag centos fansik //为centos镜像设置标签为fansik,再使用docker images查看会多出来一行,该行的image id和centos的一样

# docker search [image-name] //从docker仓库搜索docker镜像,后面是关键词

# docker run -t -i centos /bin/bash //用下载到的镜像开启容器,-i表示让容器的标准输入打开,-t表示分配一个伪终端,要把-i和-t放在镜像名字前面

当镜像发生修改后,我们可以把镜像提交重新生成一个新版本进行再本地

docker ps //查看运行的容器,加上-a选项可以查看没有运行的容器

docker rmi centos //用来删除指定得镜像,其中后面的参数可以是tag,如果是tag时,实际上删除的是该tag,只要改镜像还有其他tag,就不会删除该镜像,当后面的参数为镜像ID时,则会彻底删除整个镜像,连同所有标签一同删除

# docker tag centos centos:fansik创建一个REPOSITORY为centos,TAG为fansik的镜像

# docker rmi centos:fansik删除REPOSITORY为centos,TAG为fansik的镜像

Docker镜像使用容器生成新的镜像

  • 进入之前创建的容器
  1. # docker ps -a;查看有哪些容器
  2. # docker start dad4e9070e2b启动id为dad4e9070e2b的容器(id可以简写为前几位)
  3. # docker exec -it dad4e9070e2b /bin/bash进入到容器中
  4. 里面可以直接使用yum安装需要的软件
  • 运行docker run后,进入到该容器中,我们做一些变更,比如安装一些东西,然后针对这个容器进行创建的新的镜像
  • docker commit -m "change somth" -a "somebody info" container_id(通过docker ps -a获取id) 新镜像名字
  • 例如:docker commit -m "install httpd" -a "Aming" dad4e9070e2b aming/centos
  • 这个命令有点像svn的提交,-m加一些改动信息,-a指定作者相关信息  dad4e9070e2b为容器id,再后面为新镜像的名字

Docker基于本地模板导入创建镜像

  • 模块提取,可以直接在网上下载一个模块(可以复制链接然后直接wget)http://openvz.org/Download/templates/precreated
  • 导入镜像的命令是:# cat ubuntu-15.10-x86_64-minimal.tar.gz | docker import - ubuntu
  • 把现有镜像,导出为一个文件:# docker save -o fansik-httpd.tar httpd(仓库名或者镜像ID)
  • 用备份文件恢复本地镜像:# docker load --input fansik-httpd.tar或者:# docker load < fansik-httpd.tar
  • 把自己的镜像上传到dockerhub官方网站,但需要先注册用户docker push image_name

Docker安装及基本使用方法的更多相关文章

  1. Docker安装方法整理

    目录 安装准备 在线安装 离线安装 Raspbian便捷脚本安装 卸载 安装准备: 卸载旧版本 较旧版本的Docker被称为docker或docker-engine.如果已安装,请卸载它们: sudo ...

  2. Docker安装Redis及Warning解决方法

    虚拟机环境:VirtualBox 操作系统:CentOS 7 宿主机: Microsoft Windows 10 家庭中文版 Docker简介 Docker是一个轻量级容器技术.Docker直接运行在 ...

  3. 史上最全(全平台)docker安装方法!

    代码狂魔 32019.01.05 22:46:46字数 4,426阅读 9,949 image.png 2017年2月8日,docker更新到1.13.1(更新日志),此后又分为了docker CE( ...

  4. docker 安装

    Docker使用了一种叫AUFS的文件系统,这种文件系统可以让你一层一层地叠加修改你的文件,最底下的文件系统是只读的,如果需要修改文件,AUFS会增加一个可写的层(Layer),这样有很多好处,例如不 ...

  5. 【Howie玩docker】-docker安装

    windows忽略,小苹果木有,所以咱只看ubuntu和centOS的吧! 参考书<Docker技术入门与实战> Ubuntu 14.04安装Docker Ubuntu 14.04版本官方 ...

  6. web项目docker化的两种方法

    标题所讲的两种方法其实就是创建docker镜像的两种方法 第一种:启动镜像后进入容器中操作,将需要的软件或者项目移动到容器中,安装或者部署,然后退出即可 第二种:编写dockerfile,将需要的镜像 ...

  7. Docker安装和卸载

    一:卸载旧版本 老版本的Docker被称为docker或docker-engine.如果安装了这些,请卸载它们以及相关的依赖项. $ sudo yum remove docker \ docker-c ...

  8. Docker学习实践 - Docker安装MySql数据库

    Docker安装MySQL数据库 1.Ubuntu安装MySQL安装 (1)安装编译源码需要的包 sudo apt-get install make cmake gcc g++ bison libnc ...

  9. Docker安装rabbitmq

    前面的文章中我们的docker已经安装好了,我的最终目的是用docker来安装rabbitmq,所以本文我记录一下我用docker安装rabbitmq的过程: 1.下载镜像(下载management的 ...

随机推荐

  1. 网易云课堂 OCP

    数据库DBA任务: 管理数据库可用性 设计并创建数据库 管理物理结构 管理基于设计的存储 管理安全性 网络管理 备份与恢复 数据库调整与优化 关系型数据库(RDBMS) 多个表数据之间存在着关系 关系 ...

  2. 分享第一次使用ProcessOn心得

    最近朋友推荐了我一款在线作图工具ProcessOn,感受使用了几天感觉确实很不错,在这里给大家分享一下! ProcessOn应该算的上是第一款完全免费在线作图工具,之前用过国外有类似的,不过都是付费的 ...

  3. OpenCV之响应鼠标(二):函数cvSetMouseCallback()和其副程式onMouse()的使用(OpenCV2.4.5)

    每當滑鼠在視訊視窗介面點擊一下的時候,都會有固定三個動作 1.點擊(Click) 2.放開(Down)3.滑動(move) 因此,程式執行滑鼠在點擊的時候onMouse()都會連續跑三次,代表滑鼠在點 ...

  4. ognl表达式root中取值顺序

    不加#,先从栈顶取,如果没有(是没有这个属性而不是这个属性没有值),再往下取. 如果栈顶和非栈顶的对象拥有同一个属性名称,想直接取非栈顶的属性可以在ognl中用#root[i].属性名,可以取到属性的 ...

  5. javascript预解析和作用域

    JavaScript解析过程分为两个阶段: 一是:编译阶段.就是JavaScrip预解析阶段,在这个阶段JavaScript解析器将完成把JavaScript脚本代码转换到字节码; 二是:执行阶段.在 ...

  6. 创建MySQL数据库和表(一)

    一.启动MySQL服务 1.在Windows操作系统的“服务”中启动,找到你安装MySQL的起的服务名称,我本机服务名的是MySQL. 2.在命令行中用命令启动: A.启动MySQL服务:net st ...

  7. 找不到库文件地址,修改修改方法framework

    直接双击地址行修改

  8. AFNetworking vs ASIHTTPRequest vs MKNetworkKit

    AFNetworking vs ASIHTTPRequest vs MKNetworkKit

  9. R.java不能自动更新

    1. The type R is already defined. (很多时候我们在导入其他人的程序的时候,会遇到这个错误) 通常在project里有两个R.java,一个在src,一个在gen,通常 ...

  10. SVG 2D入门6 - 坐标与变换

    坐标系统 SVG存在两套坐标系统:视窗坐标系与用户坐标系.默认情况下,用户坐标系与视窗坐标系的点是一一对应的,都为原点在视窗的左上角,x轴水平向右,y轴竖直向下:如下图所示: SVG的视窗位置一般是由 ...