Docker
前言
Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。
Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。
Docker 从 17.03 版本之后分为 CE(Community Edition: 社区版) 和 EE(Enterprise Edition: 企业版),我们用社区版就可以了。
Docker是什么?
- 是一种轻量级的 “虚拟机”
- 在Linux容器里运行应用的开源工具
Docker的应用场景
- Web 应用的自动化打包和发布。
- 自动化测试和持续集成、发布。
- 在服务型环境中部署和调整数据库或其他的后台应用。
- 从头编译或者扩展现有的 OpenShift 或 Cloud Foundry 平台来搭建自己的 PaaS 环境。
Docker核心概念
镜像
- 一个面向Docker容器引擎的只读模板
容器
- 从镜像创建的运行实例
仓库
- 集中保存镜像的地方
Docker的优点
Docker 是一个用于开发,交付和运行应用程序的开放平台。Docker 使您能够将应用程序与基础架构分开,从而可以快速交付软件。借助 Docker,您可以与管理应用程序相同的方式来管理基础架构。通过利用 Docker 的方法来快速交付,测试和部署代码,您可以大大减少编写代码和在生产环境中运行代码之间的延迟
Docker安装步骤
卸载旧的版本
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
安装依赖包
yum install -y yum-utils device-mapper-persistent-data lvm2
注解
yum-utils 提供了 yum-config-manager
device-mapper 存储驱动程序需要 device-mapper-persistent-data 和 lvm2
device-mapper 是Linux2.6内核中支持逻辑卷管理的通用设备映射机制
它为实现用于存储资源管理的块设备驱动提供了一个高度模块化的内核架构
设置镜像的仓库
方式一:(国外的,比较慢)
yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
方式一二:(阿里云的,推荐)
yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
安装docker
yum install docker-ce docker-ce-cli containerd.io
- docker-ce 社区版
- docker-ee 企业版
遇到的问题:
错误:软件包:containerd.io-1.3.7-3.1.el7.x86_64 (docker-ce-stable)
需要:container-selinux >= 2:2.74
错误:软件包:3:docker-ce-19.03.13-3.el7.x86_64 (docker-ce-stable)
需要:container-selinux >= 2:2.74
解决方法(一):
yum install --setopt=obsoletes=0 \
docker-ce-17.03.2.ce-1.el7.centos.x86_64 \
docker-ce-selinux-17.03.2.ce-1.el7.centos.noarch # on a new system with yum repo defined, forcing older version and ignoring obsoletes introduced by 17.06.0
解决方法(二):
[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# cd backup/
[root@localhost backup]# ls
CentOS-Base.repo CentOS-Debuginfo.repo CentOS-Media.repo CentOS-Vault.repo
CentOS-CR.repo CentOS-fasttrack.repo CentOS-Sources.repo
[root@localhost backup]# mv CentOS-Base.repo /etc/yum.repos.d/
yum install docker-ce docker-ce-cli containerd.io
备注:
在安装前最好先看下CentOS-Base.repo位置,需要移至yum.repos.d目录下,才能进行安装Docker。
启动docker
systemctl start docker #docker version 产看版本,检验是否成功启动
查看镜像列表(本地已有的镜像)
docker images
REPOSITORY(仓库名称) TAG(标签) IMAGE ID(镜像ID) CREATED(状态) SIZE(镜像大小)
查看容器列表(本地已有的容器)
docker ps -a
CONTAINER ID(容器的ID) IMAGE(来自的镜像) COMMAND (执行的指令) CREATED(容器创建的时间) STATUS(容器的状态) PORTS(容器的端口) NAMES(容器的名称)
了解:卸载docker
(1)yum remove docker-ce docker-ce-cli containerd.io ##卸载依赖
(2)rm -rf /var/lib/docker ##删除docker资源 /var/lib/docker默认工作路径