本文提供两种方式安装Docker,一是通过yum方式安装,二是通过源码包的方式安装。
yun方式安装一般比较适合个人玩一玩或者一些互联网公司。说比较适合个人是因为可以联网。说是审核一些互联网公司,是因为这类互联网一般不是很大,所以安全性与规范性不够。因此也会开放外网直接安装。
但是很多公司都是内网环境,根本不给你联网通过yum安装的机会,比如,银行、保险、证券、基金等等。或许可以这么说,大的公司都不会给你直接联网安装部署软件的,或许测试环境有那么一丢丢可能。
本文先来讲述如何通过yum方式安装docker,然后采用源码包方式安装。
打开docker官网:https://www.docker.com/
这一步也可以点击
然后就可以按照官网来进行操作了。
下面是我之前的安装的文档,仅供参考!
具体步骤,在服务器上进行如下操作:
# 1.卸载旧的版本
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
# 如有需要,可以安装gcc
yum -y install gcc
# 以及gcc-c++
yum -y install gcc-c++
# 2.需要的安装包
sudo yum install -y yum-utils
# 3.设置镜像仓库
sudo yum-config-manager \
--add-repo \
# 默认是国外的,不要使用
https://download.docker.com/linux/centos/docker-ce.repo
# 建议使用阿里云的镜像,十分快
sudo yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 更新yum软件包索引(安装前的工作,非必须)
yum makecache fast
# yum makecache: error: argument timer: invalid choice: 'fast' (choose from 'timer')
# 安装报错了,yum makecache fast是centOS7的命令, 不使用8,可以直接使用
yum makecache # 或者
dnf makecache
# 4.安装docker docker-ce:社区版的,docker-ee:企业版的
sudo yum install docker-ce docker-ce-cli containerd.io
第四步报错了:
Docker CE Stable - x86_64 120 kB/s | 19 kB 00:00
错误:
问题 1: 安装的软件包的问题 podman-1:3.4.1-3.module_el8.6.0+954+963caf36.x86_64。。。。。。
- 软件包 podman-3.1.0-0.13.module_el8.5.0+733+9bb5dffa.x86_64 需要 runc >= 1.0.0-57,但没有提供者可以被安装
。。。。。。
- 软件包 docker-ce-3:20.10.11-3.el8.x86_64 需要 containerd.io >= 1.4.1,但没有提供者可以被安装
。。。。。。
- 软件包 podman-catatonit-1:3.4.1-3.module_el8.6.0+954+963caf36.x86_64 需要 podman = 1:3.4.1-3.module_el8.6.0+954+963caf36,但没有提供者可以被安装
- 软件包 podman-1:3.4.1-3.module_el8.6.0+954+963caf36.x86_64 需要 runc >= 1.0.0-57,但没有提供者可以被安装
(尝试在命令行中添加 '--allowerasing' 来替换冲突的软件包 或 '--skip-broken' 来跳过无法安装的软件包 或 '--nobest' 来不只使用软件包的最佳候选)
此时可以使用如下命令来解决这个问题:
sudo yum install --allowerasing docker-ce docker-ce-cli containerd.io
# 5.启动docker
systemctl start docker
# 6.查看docker版本
docker version # 或者
sudo docker version
# 7.测试Hello World
docker run hello-world # 或者
sudo docker run hello-world
此时会提示找不到“hello-world”镜像,然后它会自动从仓库中拉去:
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
2db29710123e: Pull complete
Digest: sha256:cc15c5b292d8525effc0f89cb299f1804f3a725c8d05e158653a563f15e4f685
Status: Downloaded newer image for hello-world:latestHello from Docker!
This message shows that your installation appears to be working correctly.To generate this message, Docker took the following steps:
1. The Docker client contacted the Docker daemon.
2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
(amd64)
3. The Docker daemon created a new container from that image which runs the
executable that produces the output you are currently reading.
4. The Docker daemon streamed that output to the Docker client, which sent it
to your terminal.To try something more ambitious, you can run an Ubuntu container with:
$ docker run -it ubuntu bashShare images, automate workflows, and more with a free Docker ID:
https://hub.docker.com/For more examples and ideas, visit:
https://docs.docker.com/get-started/
此时会有拉去成功的签名信息以及欢迎语句,当出现"Hello from Docker!”时,代表我们镜像安装成功。
# 8.查看下载的hello-world镜像
docker images #或者
sudo docker images
此时会有对应的镜像显示:
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest feb5d9fea6a5 2 months ago 13.3kB
到了这里才真正代表着docker安装成功并成功拉取对应的镜像。
如果需要卸载docker的话:
# 1.卸载docker
yum remove docker-ce docker-ce-cli containerd.io
# 2.删除资源
rm -rf /var/lib/docker
# /var/lib/docker docker的默认工作路径
最后再提一点,如果遇到权限问题,可以在对应的命令上添加:
sudo这个命令,意思是给同组的用户以管理员的操作权限,说白了就是提升权限的。上面的一些命令,有的我加了sudo,有的没有添加,如果遇到权限问题,直接加上即可,一般会有这样的提示:
Got 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/images/json": dial unix /var/run/docker.sock: connect: permission denied
此时在对应的命令上加上 sudo即可。
我们这里配置阿里云的镜像加速器。
阿里云官网
可以使用淘宝、支付宝等阿里系账号登陆,然后点击右上角控制台。
点击左上角,在弹性计算这一列,选择容器镜像服务。
复制加速器地址,修改daemon配置文件,一共两种方式:
# 1.创建配置文件目录
sudo mkdir -p /etc/docker
# 2.执行脚本,该脚本是将JSON串反写到daemon.jsonn文件中
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://xxxx4.mirror.aliyuncs.com"]
}
EOF
# 3.重新加载docker
sudo systemctl daemon-reload
# 4.重启docker
sudo systemctl restart docker
vim /etc/docker/daemon.json
将其中的JSON串粘贴到刚才打开编辑的daemon.json文件中:
{ "registry-mirrors": ["https://xxxx.mirror.aliyuncs.com"] }
注意: