Docker简介与实践

2-05 1,867 views

Docker(http://www.docker.com/)是一个开源的应用容器引擎。Docker可以将应用程序及其依赖打包成镜像(Image),并在同一个服务器中启动多个容器(Container)共享操作系统内核,分别独立运行镜像(Image)。
1

安装

在OS X中安装Docker(OS X版本需要满足10.8及以上)。从“https://www.docker.com/products/docker-toolbox”下载DockerToolbox-1.10.0.pkg并运行安装:
1
安装步骤中的配置均采用默认选项,安装成功后,应用程序会新增以下两项,分别是Docker命令行工具和GUI工具:
1

运行镜像

运行“Docker Quickstart Terminal”打开命令行窗口。第一次使用时,Docker会首先执行一些初始化操作。在命令行中,可以执行Docker命令,例如:

docker run hello-world

该命令会执行以下操作:
1)在本地查找有无镜像“hello-world”;
2)若本地没有镜像“hello-world”,则从Docker Hub下载镜像;
3)启动容器加载镜像“hello-world”并运行。
以下是命令执行截图:
1
Docker还提供了一个示例镜像“whalesay”,该镜像基于Ubuntu,打包了应用程序“cowsay”,执行以下Docker命令,启动容器加载镜像“whalesay”并运行程序“cowsay”,“boo”是程序传入参数:

docker run docker/whalesay cowsay boo

命令执行后,会输出动物图像以及程序传入参数:
1

创建镜像

基于已有镜像,可以创建新的镜像,将应用程序及其依赖打包进新的镜像中。编写Dockerfile文件如下所示:

其中:
1)“FROM”语句说明基于镜像“whalesay”的最新版本创建新的镜像;
2)“RUN”语句说明在新镜像中安装应用程序”fortunes”;
3)“CMD”语句说明在启动容器加载镜像后执行“/usr/games/fortune -a | cowsay”,即通过程序“fortune”生成句子并通过管道传给程序“cowsay”展示。
在Dockerfile文件所在目录下执行以下Docker命令,根据Dockerfile文件创建新镜像“docker-whale”:

docker build -t docker-whale .

命令执行后,开始新镜像的创建过程,会依次输出各步信息:
1
1
创建镜像成功后,执行以下Docker命令,可以查看本地所有镜像:

docker images

其中已新增镜像“docker-whale”:
1
运行镜像“docker-whale”:

docker run docker-whale

1

推送镜像

镜像创建成功后,可以将镜像推送到Docker Hub。首先在Docker Hub创建账号并新建仓库“docker-whale”。执行以下Docker命令,将docker-whale重命名为“namespace/image”的格式,其中“namespace”是Docker Hub中的账号:

docker tag 8f35c689968c magicwt/docker-whale:lastes

1
执行以下Docker命令,登录Docker Hub:

docker login –username=magicwt –email=xxx@xxx.com

1
执行以下Docker命令,推送镜像:

docker push magicwt/docker-whale

1
访问“https://hub.docker.com/r/magicwt/docker-whale/”,Docker Hub上已有push记录:
1

标签:

Keepalived+SSDB双主高可用

SSDB是一个C/C++语言开发的高性能NoSQL数据库,支持KV,list,map(hash),zset(sorted set)等数据结构,用来替代或者与Redis配合存储十亿级别列表的数据...

阅读全文

Keepalived+Redis高可用主从虚IP经常漂移的问题

使用Keepalived+Redis搭建Redis高可用主从,其中Keepalived配置为每隔2秒执行脚本检查Redis服务是否可用: vrrp_script chk_r...

阅读全文

使用iptables限制redis端口的访问

redis默认端口是6379,使用iptables限制该端口访问。 设置规则链 1)新建规则链: iptables -N RH-Firewall-1-INPUT 2)在规则链中添加可以访问6379端口的规...

阅读全文