一、Docker 简介
Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源。Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。
二、Docker 的优点
-
1、简化程序:
Docker 让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,便可以实现虚拟化。Docker改变了虚拟化的方式,使开发者可以直接将自己的成果放入Docker中进行管理。方便快捷已经是 Docker的最大优势,过去需要用数天乃至数周的 任务,在Docker容器的处理下,只需要数秒就能完成。 -
2、避免选择恐惧症:
如果你有选择恐惧症,还是资深患者。Docker 帮你 打包你的纠结!比如 Docker 镜像;Docker 镜像中包含了运行环境和配置,所以 Docker 可以简化部署多种应用实例工作。比如 Web 应用、后台应用、数据库应用、大数据应用比如 Hadoop 集群、消息队列等等都可以打包成一个镜像部署。 -
3、节省开支:
一方面,云计算时代到来,使开发者不必为了追求效果而配置高额的硬件,Docker 改变了高性能必然高价格的思维定势。Docker 与云的结合,让云空间得到更充分的利用。不仅解决了硬件管理的问题,也改变了虚拟化的方式。
三、安装Docker
依赖安装方式
yum install -y checkpolicy audit-libs audit audit-libs-python python-IPy setools-libs libsemanage libsemanage-python libcgroup policycoreutils policycoreutils-python container-selinux libtool-ltdl libseccomp wget
1、下载docker
wget https://download.docker.com/linux/centos/7/x86_64/stable/Packages/docker-ce-17.12.0.ce-1.el7.centos.x86_64.rpm
2、安装docker
rpm -ivh docker-ce-17.12.0.ce-1.el7.centos.x86_64.rpm
3、启动docker
systemctl start docker
4、开机启动docker
systemctl enable docker
四、Docker使用
镜像是docker的三大核心概念之一
Docker运行容器前需要本地存在对应的镜像,如果镜像不存在本地,docker会尝试先从默认镜像仓库下载(默认使用docker Hub公共注册服务器中的仓库),用户也可以通过配置,使用自动以的镜像仓库。
1、获取镜像
比如获取Redis3.0.0的镜像
第一步,需要到远程的仓库进行搜索
docker search redis
第二步,拉取镜像
docker pull redis:3.0
2、通过docker images查看镜像:
docker images redis:3.0
如果想要快速拉取镜像,可以选择国内一些如:阿里云、163 等
3、删除镜像
删除镜像通过命令docker rmi 镜像id完成,需要注意的是,删除镜像前,要删除所有使用到该镜像的容器。
-f参数是强制删除,如果有正在运行的容器使用了该镜像,那么该镜像是不会真正的删除的。
如:docker rmi 687
容器是docker的另一个核心概念
容器是镜像的一个运行实例,所不同的是它有额外的可写文件层。
1、查看容器列表
通过docker ps命令查看正在运行的容器列表,需要查询所有的容器需要加-a参数:
查询正在运行的容器:docker ps
查询所有容器 docker ps -a
2、创建容器
通过docker create 命令可以创建一个容器,这仅仅是创建,并没有启动容器。
用法: docker create --help
运行后显示的重要点意思如下
-i 打开容器的标准输入
–name 指定容器的名称
-p 指定端口,如:docker create -p 16399:6379 redis:3.0,其中16379是主机端口,6379是容器对外端口,二者对应起来
-t, --tty Allocate a pseudo-TTY 让Docke分配一个伪端(pseudo-tt)并绑定到容器的标准输入上
实战创建容器:
docker create -p 16379:6379 --name redis redis:3.0
1、查看容器列表:
docker ps -a
2、启动容器:
docker start 34(34是代表指定容器的id,输入前几位即可)
3、创建并且运行容器
@ 通过docker create创建了容器,然后通过docker start来启动容器,其实这种做法并不常用。
更常用的是docker run命令,这个命令的意思是创建并且启动容器。
@用法:创建并且运行一个redis容器,它的端口是16380。
docker run -p 16380:6379 --name redis2 redis:3.0
@为了让容器在后台运行,需要添加参数 -d。
docker run -p 16380:6379 -d --name redis2 redis:3.0
3、删除容器
docker rm dc(dc是容器的id)
4、停止容器
docker stop xxx(容器名或容器id)
5、进入容器
有些时候我们需要进入容器内,做一些操作,比如,修改配置文件等。
进入容器命令。
用法:
docker exec -it redis /bin/bash
docker inspect redis_s | grep IPAddress 查看docker运行IP
docker exec -it redis redis-cli 客户端连接redis服务的命令