一、介绍
这里引用官方的解释,Docker 容器是一个开源的应用容器引擎。让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
我的理解: 它是一个打包应用,存储应用,发布应用的工具,只是这里的应用包括你的程序和程序运行的环境
优点: 不依赖平台,语言,框架,甚至是系统
例子
我有一个python+django+apache+mysql的服务系统,好吧以往我们这样:
1. 现将python环境部好。。。
2. 安装需要的python包。。。
3. 安装mysql,部署好。。。
4. 安装apache服务部署好。。。
5. 。。。。
现在有了docker你需要换种方式打开:
* 在DockerHub搜索相关的镜像。python+apache镜像
* 搜索mysql镜像,将数据库与程序镜像分开的目的是为了以后其他应用也是该数据库
* docker pull 镜像名 ,拉去镜像到本地
* 根据镜像启动一个容器即可运行应用
二、镜像、容器、仓库
镜像(静态)
Docker中的镜像(image),类似虚拟机中的镜像一样。是创建容器的基础,可以直接下载或者使用Dockerfile自己构建更新;它包含了一个基本的操作系统和应用程序的运行环境。
容器(动态)
Docker中的容器(container),基于镜像创建的应用运行实例,类似于一个沙盒,隔离了不同的应用,可以镜像启动,停止、删除等操作。
仓库
Docker中的仓库类似于github,用来存储镜像用的,我们可以将本地自己创建的镜像提交到公开或私人仓库中,使用时直接拉取使用。
三、Docker及docker-compose的安装
安装docker
配置阿里镜像源
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
安装docker
yum install docker
启动docker服务
service docker start
- 设置docker开机启
systemctl enable docker
安装docker-compose
首先检测centos7中有没有安装过python-pip包,命令如下:
pip -V
没有python-pip包就执行如下命令安装epel-release依赖:
yum -y install epel-release
执行成功后,安装python-pip:
yum -y install python-pip
执行成功后,升级pip组件
一般情况
pip install --upgrade pip
不行时
pip install --upgrade pip --trusted-host pypi.python.org
- 安装docket-compose
pip install docker-compose
- 关闭selinux
- 关闭
vi /etc/selinux/config
SELINUX=disabled
- 重启
reboot
- 验证
/usr/sbin/sestatus
- 关闭
四、Docker的基本命令
- 从仓库中拉取一个镜像
# docker pull image_name
- 基于一个镜像创建一个容器
# docker create --name your-container-name image-name
- 基于一个镜像创建并运行一个容器
# docker run --name your-container-name image-name
- 进入一个容器的内部
# docker exec -it your-container-name bash
- 停止并删除一个容器
# docker stop your-container-name
# docker rm your-container-name
- 删除一个镜像(Docker中不存在基于此镜像的容器时方可删除)
# docker rmi image-name