目录

前言

一、Docker版本介绍

二、Docker安装与卸载

1、安装docker

2、安装指定版本docker

3、卸载docker

三、Docker离线安装

1、软件安装包

2、二进制文件包

四、Docker镜像加速器

1、获取镜像加速器地址

2、配置镜像加速器

总结


前言

       前面了解 Ubuntu 的常用命令,后面来学习一下 docker 基础,首先当然是来安装一下docker。


一、Docker版本介绍

       Docker有两个版本:社区版Community Edition (CE) 和 企业版Enterprise Edition (EE)。

       Docker Community Edition(CE)主要是适合单个开发人员和小团队使用Docker容器进行应用程序的开发。Docker Enterprise Edition(EE)是为企业开发和大的IT团队设计的,并用于生产环境中大规模地构建、交付和运行关键业务应用程序。学习的话使用社区版就可以了。

       Docker(CE)支持的平台:

docker oa系统 docker enterprise_docker oa系统

二、Docker安装与卸载

       Docker CE是免费的Docker产品的新名称,Docker CE包含了完整的Docker平台,非常适合开发人员和运维团队构建容器APP,后面将在Ubuntu中进行安装。

1、安装docker

### step 1: 安装必要的一些系统工具
sudo apt -y update 
sudo apt -y install apt-transport-https ca-certificates curl software-properties-common
### step 2: 安装GPG证书
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
### Step 3: 写入软件源信息
sudo add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
### Step 4: 更新并安装Docker-CE
sudo apt -y update
sudo apt -y install docker-ce

2、安装指定版本docker

### 安装指定版本的Docker-CE:
### Step 1: 查找Docker-CE的版本:
apt-cache madison docker-ce
 docker-ce | 5:20.10.18~3-0~ubuntu-jammy | https://mirrors.aliyun.com/docker-ce/linux/ubuntu jammy/stable amd64 Packages
 docker-ce | 5:20.10.17~3-0~ubuntu-jammy | https://mirrors.aliyun.com/docker-ce/linux/ubuntu jammy/stable amd64 Packages
 docker-ce | 5:20.10.16~3-0~ubuntu-jammy | https://mirrors.aliyun.com/docker-ce/linux/ubuntu jammy/stable amd64 Packages
 docker-ce | 5:20.10.15~3-0~ubuntu-jammy | https://mirrors.aliyun.com/docker-ce/linux/ubuntu jammy/stable amd64 Packages
 docker-ce | 5:20.10.14~3-0~ubuntu-jammy | https://mirrors.aliyun.com/docker-ce/linux/ubuntu jammy/stable amd64 Packages
 docker-ce | 5:20.10.13~3-0~ubuntu-jammy | https://mirrors.aliyun.com/docker-ce/linux/ubuntu jammy/stable amd64 Packages
### Step 2: 安装指定版本的Docker-CE: (VERSION例如上面的5:20.10.17~3-0~ubuntu-jammy)
sudo apt -y install docker-ce=5:20.10.17~3-0~ubuntu-jammy

3、卸载docker

###停服务
demo@docker:~$ sudo systemctl stop docker
###卸载安装包
demo@docker:~$ sudo apt purge -y docker*
###删除镜像、容器、配置文件等内容
demo@docker:~$ sudo rm -rf /var/lib/docker

三、Docker离线安装

       如果我们的服务器无法联网时,可以使用离线安装包进行安装。离线安装有两种方式,软件安装包安装和二进制文件安装。

1、软件安装包

       以 Ubuntu 为例:

       1)打开 docker 官网 docker 下载软件包的 Ubuntu 版本列表。

        Index of linux/ubuntu/dists/

docker oa系统 docker enterprise_运维_02

         2)选择对应自己版本的 Ubuntu,Ubuntu 版本对应如下。

artful : 17.10

hirsute : 21.04

bionic : 18.04

impish : 21.10

cosmic : 18.10

jammy : 22.04

disco : 19.04

trusty : 14.04

eoan : 19.10

xenial : 16.04

focal : 20.04

yakkety : 16.10

groovy : 20.10

zesty : 17.04

        3)我们前面安装的是22.04版本,所以选择 jammy,继续进到 pool/stable/,选择硬件平台,x86 平台,选择 amd64,进到软件下载页面。

docker oa系统 docker enterprise_ubuntu_03

docker oa系统 docker enterprise_容器_04

        4)都选择最新版本下载即可,下载的文件上传到 Ubuntu 系统中。

        5)执行命令进行安装。

demo@docker:~$ sudo dpkg -i containerd.io_1.6.8-1_amd64.deb docker-ce_20.10.20_3-0_ubuntu-jammy_amd64.deb docker-ce-cli_20.10.20_3-0_ubuntu-jammy_amd64.deb docker-compose-plugin_2.6.0_ubuntu-jammy_amd64.deb 
(Reading database ... 102312 files and directories currently installed.)
Preparing to unpack containerd.io_1.6.8-1_amd64.deb ...
Unpacking containerd.io (1.6.8-1) over (1.6.8-1) ...
Preparing to unpack docker-ce_20.10.20_3-0_ubuntu-jammy_amd64.deb ...
Unpacking docker-ce (5:20.10.20~3-0~ubuntu-jammy) over (5:20.10.20~3-0~ubuntu-jammy) ...
Preparing to unpack docker-ce-cli_20.10.20_3-0_ubuntu-jammy_amd64.deb ...
Unpacking docker-ce-cli (5:20.10.20~3-0~ubuntu-jammy) over (5:20.10.20~3-0~ubuntu-jammy) ...
Preparing to unpack docker-compose-plugin_2.6.0_ubuntu-jammy_amd64.deb ...
Unpacking docker-compose-plugin (2.6.0~ubuntu-jammy) over (2.6.0~ubuntu-jammy) ...
Setting up containerd.io (1.6.8-1) ...
Setting up docker-ce-cli (5:20.10.20~3-0~ubuntu-jammy) ...
Setting up docker-compose-plugin (2.6.0~ubuntu-jammy) ...
Setting up docker-ce (5:20.10.20~3-0~ubuntu-jammy) ...

2、二进制文件包

        1)打开 docker 官网 64位 x86 docker 二进制离线包下载页面,选择合适的版本下载,并传到服务器上。

       Index of linux/static/stable/x86_64/ (docker.com)       

       2)将压缩包解压,并将解压出的 docker 目录中的二进制文件全部拷贝到 /usr/bin 目录中。

###将压缩包解压,拷贝文件,查看docker版本。
root@docker:~# tar -xf docker-20.10.20.tgz 
root@docker:~# ls
docker  docker-20.10.20.tgz
root@docker:~# ls -l docker
total 194708
-rwxr-xr-x 1 demo demo 38703192 Oct 18  2022 containerd
-rwxr-xr-x 1 demo demo  7446528 Oct 18  2022 containerd-shim
-rwxr-xr-x 1 demo demo  9641984 Oct 18  2022 containerd-shim-runc-v2
-rwxr-xr-x 1 demo demo 20582400 Oct 18  2022 ctr
-rwxr-xr-x 1 demo demo 48047088 Oct 18  2022 docker
-rwxr-xr-x 1 demo demo   765808 Oct 18  2022 docker-init
-rwxr-xr-x 1 demo demo  2555160 Oct 18  2022 docker-proxy
-rwxr-xr-x 1 demo demo 57780304 Oct 18  2022 dockerd
-rwxr-xr-x 1 demo demo 13847864 Oct 18  2022 runc

root@docker:~# cp -p docker/* /usr/bin/

root@docker:~# docker --version
Docker version 20.10.20, build 9fdeb9c

        3)定义 docker 的服务文件。

###创建服务文件。
root@docker:~# echo -e \
 "[Unit]
 Description=Docker Application Container Engine
 Documentation=https://docs.docker.com
 After=network-online.target firewalld.service
 Wants=network-online.target
 [Service]
 Type=notify
 # the default is not to use systemd for cgroups because the delegate issues still
 # exists and systemd currently does not support the cgroup feature set required
 # for containers run by docker
 ExecStart=/usr/bin/dockerd
 ExecReload=/bin/kill -s HUP $MAINPID
 # Having non-zero Limit*s causes performance problems due to accounting overhead
 # in the kernel. We recommend using cgroups to do container-local accounting.
 LimitNOFILE=infinity
 LimitNPROC=infinity
 LimitCORE=infinity
 # Uncomment TasksMax if your systemd version supports it.
 # Only systemd 226 and above support this version.
 #TasksMax=infinity
 TimeoutStartSec=0
 # set delegate yes so that systemd does not reset the cgroups of docker containers
 Delegate=yes
 # kill only the docker process, not all processes in the cgroup
 KillMode=process
 # restart the docker process if it exits prematurely
 Restart=on-failure
 StartLimitBurst=3
 StartLimitInterval=60s
 [Install]
 WantedBy=multi-user.target" \
 > /etc/systemd/system/docker.service

        4)设置 docker 服务开机自启动,并启动服务。

###设置服务开机启动,并启动服务,查看服务状态。
root@docker:~# systemctl enable docker
Synchronizing state of docker.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable docker
Created symlink /etc/systemd/system/multi-user.target.wants/docker.service → /etc/systemd/system/docker.service.

root@docker:~# systemctl start docker
root@docker:~# systemctl status docker
● docker.service - Docker Application Container Engine
     Loaded: loaded (/etc/systemd/system/docker.service; enabled; vendor preset: enabled)
     Active: active (running) since Thu 2023-06-22 08:39:09 UTC; 5s ago
       Docs: https://docs.docker.com
   Main PID: 3541 (dockerd)
      Tasks: 9 (limit: 2178)
     Memory: 15.2M
        CPU: 1.956s
     CGroup: /system.slice/docker.service
             └─3541 /usr/bin/dockerd

四、Docker镜像加速器

        国内从 DockerHub 拉取镜像有时会遇到困难,此时可以配置镜像加速器。

1、获取镜像加速器地址

        阿里云镜像加速器获取地址:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors

        需要自己注册账号,登录后,可以看到自己专属的镜像加速器地址。

docker oa系统 docker enterprise_docker_05

2、配置镜像加速器

       Ubuntu 系统的操作如下:

###通过修改配置文件使用加速器,前面如果卸载了docker,别忘了先装回来。
sudo apt -y install docker-ce
##创建目录
sudo mkdir -p /etc/docker
##创建配置文件
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://yj431vht.mirror.aliyuncs.com"]
}
EOF
##重新加载服务配置文件,并重启服务
sudo systemctl daemon-reload
sudo systemctl restart docker
##重启后查看服务运行状态
demo@docker:~$ systemctl status docker
● docker.service - Docker Application Container Engine
     Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
     Active: active (running) since Sat 2022-10-08 17:04:20 UTC; 6min ago
TriggeredBy: ● docker.socket
       Docs: https://docs.docker.com
   Main PID: 3681 (dockerd)
      Tasks: 8
     Memory: 19.7M
        CPU: 458ms
     CGroup: /system.slice/docker.service
             └─3681 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
...

总结

      到这里 Docker 就安装好了,后面来了解一下 Docker 的常用命令。