Docker的安装以及使用

来源:互联网 发布:敏感肌肤 面膜 知乎 编辑:程序博客网 时间:2024/05/21 06:13

Docker是一个轻量级容器技术,类似于虚拟机技术(xen、kvm、vmware、virtual)。Docker是直接运行在当前操作系统(Linux)之上,而不是运行在虚拟机中,但是也实现了虚拟机技术的资源隔离,性能远远高于虚拟机技术。
Docker支持将软件编译成一个镜像,在这个镜像里做好对软件的各种配置,然后发布这个镜像,使用者可以运行这个镜像,运行中的镜像称之为容器,容器的启动非常快。
目前各大主流的云计算平台都支持Docker容器技术,包括阿里云、百度云平台(资源隔离通过Docker实现)等等。
这里的云计算平台一般是指PaaS(平台即服务),它是一个这样的云计算:平台提供了存储、数据库、网络、负载均衡、自动扩展等功能,你只需将你的程序交给云计算平台即可。你的程序可以是不用的编程语音开发的,而使用了Docker的云计算平台就是用Docker来实现以上功能及不同程序之间的隔离的。

1. Docker的安装

因为Docker的运行原理是基于Linux的,所以Docker只能在Linux下运行。这是指在真正的生产环境下,基于Docker的部署只能在Linux上,但是我们在开发测试的时候,Docker是可以在windows以及mac os x系统下运行的,运行的原理是启动一个VirtualBox虚拟机,在虚拟机里运行Docker。
1.Linxu下安装
CentOS安装命令:
sudo yum update
Sudo yum install docker
Ubuntu:
sudo apt-get update
sudo apt-get docker.io

2.windows下安装

Windows下运行Docker是通过这个Boot2Docker这个软件来实现的,这个软件包含了一个VirtualBox。在windows下的Docker只适合开发测试,不适合于生成环境。
Boot2Docker下载地址:https://github.com/boot2docker/windows-installer/releases/latest.
因在windows下运行的Docker是基于VirtualBox虚拟机软件,因为在安装前请确认电脑的BIOS设置中的CPU虚拟化技术支持已经开启。
安装很简单,安装过程中要安装“通用串行总线控制器”,安装完成后,重启电脑。
验证安装成功:
这里写图片描述

打开VirtualBox软件,如下图:

这里写图片描述

如果启动虚拟机的时候报以下错误:

这里写图片描述

解决办法:http://download.csdn.net/download/friendan/8199047

2.Docker的常用命令及参数

通常情况下,Docker的镜像都放置在Docker官网的Docker Hub上,地址是:https://registry.hub.docker.com

2.1 Docker镜像命令

(1).Docker镜像检索
除了可以在https://registry.hub.docker.com网址检索镜像外,还可以用以下命令检索:
docker search 镜像名
比如检索Redis,输入: docker search redis

(2).镜像下载
docker pull 镜像名

(3).镜像列表
查看本地镜像列表:docker images
这里写图片描述

其中REPOSITORY是镜像名;TAG是软件版本,latest为最新版;IMAGE ID是当前镜像的唯一标示;CREATED是当前镜像创建时间;VIRTUAL SIZE是当前镜像的大小

(4).删除镜像
删除指定的镜像:docker rmi image-id
删除所有镜像:docker rmi $(docker images -q)

2.2 Docker容器命令

(1).容器基本操作
最简单的运行镜像为容器的命令:docker run –name container -name -d image-name
运行一个容器只要通过Docker run命令即可实现,其中 –name参数是为容器的名称;
-d 表示detached,意味着执行完这句命令后控制台将不会被阻碍,可继续输入命令操作;最后的image-name是用使用哪个镜像来运行容器。比如运行一个redis容器:
docker –name test-redis -d redis
Docker会为我们的容器生成唯一的标示。

(2).容器列表 : docker ps

这里写图片描述

其中CONTAINER ID是在启动的时候生成的ID;IMAGE是该容器使用的镜像;COMMAND是容器启动时调用的命令;CREATED是容器创建时间;STATUS是当前容器的状态;PORTS是容器系统所使用的端口号,redis默认使用6379端口;NAMES是定义的容器的名称。

通过docker ps -a可查看运行和停止状态的容器

(3).停止容器:docker stop container -name/container -id
可以通过容器名称或者容器id停止容器,如:docker stop test-redis

(4).启动容器:docker start container-name/container-id
如:docker start test-redis

(5).端口映射
Docker容器中运行的软件所使用的端口,在本机和本机的局域网是不能访问的,所以我们需要将Docker容器中的端口映射到当前主机的端口上,这样我们在本机和本机所在的局域网就能访问该软件了。
Docker的端口映射是通过一个-p参数来实现的。比如,我们以reids为例,映射容器的6379端口到本机的6378端口:docker run -d -p 6378:6379 –name port-redis redis
目前在windows下运行的docker其实是运作在VirtualBox虚拟机中的,即我们当前的本机并不是我们当前的开发机器,而是VirtualBox虚拟机,所以我们还需要再做一次端口映射,将VirtualBox虚拟的端口映射到当前的开发机器。

(6).删除单个容器:docker rm container-id;删除所有容器:docker rm ${docker ps -a -q}

(7).容器日志:docker logs container-name/container-id

(8).登陆容器
运行中的容器其实是一个功能完备的Linux系统,所以我们可以像常规的系统一样登陆并访问容器。
我们可以使用下面的命令,登陆访问当前容器,登陆后我们可以在容器中进行常规的Linux系统操作命令,还可以使用exit命令退出登陆。
docker exec -it container-name/container-id bash