docker介绍、安装及使用

一、介绍

1、Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。几乎没有性能开销,可以很容易地在机器和数据中心中运行。

2、Docker的特性:

(1)统一的打包格式
Docker定义了一种统一标准的打包格式,可将应用及其依赖打包到单个的镜像。

(2)交互式Shell
Docker可以分配一个虚拟终端并关联到任何容器的标准输入上,例如运行一个一次性交互shell。

(3)版本控制
Docker的版本控制类似于Git,Docker可以跟踪一个容器的版本信息,查看版本差异,提交或回滚版本等。

(4)组件复用
Docker容器以组件的方式搭建,可以利用一个基础镜像构建更多的应用容器。

(5)共享镜像
Docker用于一个公共的注册服务器,无数的开发者上传了他们的镜像,这些镜像包罗万象,基本上各种应用领域、应用场景都可以找到相应的镜像。

3、Docker包含三大核心组件:镜像、容器和库。

(1)镜像
镜像是一个只读的静态模板,保存了容器需要的环境和应用的执行代码。镜像采用分层机制,每个镜像都是只读的,但可以将写数据的层通过联合文件系统附加到原有的镜像上。这样镜像就很易于存储、传输和更新。

(2)容器
容器是一个运行时环境,是镜像的运行状态,是镜像执行的动态表现。容器提供了应用的统一的运行方式:创建、开始、停止、重启、销毁。

(3)库
Docker采用注册服务器来存储和共享用户的镜像,库是某个特定用户存储镜像的目录。通常一个用户可以建立多个库来保存自己的镜像。库是注册服务器的一部分,注册服务器分公有的和私有的,公有的如Docker官方提供的Docker Hub。

 

4、Docker容器使用AUFS作为文件系统,有如下优势:
(1)节省存储空间
多个容器可以共享同一个基础镜像存储。
(2)快速部署
如果部署多个来自同一个基础镜像的容器时,可以避免多次复制操作。
(3)升级方便
升级一个基础镜像即可影响到所有基于它的容器。
(4)增量修改
可以在不改变基础镜像的同时修改其目录的文件,所有的更高都发生在最上层的写操作层,增加了基础镜像的可共享内容。

二、CentOS 7上安装Docker 1.8

1、不管你的系统版本是多少,Docker都要求64位。并且当CentOS7时你的内核必须不小于3.10。
检查当前内核版本:

# uname -r
3.10 . 0 - 229 .el7.x86_64

2、安装

有两种方式可安装Docker Engine。脚本安装和yum安装。下面介绍下脚本安装:

(1)使用root权限登陆系统。
(2)更新系统包到最新。

# yum -y update

(3)执行Docker安装脚本,这个脚本会添加docker.repo 配置并安装Docker。

# curl -sSL https: //get.docker.com/ | sh
# yum install -y docker-selinux

(4)启动Docker

# systemctl start docker.service

(5)验证docker已经正常安装

# docker run hello-world

 

三、使用

1、Docker的好处就是提供了一个类似github的Image仓库管理,你可以非常方便pull别人的Image下来运行,例如,我们可以下载一个ubuntu Image:

docker pull ubuntu: 13.10

这里的13.10是一个Tag,类似于git的tag,这里的tag可以为你制定一个ubuntu的版本。

2、下载完成后,执行docker images命令可以列出你已经下载或者自己构建的image:

[root @zy -test- 2  ~]# docker images
REPOSITORY             TAG                 IMAGE ID            CREATED             SIZE
zy167761/centos        zy                  4c83c3c94046         10  days ago          733.1  MB
zy167761/hello-world   zy                  690ed74de00f         5  months ago         960  B
ubuntu                  13.10                7f020f7bf345         21  months ago        184.5  MB

3、运行一个Container,命令很简单,例如我们想运行一个执行Shell终端的Container:

[root @zy -test- 2  ~]# docker run --name ubuntu_test -it ubuntu: 13.10  /bin/bash
root @27892d0208cc :/# ls
bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
root @27892d0208cc :/#

四:命令

# 下载ubuntu  12.04 镜像
sudo docker pull ubuntu: 12.04
   
# 创建一个容器运行bash应用
sudo docker run -t -i ubuntu: 12.04  /bin/bash
# 其中,-t 选项让Docker分配一个伪终端(pseudo-tty)并绑定到容器的标准输入上, -i 则让容器的标准输入保持打开。
   
# -d:以daemon方式运行容器
sudo docker run -d ubuntu: 14.04  /bin/sh -c  "while true; do echo hello world; sleep 1; done"
   
# 显示本地已有的镜像
sudo docker images
   
# 修改image名字,从docker.sankuai.com/ubuntu: 12.04 改为ubuntu: 12.04
sudo docker tag docker.sankuai.com/ubuntu: 12.04  ubuntu: 12.04
   
# 修改image,并提交
sudo docker commit -m  "Added json gem"  -a  "Docker Newbee"  0b2616b0e5a8 ouruser/sinatra:v2
   
# 镜像上传到仓库中来共享
sudo docker push ouruser/sinatra
   
# 保存镜像到本地
sudo docker save -o ubuntu_14. 04 .tar ubuntu: 14.04
   
# 从本地文件导入镜像库
sudo docker load --input ubuntu_14. 04 .tar
   
# 查看运行状态的容器
sudo docker ps
 
# 查看终止状态的容器
sudo docker ps -a
   
# 启动/停止/重启容器
sudo docker start/stop/restart NAMES
   
# 进入容器
sudo docker attach NAMES
 
# 在容器内运行交互命令
sudo docker exec -t -i daemon_dave /bin/bashVersion

比较详细的docker命令 http://www.simapple.com/docker-commandline

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值