Docker安装及基本使用方法详细介绍_docker

Docker是一个用了一种新颖方式实现的超轻量虚拟机,在实现的原理和应用上还是和VM有巨大差别,专业的叫法是应用容器(Application Container)。(我个人还是喜欢称虚拟机)

Docker应用容器相对于 VM 有以下几个优点:

  • 启动速度快,容器通常在一秒内可以启动,而 VM 通常要更久
  • 资源利用率高,一台普通PC 可以跑上千个容器,你跑上千个 VM 试试
  • 性能开销小, VM 通常需要额外的 CPU 和内存来完成 OS 的功能,这一部分占据了额外的资源

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镜像使用容器生成新的镜像

进入之前创建的容器

  • # docker ps -a;查看有哪些容器
  • # docker start dad4e9070e2b启动id为dad4e9070e2b的容器(id可以简写为前几位)
  • # docker exec -it dad4e9070e2b /bin/bash进入到容器中
  • 里面可以直接使用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

原文链接:http://www.cnblogs.com/fansik/p/5526938.html

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索centos
, docker
, docker安装和使用
docker使用方法
docker 超详细、非常详细的docker、docker详细教程、docker基本命令、docker基本原理,以便于您获取更多的相关知识。

时间: 2024-12-20 19:41:01

Docker安装及基本使用方法详细介绍_docker的相关文章

Docker 数据卷,数据卷容器详细介绍_docker

Docker 数据卷,数据卷容器详细介绍 引子 有些时候,我们的服务运行时必不可少的会产生一些日志,或是我们需要把容器内的数据进行备份,甚至多个容器之间进行数据共享,这必然涉及容器的数据管理操作. 容器中管理数据主要有两种方式: 数据卷 数据卷容器 数据卷是一个可供容器使用的特殊目录,它绕过文件系统,可以提供很多有用的特性: - 数据卷可以在容器之间共享和重用 - 对数据卷的修改会立马生效 - 对数据卷的更新,不会影响镜像 - 卷会一直存在,直到没有容器使用 #(类似linux下的挂载(moun

docker 的java编译环境构建详细介绍_docker

用Dockerfile 构建一个java的编译环境,这里整理下实现步骤: 1.包括以下软件包 ubuntu jdk maven svn 2.jdk.maven 需要手动下载,下载之后分别为 jdk-8u51-linux-x64.gz apache-maven-3.3.3-bin.tar.gz 3.创建一个Dockerfile文件,包含以下内容 FROM ubuntu RUN apt-get update RUN apt-get -y install subversion ADD jdk-8u51

Android 使用jarsigner给apk签名的方法详细介绍_Android

Android 使用jarsigner给apk签名的方法详细介绍 工作中APP功能完成以后往往需要往应用商店提交一些内容,如商店中存在本公司别的人员提交的APP,往往需要进行认领,应用商店会让开发者下载空的APK,然后使用自己APP的签名文件进行签名,认证,这里简单说一下如何使用jarsigner命令进行签名. 该arsigner命令在jdk中可以找到, 简单说明一下具体参数: -verbose:签名命令标识符. -keystore:后面跟着的是你签名使用的密钥文件(keystore)的绝对路径

Android 使用jarsigner给apk签名的方法详细介绍

Android 使用jarsigner给apk签名的方法详细介绍 工作中APP功能完成以后往往需要往应用商店提交一些内容,如商店中存在本公司别的人员提交的APP,往往需要进行认领,应用商店会让开发者下载空的APK,然后使用自己APP的签名文件进行签名,认证,这里简单说一下如何使用jarsigner命令进行签名. 该arsigner命令在jdk中可以找到, 简单说明一下具体参数: -verbose:签名命令标识符. -keystore:后面跟着的是你签名使用的密钥文件(keystore)的绝对路径

Android中imageview.ScaleType使用方法详细介绍

Android中imageview.ScaleType使用方法详细介绍 ScaleType属性用以表示显示图片的方式,共有8种取值: ScaleType.CENTER:图片大小为原始大小,如果图片大小大于ImageView控件,则截取图片中间部分,若小于,则直接将图片居中显示. ScaleType.CENTER_CROP:将图片等比例缩放,让图像的短边与ImageView的边长度相同,即不能留有空白,缩放后截取中间部分进行显示. ScaleType.CENTER_INSIDE:将图片大小大于Im

docker中安装quagga详细介绍_docker

openstack中的虚拟路由器项目占用资源太多,需要将虚拟路由器迁移到Docker中,觉得首先要解决几个问题.      1.如何集成docker到openstack中,这个问题openstack官方给了三种方案,基于nova,heat,和单独的容器项目      2.集成docker后的容器管理编排,决定采用K8S      3.是否可以将quagga装到docker中,打包成quagga镜像以供后边二次开发自动配置程序. 今天尝试在docker中安装quagga,并自动开启zebra,ri

理解Docker(1):Docker安装和基础用法详细介绍_docker

Docker是一个用了一种新颖方式实现的超轻量虚拟机,在实现的原理和应用上还是和VM有巨大差别,专业的叫法是应用容器(Application Container).(我个人还是喜欢称虚拟机) 1. 安装 1.1 在 Ubuntu 14.04 上安装 Docker 前提要求: 内核版本必须是3.10或者以上 依次执行下面的步骤: sudo apt-get update sudo apt-get install apt-transport-https ca-certificates sudo apt

理解Docker(2):Docker 镜像详细介绍_docker

本系列文章将介绍Docker的有关知识: (1)Docker 安装及基本用法 (2)Docker 镜像 (3)Docker 容器的隔离性 - 使用 Linux namespace 隔离容器的运行环境 (4)Docker 容器的隔离性 - 使用 cgroups 限制容器使用的资源 (5)Docker 网络 对于每个软件,除了它自身的代码以外,它的运行还需要有一个运行环境和依赖.不管这个软件是象往常一样运行在物理机或者虚机之中,还是运行在现在的容器之中,这些都是不变的.在传统环境中,软件在运行之前也

SQL 多条件查询几种实现方法详细介绍_MsSql

SQL 多条件查询 以后我们做多条件查询,一种是排列结合,另一种是动态拼接SQL 如:我们要有两个条件,一个日期@addDate,一个是@name 第一种写法是 if (@addDate is not null) and (@name <> '') select * from table where addDate = @addDate and name = @name else if (@addDate is not null) and (@name ='') select * from t