Docker入门

Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源。

Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。

容器是完全使用沙箱机制,相互之间不会有任何接口,更重要的是容器性能开销极低。

如果你对Docker感兴趣,那么你现在可以继续往下翻了。

640?wx_fmt=png

https://github.com/moby/moby

在使用Docker之前你需要有一点Linux对基础,关于Linux的基础我之前的文章有讲过,就不再细说了。

关于Docker的使用场景

一般是以下的场景:

1、web网站的自动化应用(打包,发布等)

2、自动化测试

3、持续继承,发布

4、在特定环境中部署后台应用,例如数据库等等

为什么使用Docker?

1、使程序更加简单化

开发者可以直接将自己的成果放入Docker中进行管理。

2、节省开支

性能好,价格低廉。

Docker 使用客户端-服务器 (C/S) 架构模式,使用远程API来管理和创建Docker容器。

Docker 容器通过 Docker 镜像来创建。

容器与镜像的关系类似于面向对象编程中的对象与类。

Docker面向对象
容器对象
镜像

640?wx_fmt=png

下面介绍Docker里面的几个概念

Images

用于创建 Docker 容器的模板。

Container

container是独立运行的一个或一组应用

Client

执行Docker命令的东西,可以是Docker的API,也可以是Docker客户端

用它来控制Docker。

Registry

这也就是仓库,用来保存Images

Docker Machine

一个简化Docker安装的命令行工具,通过一个简单的命令行即可在相应的平台上安装Docker

Docker的安装

小编使用的是阿里云的Ubuntu镜像,所以这里介绍的是Ubuntu环境的Docker安装。

1.获取Docker最新的安装包

$curl -sSL http://acs-public-mirror.oss-cn-hangzhou.aliyuncs.com/docker-engine/internet | sh -

2.安装所需要的包

sudo apt-get install linux-image-extra-$(uname -r) linux-image-extra-virtual


3.添加使用 HTTPS 传输的软件包以及 CA 证书

sudo apt-get update

sudo apt-get install apt-transport-https ca-certificates


4.添加GPG密钥

sudo apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D


5.添加软件源

echo "deb https://apt.dockerproject.org/repo ubuntu-xenial main" | sudo tee /etc/apt/sources.list.d/docker.list


6.添加成功后更新软件包缓存

sudo apt-get update


7.安装docker

sudo apt-get install docker-engine

8.启动Docker服务

$sudo systemctl enable docker

$sudo systemctl start docker

9.运行Docker

$ docker run HelloWorld

如何使用Docker

640?wx_fmt=png

输入docker可以查看所有的命令选项。

如果想知道某条命令的使用方法可以输入 docker xxx --help

例如我想看build的用方法:

docker build --help

640?wx_fmt=png

运行一个web应用

将应用拉过来

$docker pull training/webapp

运行

$docker run -P training/webapp python app.py

参数说明:

-p,将container中使用的端口映射到主机上

还可以加其他参数,例如 -d,让container在后台运行

-l,将目标数据设置在container上

如果需要检查web应用程序,可以使用 docker inspect 来查看 Docker 的底层信息

停止web程序的container:

$docker stop xxxxx

启动web程序的container:

$docker start xxxxx

删除这个不需要的container:

$ docker rm xxxxx



关于Docker中的Images:

可以使用docker images来秀出主机上的images(镜像)。

640?wx_fmt=png

REPOSITORY:表示镜像的仓库源

TAG:镜像的标签

IMAGE ID:镜像ID

CREATED:镜像创建时间

SIZE:镜像大小

同一仓库源可以有多个 TAG,代表这个仓库源的不同个版本,如ubuntu仓库源里,有15.10、14.04等多个不同的版本,我们使用 REPOSITORY:TAG 来定义不同的镜像。

如果需要创建一个心动镜像可以通过pull命令来拉一个新镜像:

docker pull ubuntu:13.10

docker pull httpd


我们还可以使用build指令从零开始创建一个新的镜像

但是在执行build指令之前,我们需要创建一个Dockerfile文件,在这个文件里面是一些配置,告诉Docker要创建怎样的一个镜像。

640?wx_fmt=png

每一个指令都会在镜像上创建一个新的层,每一个指令的前缀都必须是大写的。

第一条FROM,指定使用哪个镜像源

RUN 指令告诉docker 在镜像内执行命令,安装了什么

然后,我们使用 Dockerfile 文件,通过 docker build 命令来构建一个镜像。

初步的内容就到这里了

640?wx_fmt=gif

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值