Linux系统安装Docker

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6


本文提供两种方式安装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://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"] }

注意

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

三、源码包安装docker

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: linuxDocker