Docker
简介
- Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源。
- Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
- 容器是完全使用沙箱机制,相互之间不会有任何接口,更重要的是容器性能开销极低。
Docker支持将软件编译成一个镜像;然后在镜像中各种软件做好配置,将镜像发布出去,其他使用者可以直接使用这个镜像。运行中的这个镜像称为容器,容器启动是非常快速的。类似windows里面的ghost操作系统,安装好后什么都有了;
Docker核心概念
概念 | 说明 |
---|---|
docker镜像(Images) | Docker 镜像是用于创建 Docker 容器的模板 |
docker容器(Container) | 容器是独立运行的一个或一组应用 |
docker客户端(Client) | 客户端通过命令行或者其他工具使用Docker |
docker主机(Host) | 一个物理或者虚拟的机器用于执行Docker守护进程和容器 |
docker仓库(Registry) | Dockers仓库用来保存镜像,可以理解为代码控制中的代码仓库 |
Docker仓库地址
Centos安装Docker
-
查看centos版本
Docker要求CentOs系统的内核版本高于3.10
uname -r
-
升级软件包及内核;
yum update
-
卸载旧版本的Docker
Docker的旧版本叫做
docker
或者docker-engine
。现在的Docker版本是Docker CE(社区版)和Docker EE(企业版)。一般情况下,咱们使用Docker CE(社区版)就可以了。如果你的系统安装了旧版本,卸载它们以及与它们相关的依赖yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine
-
安装Docker
如果你是在主机上第一次安装Docker CE,需要设置Docker的仓库。以后就可以从这个仓库安装和更新Docker了。
-
设置仓库
安装所需的包,
yum-utils
提供yum-config-manager
工具,device-mapper-persistent-data
和lvm2
是devicemapper
存储驱动所需要的yum install -y yum-utils \ device-mapper-persistent-data \ lvm2
设置稳定仓库
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 -y install docker-ce
-
错误
错误: 问题: package docker-ce-3:19.03.5-3.el7.x86_64 requires containerd.io >= 1.2.2-3, but none of the providers can be installed - cannot install the best candidate for the job - package containerd.io-1.2.10-3.2.el7.x86_64 is excluded - package containerd.io-1.2.2-3.3.el7.x86_64 is excluded - package containerd.io-1.2.2-3.el7.x86_64 is excluded - package containerd.io-1.2.4-3.1.el7.x86_64 is excluded - package containerd.io-1.2.5-3.1.el7.x86_64 is excluded - package containerd.io-1.2.6-3.3.el7.x86_64 is excluded (try to add '--skip-broken' to skip uninstallable packages or '--nobest' to use not only best candidate packages)
-
问题分析
containerd.io版本低导致
-
解决方法
安装高版本的containerd.io
下载:
wget https://download.docker.com/linux/centos/7/x86_64/edge/Packages/containerd.io-1.2.6-3.3.el7.x86_64.rpm
安装:
yum -y install containerd.io-1.2.6-3.3.el7.x86_64.rpm
重新安装docker
yum -y install docker-ce
-
-
-
启动docker
systemctl start docker
-
将dockers服务设为开机启动
systemctl enable docker
-
停止docker服务
systemctl stop docker
卸载Docker
-
卸载Docker包
yum remove docker-ce
-
镜像、容器、自定义配置文件等并不会随着Docker的卸载自动删除,执行如下命令
rm -rf /var/lib/docker
docker常用操作命令
镜像操作
操作 | 命令 | 解释 |
---|---|---|
检索 | docker search 关键字<br />eg: docker search redis | 查找docker仓库中相应镜像 |
拉取 | docker pull 镜像名:tag | :tag可选的,表示标签,多为软件的版本,默认是lasted(最新版) |
列表 | docker images | 查看所有本地镜像 |
删除 | docker rmi image-id | 删除指定的本地镜像 |
容器操作
操作 | 命令 | 解释 |
---|---|---|
运行 | docker run --name container-name -d image-name -p port1:port2 | 容器运行<br />--name:自定义容器名称<br />-d:后台运行<br />-p:指定主机与容器端口映射<br />port1:主机端口<br />port2:镜像端口 |
列表 | docker ps<br />docker ps -a | 查看运行中的容器<br />-a:查看所有容器 |
停止 | docker stop container-name/container-id | 停止运行的容器 |
启动 | docker start container-name/container-id | 启动容器 |
删除 | docker rm container-id | 删除指定容器(容器必须在停止状态) |
日志 | docker logs container-name/container-id | 查看指定容器执行日志 |