目录
前言
一、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安装与卸载
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 版本列表。
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,进到软件下载页面。
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
需要自己注册账号,登录后,可以看到自己专属的镜像加速器地址。
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 的常用命令。