如何在CentOS或Fedora运行Docker容器

Tags: linux centos fedora docker how-to

最近Docker已经成为在云环境中部署应用程序的一项关键技术。相较于传统的硬件虚拟化,Docker-based容器沙箱为应用程序部署环境提供了许多优势,如轻便隔离、部署的便携性、易维护性等,现在Red Hat转向开源社区努力简化Docker容器的管理和部署。 

不仅仅只是应用与云环境,Docker对最终用户也非常有用,尤其是当你想要在一个特定的Linux环境下测试软件。您可以轻松地为目标环境启动Docker容器,安装和测试软件,一旦你完成就可以扔掉容器。从开始到结束的整个过程是相当搞笑的,并且你能避免搞乱你自己的系统。 

在本教程中,我将介绍如何在CentOS或Fedora中创建和管理Docker容器。需要注意的是Docker目前仅支持64位操作系统。如果你想尝试在Ubuntu上使用Docker,请参考本教程

在CentOS和Fedora中安装Docker

要在CentOS安装Docker,首先启用EPEL软件库,然后使用yum命令:

$ sudo yum install docker-io
$ sudo service docker start
$ sudo chkconfig docker on

在Fedora安装Docker,可以使用下面的命令:

$ sudo yum install docker-io
$ sudo systemctl start docker.service
$ sudo systemctl enable docker.service

在CentOS和Fedora的安装Docker后,你需要将自己添加到docker组这样你能够以非root用户运行Docker。使用此命令为:

$ sudo usermod -a -G docker $USER

注销,然后重新登录用来激活刚才对用户组的调整。 

这时,你应该能够以非root用户运行Docker的命令了。

Docker的基本用法

要创建新的Docker容器,你需要决定容器使用的Docker image。您可以搜索Docker官方的image索引。Docker索引包括由Docker管理的Linux基础image(例如,Ubuntu、Debian、Fedora、CentOS),以及用户提供的自定义image(例如,MySQL、Redis、WordPress)。 

例如,要在交互模式下启动Ubuntu容器,运行以下命令。最后一个参数"/bin/bash"是当容器启动后执行的命令。

$ docker run -i -t ubuntu /bin/bash

当您第一次运行上面的命令,Docker可能会从网络上下载可用的Ubuntu docker image(s),然后利用image引导Docker容器。 Ubuntu容器瞬间启动了,你会看到容器内的控制台提示符。您可以在Docker的沙盒容器内访问一个完全的Ubuntu操作系统。

14087191656_9d689052d1_z.jpg

如果你键入"exit"命令,你会从容器中退出,容器也会停止。 

如果想列出所有容器(包括停的),请运行:

$ docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED              STATUS              PORTS               NAMES
6a08a0b2bb4c        ubuntu:14.04        /bin/bash           About a minute ago   Exit 0                                  cocky_ritchie

以守护进程方式重启启动已停止的容器:

$ docker start [container-id]

删除已停止的容器

$ docker rm [container-id]

连接到后台运行的容器,以便查看或与容器交互:

$ docker attach [container-id]

14107253372_f8ca8277e5_z.jpg

您可以随意定制正在运行的容器(例如,安装新软件)。如果您想保存在当前容器所做的更改,首先在提示符下键入"exit"退出容器的交互模式。然后通过使用下面的命令保存更改后的image到不通的文件名:

$ docker commit [container-id] [new-image-name]

注: 可以使用docker ps -a取得容器的ID(container-id)

13923683689_b1d90634c7_z.jpg

一旦你创建了这样一个全新的image,你可以用这个image启动一个新的容器。 

您也可以下载任何公开的容器image(例如,Ubuntu、bowery/MySQL),并将它们存储在本地,如下所示。

$ docker pull [image name]

要查看所有本地下载/储存的容器image:

$ docker images

你可以选择一个特定的image来引导容器:

$ docker run -i -t [image-id] /bin/bash

14110336465_29dd49cb5d_z.jpg

删除本地保存的容器image

$ docker rmi [image-id]

14110710594_4c265e3e1c_z.jpg

本文链接:http://www.4byte.cn/learning/120029/ru-he-zai-centos-huo-fedora-yun-xing-docker-rong-qi.html