一、前提
一些旧版本的 Docker 我们称其为 docker 或 docker-engine。未避免此次安装受历史安装版本影响,需要先删除历史版本及各类依赖后再进行安装
卸载命令:
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
执行情况:
本次所使用的云服务器没有 Docker 相关信息
[root@shangliang ~]# sudo yum remove docker \
> docker-client \
> docker-client-latest \
> docker-common \
> docker-latest \
> docker-latest-logrotate \
> docker-logrotate \
> docker-engine
Failed to set locale, defaulting to C.UTF-8
No match for argument: docker
No match for argument: docker-client
No match for argument: docker-client-latest
No match for argument: docker-common
No match for argument: docker-latest
No match for argument: docker-latest-logrotate
No match for argument: docker-logrotate
No match for argument: docker-engine
No packages marked for removal.
Dependencies resolved.
Nothing to do.
Complete!
二、安装 Docker
1. 通过仓库进行安装(在线方式)
首次安装 Docker Engine 之前,需要先设置 Docker 存储库,后续可以通过存储库来更新 Docker。能访问互联网的建议通过此种方式安装,方便后续升级。
1.1 设置存储库
安装 yum-utils (安装报错,查看处理方式最底处)
sudo yum install -y yum-utils
设置存储库
sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
1.2 查看可安装版本
yum list docker-ce --showduplicates | sort -r
查询的版本数据为当前所使用的仓库内,当前系统可用的 Docker 版本信息
[root@shangliang ~]# yum list docker-ce --showduplicates | sort -r
Failed to set locale, defaulting to C.UTF-8
docker-ce.x86_64 3:20.10.9-3.el8 docker-ce-stable
docker-ce.x86_64 3:20.10.8-3.el8 docker-ce-stable
docker-ce.x86_64 3:20.10.7-3.el8 docker-ce-stable
docker-ce.x86_64 3:20.10.6-3.el8 docker-ce-stable
docker-ce.x86_64 3:20.10.5-3.el8 docker-ce-stable
docker-ce.x86_64 3:20.10.4-3.el8 docker-ce-stable
docker-ce.x86_64 3:20.10.3-3.el8 docker-ce-stable
docker-ce.x86_64 3:20.10.2-3.el8 docker-ce-stable
docker-ce.x86_64 3:20.10.17-3.el8 docker-ce-stable
docker-ce.x86_64 3:20.10.16-3.el8 docker-ce-stable
docker-ce.x86_64 3:20.10.15-3.el8 docker-ce-stable
docker-ce.x86_64 3:20.10.14-3.el8 docker-ce-stable
docker-ce.x86_64 3:20.10.13-3.el8 docker-ce-stable
docker-ce.x86_64 3:20.10.12-3.el8 docker-ce-stable
docker-ce.x86_64 3:20.10.11-3.el8 docker-ce-stable
docker-ce.x86_64 3:20.10.10-3.el8 docker-ce-stable
docker-ce.x86_64 3:20.10.1-3.el8 docker-ce-stable
docker-ce.x86_64 3:20.10.0-3.el8 docker-ce-stable
docker-ce.x86_64 3:19.03.15-3.el8 docker-ce-stable
docker-ce.x86_64 3:19.03.14-3.el8 docker-ce-stable
docker-ce.x86_64 3:19.03.13-3.el8 docker-ce-stable
Docker CE Stable - x86_64 45 kB/s | 26 kB 00:00
Available Packages
1.3 安装 Docker
默认安装的为最新版本
sudo yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin
如果需要安装特定版本,增加对应版本号即可
sudo yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io docker-compose-plugin
执行完安装命令等待安装即可,中间出现 Is this ok [y/N]: 直接 y
#安装完成
Installed:
checkpolicy-2.9-1.el8.x86_64 container-selinux-2:2.167.0-1.module_el8.5.0+911+f19012f9.noarch containerd.io-1.6.6-3.1.el8.x86_64 docker-ce-3:20.10.17-3.el8.x86_64
docker-ce-cli-1:20.10.17-3.el8.x86_64 docker-ce-rootless-extras-20.10.17-3.el8.x86_64 docker-compose-plugin-2.6.0-3.el8.x86_64 docker-scan-plugin-0.17.0-3.el8.x86_64
fuse-common-3.2.1-12.el8.x86_64 fuse-overlayfs-1.7.1-1.module_el8.5.0+890+6b136101.x86_64 fuse3-3.2.1-12.el8.x86_64 fuse3-libs-3.2.1-12.el8.x86_64
libcgroup-0.41-19.el8.x86_64 libslirp-4.4.0-1.module_el8.5.0+890+6b136101.x86_64 policycoreutils-python-utils-2.9-16.el8.noarch python3-audit-3.0-0.17.20191104git1c2f876.el8.x86_64
python3-libsemanage-2.9-6.el8.x86_64 python3-policycoreutils-2.9-16.el8.noarch python3-setools-4.3.0-2.el8.x86_64 slirp4netns-1.1.8-1.module_el8.5.0+890+6b136101.x86_64
Complete!
1.4 启动 Docker
# 启动 Docker
[root@shangliang ~]# sudo systemctl start docker
1.5 验证是否成功
输出 Hello 相关信息,表示我们 Docker 已经安装成功
Hello from Docker!
This message shows that your installation appears to be working correctly.
[root@shangliang ~]# sudo docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
2db29710123e: Pull complete
Digest: sha256:80f31da1ac7b312ba29d65080fddf797dd76acfb870e677f390d5acba9741b17
Status: Downloaded newer image for hello-world:latest
Hello from Docker!
This message shows that your installation appears to be working correctly.
2. 通过 RMP 包安装(离线方式)
官方下载地址:Index of linux/
包含各版本 Linux 系统的 Docker 安装包,根据系统版本自行选择即可。
CentOS 8.2 x86_64可直接下载 docker-ce-cli-20.10.17-3.el8.x86_64.rpm (日期:2022-06-07 00:47:30)
2.2 安装 Docker
# 路径替换为自己的 rpm 包路径
sudo yum install 包存放路径/docker-ce-cli-20.10.17-3.el8.x86_64.rpm
2.3 启动 Docker
# 启动 Docker
[root@shangliang ~]# sudo systemctl start docker
2.4 验证是否成功
输出 Hello 相关信息,表示我们 Docker 已经安装成功
Hello from Docker!
This message shows that your installation appears to be working correctly.
[root@shangliang ~]# sudo docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
2db29710123e: Pull complete
Digest: sha256:80f31da1ac7b312ba29d65080fddf797dd76acfb870e677f390d5acba9741b17
Status: Downloaded newer image for hello-world:latest
Hello from Docker!
This message shows that your installation appears to be working correctly.
三、Docker 常用命令
1. 查看版本 docker version | docker --version
# 查看 docker 版本
[root@shangliang ~]# docker --version
Docker version 20.10.17, build 100c701
# 查看 Docker 版本(详细)
[root@shangliang ~]# docker version
Client: Docker Engine - Community
Version: 20.10.17
API version: 1.41
Go version: go1.17.11
Git commit: 100c701
Built: Mon Jun 6 23:03:11 2022
OS/Arch: linux/amd64
Context: default
Experimental: true
Server: Docker Engine - Community
Engine:
Version: 20.10.17
API version: 1.41 (minimum version 1.12)
Go version: go1.17.11
Git commit: a89b842
Built: Mon Jun 6 23:01:29 2022
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.6.6
GitCommit: 10c12954828e7c7c9b6e0ea9b0c02b01407d3ae1
runc:
Version: 1.1.2
GitCommit: v1.1.2-0-ga916309
docker-init:
Version: 0.19.0
GitCommit: de40ad0
2. 管理镜像
2.1 搜索镜像
docker search <名称>
2.2 拉取镜像
docker pull <镜像名称>,如 docker pull redis , 默认拉取最新版本 Redis
docker pull <镜像名称>:<版本>,增加版本编号可拉取制定版本
2.3 管理镜像
docker image <操作命令>
常用操作命令
build:通过 Dockerfile 构建镜像
ls:展示镜像列表
pull:从远程仓库拉取一个镜像
push:向远程仓库推送一个镜像
rm:删除一个或多个镜像
3. 管理容器
docker container <操作命令>
常用操作命令
ls:展示容器列表,默认展示运行中的。-a 展示全部 docker container ls -a
run:启动一个新的容器 (容器名称: --name 容器名称;绑定端口: -p 宿主机IP:容器内IP ,后台启动:-d)
restart:重启一个或多个容器, docker container restart 容器id
stop:停止一个或多个容器,docker container stop 容器id
kill:强制停止一个或多个容器,docker container kill 容器id
start:启动一个或多个已停止的容器,docker container start 容器id
rm:删除一个或多个容器,docker container rm 容器id
inspect:展示一个或多个容器的详细信息,docker container inspect 容器id
四、安装报错处理
报错信息:Error: Failed to download metadata for repo ‘epel’: Cannot download repomd.xml: Cannot download
[root@shangliang ~]# sudo yum install -y yum-utils
Extra Packages for Enterprise Linux 8 - x86_64 115 B/s | 196 B 00:01
Errors during downloading metadata for repository 'epel':
Status code: 404 for http://archives.fedoraproject.org/pub/archive/epel/8/Everything/x86_64/repodata/repomd.xml (IP: 38.145.60.24)
Error: Failed to download metadata for repo 'epel': Cannot download repomd.xml: Cannot download repodata/repomd.xml: All mirrors were tried
解决方式:更新 YUM 源
#备份 repo 文件
mv /etc/yum.repos.d /etc/yum.repos.d.bak
#创建新的源文件目录
mkdir -p /etc/yum.repos.d
#下载新的 YUM 源
curl https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo > /etc/yum.repos.d/Centos-vault-8.5.2111.repo
curl https://mirrors.aliyun.com/repo/epel-archive-8.repo > /etc/yum.repos.d/epel-archive-8.repo
docker 部署
Dockerfile自定义镜像
我们可以从中央仓库下载一个镜像,也可以自己手动去制作一个镜像,需要通过Dockerfile去指定自定义镜像的信息
创建自定义镜像就需要创建一个Dockerfile文件,如下为Dockerfile的语言文章来源:https://www.toymoban.com/news/detail-839186.html
FROM openjdk:17
COPY *.jar /app.jar
CMD ["--server.port=8080"]
EXPOSE 8080
ENTRYPOINT ["java","-jar","/app.jar"]
from: 指定当前自定义镜像依赖的环境
copy: 将相对路径下的内容复制到自定义镜像中
workdir: 声明镜像的默认工作目录
run: 执行的命令,可以编写多个
cmd: 需要执行的命令(在workdir下执行的,cmd可以写多个,只以最后一个为准)
举个例子,制作SSM容器镜像,而且ssm.war要放在Dockerfile的同级目录下
from daocloud.io/library/tomcat:8.5.15-jre8
copy ssm.war /usr/local/tomcat/webapps文章来源地址https://www.toymoban.com/news/detail-839186.html
docker 启动命令
docker run -d -p 8080:8080 --name mblog-latest-8080 mblog-latest
到了这里,关于Linux 安装使用 Docker的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!