本文提供两种方式安装Docker,一是通过yum方式安装,二是通过源码包的方式安装。

yun方式安装一般比较适合个人玩一玩或者一些互联网公司。说比较适合个人是因为可以联网。说是审核一些互联网公司,是因为这类互联网一般不是很大,所以安全性与规范性不够。因此也会开放外网直接安装。

但是很多公司都是内网环境,根本不给你联网通过yum安装的机会,比如,银行、保险、证券、基金等等。或许可以这么说,大的公司都不会给你直接联网安装部署软件的,或许测试环境有那么一丢丢可能。

本文先来讲述如何通过yum方式安装docker,然后采用源码包方式安装。

一、yum安装docker

1.1 官网安装方式

打开docker官网:https://www.docker.com/

 

 

 

 

 这一步也可以点击

 然后就可以按照官网来进行操作了。

1.2 本人安装方式

下面是我之前的安装的文档,仅供参考!

  1. 帮助文档:Docker Documentation | Docker Documentation
  2. Download and install
  3. Docker for Linux
  4. Install
  5. Installation per distro
  6. Install on CentOS

具体步骤,在服务器上进行如下操作:

# 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:latest

Hello 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 bash

Share 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即可。

二、配置镜像加速器

我们这里配置阿里云的镜像加速器。

2.1 登陆阿里云

阿里云官网

可以使用淘宝、支付宝等阿里系账号登陆,然后点击右上角控制台。

 点击左上角,在弹性计算这一列,选择容器镜像服务。

2.2 配置加速器

 复制加速器地址,修改daemon配置文件,一共两种方式:

第一种,按照阿里云官网分步骤

# 1.创建配置文件目录
sudo mkdir -p /etc/docker

# 2.执行脚本,该脚本是将JSON串反写到daemon.jsonn文件中
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://yv48ht54.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"] }

注意:

  1. 上面的是我个人的,我用xxx修改了,大家可以用支付宝或淘宝生成自己的加速器;
  2. sudo命令是针对非管理员用户的,如果你是非管理员,该命令必不可少,是管理员加不加无所谓;
  3. tee到最后的EOF命令是一个整体,不可分开执行。

三、源码包安装docker

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐