Docker介绍和安装

219 阅读3分钟

什么情况适合用Docker

Docker的最大优势是保证了软件开发在不同环境中的依赖和迁移。 也就是说,如果软件开发人员只需要配置正确的依赖环境,就可以在任何拥有docker的环境中,进行快速的部署和运行,大大减少了迁移部署过程中的兼容问题、依赖问题、和运行维护问题

因此,docker适用情况在跨平台开发,特定依赖版本开发,快速部署,持续开发,要求易于维护等大多数开发场景。 不适合的情况通常有,与机器硬件绑定的软件,无依赖或者依赖要求不高(系统自带)的简单软件,预期不会迁移的软件或者一次性的工具脚本等,另外软件体量非常庞大的软件(打包体积超10G)也不推荐进行docker模式

Docker的版本介绍和安装

Docker分为两种,一种叫 Desktop 模式,带有图形界面(GUI),适合windows用户的习惯,可以在软件界面进行一些操作。另一种是纯命令行模式,文档中指导安装 Engine,一般在服务器中安装这种,并启动 Engine,才能使用常规的docker命令。

Desktop模式的安装很简单,从官网(Get Docker | Docker Documentation)下载安装包,并按提示安装即可。

从服务器上安装 docker engine,文档地址是 Install Docker Engine on CentOS | Docker Documentation

关于如何查看服务器的系统型号,可以用 lsb_release -a 命令。

安装命令整理如下:

sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo systemctl start docker

测试docker可以正常使用,以下命令不报错:

docker ps

Docker源与加速

和其他软件一样,通过配置docker源,可以加速镜像下载 通常安装完后,没有配置镜像源,通过

docker info

查看最后几行:

image.png

这种属于还没有配置源,配置方法为:

vim /etc/docker/daemon.json

{
"registry-mirrors": [
"http://hub-mirror.c.163.com",
"https://docker.mirrors.ustc.edu.cn",
"https://registry.docker-cn.com"
]
}

service docker restart

image.png

配置好的源可以被 docker info 命令查看到

安装遇到问题

正常情况,docker的安装很快,大概在1-5分钟之内。遇到在另一环境中安装,长时间安装不上且出错的情况。尝试另一个安装方法:

1.更新yum仓库

su root
yum update -y
vi /etc/yum.repos.d/docker.repo
[dockerrepo]

name=Docker Repository

baseurl=https://yum.dockerproject.org/repo/main/centos/7

enabled=1

gpgcheck=1

gpgkey=https://yum.dockerproject.org/gpg

2.安装docker

yum install -y docker-engine

yum install -y docker-selinux

如果报错

failure: repodata/repomd.xml from dockerrepo: [Errno 256] No more mirrors to try.

https://yum.dockerproject.org/repo/main/centos/7/repodata/repomd.xml: [Errno 14] curl#6 - "Could not resolve host: yum.dockerproject.org; Unknown error"

替换命令:

yum-config-manager --disable dockerrepo

sudo yum install docker-ce docker-ce-cli containerd.ioLoaded plugins: fastestmirror

PS:在使用现成的安装包安装的时候selinux的安装一定要在docker-engine之前。 yum list installed | grep docker

启动 docker 服务器

systemctl start docker.service
docker run hello-world
docker ps

systemctl enable docker.service

用户无法访问 docker

用户访问docker,提示无权限

permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/containers/json": dial unix /var/run/docker.sock: connect: permission denied

这是非常常见的一个错误,解决办法就是把无权限的用户加入到docker组即可。

sudo gpasswd -a $USER docker # 将当前用户添加至docker用户组
newgrp docker

docker-compose 命令不存在的问题

docker-compose 独立 docker 的管理工具,用 pip 安装即可

pip install docker-compose