Linux 安装使用 Docker

目录

  • 一、前提
      • 卸载命令:
      • 执行情况:
  • 二、安装 Docker
    • 1. 通过仓库进行安装(在线方式)
      • 1.1 设置存储库
      • 1.2 查看可安装版本
      • 1.3 安装 Docker
      • 1.4 启动 Docker
      • 1.5 验证是否成功
    • 2. 通过 RMP 包安装(离线方式)
      • 2.2 安装 Docker
      • 2.3 启动 Docker
      • 2.4 验证是否成功
  • 三、Docker 常用命令
    • 1. 查看版本 docker version | docker --version
    • 2. 管理镜像
      • 2.1 搜索镜像
      • 2.2 拉取镜像
      • 2.3 管理镜像
    • 3. 管理容器
      • 常用操作命令
  • 四、安装报错处理
  • docker 部署
    • Dockerfile自定义镜像
      • docker 启动命令

一、前提

一些旧版本的 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_64docker-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_64fuse-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_64libcgroup-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_64python3-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_64Complete!

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 - CommunityVersion:           20.10.17API version:       1.41Go version:        go1.17.11Git commit:        100c701Built:             Mon Jun  6 23:03:11 2022OS/Arch:           linux/amd64Context:           defaultExperimental:      trueServer: Docker Engine - CommunityEngine:Version:          20.10.17API version:      1.41 (minimum version 1.12)Go version:       go1.17.11Git commit:       a89b842Built:            Mon Jun  6 23:01:29 2022OS/Arch:          linux/amd64Experimental:     falsecontainerd:Version:          1.6.6GitCommit:        10c12954828e7c7c9b6e0ea9b0c02b01407d3ae1runc:Version:          1.1.2GitCommit:        v1.1.2-0-ga916309docker-init:Version:          0.19.0GitCommit:        de40ad0

2. 管理镜像

2.1 搜索镜像

docker search <名称>

2.2 拉取镜像

docker pull <镜像名称>,如 docker pull redis , 默认拉取最新版本 Redisdocker pull <镜像名称>:<版本>,增加版本编号可拉取制定版本

2.3 管理镜像

docker image <操作命令>

常用操作命令

build:通过 Dockerfile 构建镜像ls:展示镜像列表pull:从远程仓库拉取一个镜像push:向远程仓库推送一个镜像rm:删除一个或多个镜像

3. 管理容器

docker container <操作命令>

常用操作命令

ls:展示容器列表,默认展示运行中的。-a 展示全部 docker container ls -arun:启动一个新的容器 (容器名称: --name 容器名称;绑定端口: -p 宿主机IP:容器内IP ,后台启动:-d)restart:重启一个或多个容器, docker container restart 容器idstop:停止一个或多个容器,docker container stop 容器idkill:强制停止一个或多个容器,docker container kill 容器idstart:启动一个或多个已停止的容器,docker container start 容器idrm:删除一个或多个容器,docker container rm 容器idinspect:展示一个或多个容器的详细信息,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的语言


FROM openjdk:17COPY *.jar /app.jarCMD ["--server.port=8080"]EXPOSE 8080ENTRYPOINT ["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

docker 启动命令

docker run -d -p 8080:8080 --name mblog-latest-8080 mblog-latest

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/740879.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Echarts+Vue 首页大屏静态示例Demo 第四版 支持自适应

效果: 源码: <template><ScaleScreenclass="scale-wrap":selfAdaption="true":autoScale="true":class="{ fullscreen-container: isFullScreen }"><div class="bg"><dv-loading v-if="loading&…

SeaTunnel-web in K8S

下载&#xff0c;官网下载有问题&#xff0c;上dlcdn.apache.org下载 https://dlcdn.apache.org/seatunnel/seatunnel-web/1.0.0/apache-seatunnel-web-1.0.0-bin.tar.gz apache-seatunnel-2.3.3中执行bin/install-plugin.sh下载connectors 下载web的源码 https://github.co…

LeetCode - 和为K的子数组

LCR 010. 和为 K 的子数组 看到这道题的时候&#xff0c;感觉还挺简单的&#xff0c;找到数组中和为k的连续子数组的个数&#xff0c;无非就是一个区间减去另一个区间的和等于k&#xff0c;然后想到了用前缀和来解决这道问题。再算连续子数组出现的个数的时候&#xff0c;可以使…

系统学习Python——装饰器:“私有“和“公有“属性案例-[使用伪私有、破坏私有和装饰器权衡]

分类目录&#xff1a;《系统学习Python》总目录 使用伪私有 除了泛化&#xff0c;这个版本还使用了Python的_X伪私有保持不变混合功能&#xff0c;通过将这个类的名称自动作为其前缀&#xff0c;就可以把wrapped属性局部化为代理控制类的变量。这避免了上一版本与一个真实的被…

DJI RONIN 4D变0字节恢复案例

RONIN 4D这个产品听起来比较陌生&#xff0c;还是DJI大疆出品。没错&#xff0c;这是大疆进军影视级的重点明星机型。前阵子刚处理过大疆RONIN 4D的修复案例&#xff0c;下边这个案例是和exfat有关的老问题:文件长度变成0字节。 故障存储:希捷18T /MS Exfat文件系统。 故障现…

uniapp实现点击选项跳转到应用商店进行下载

uni-app 中如何打开外部应用&#xff0c;如&#xff1a;浏览器、淘宝、AppStore、QQ等 https://ask.dcloud.net.cn/article/35621 Android唤起应用商店并跳转到应用详情页 兼容处理多个应用商店的情况 https://juejin.cn/post/6896399353301516295 如何查看market://detail…

如何借助CRM系统获得直观的业务洞察?CRM系统图表视图解析!

Zoho CRM管理系统在优化客户体验方面持续发力&#xff0c;新年新UI&#xff0c;一波新功能正在赶来的路上。今天要介绍的新UI功能在正式推出之前&#xff0c;已经通过早鸟申请的方式给部分国际版用户尝过鲜了。Zoho CRM即将推出图表视图&#xff0c;将原始数据转换为直观的图表…

低代码开发平台-企业级可视化快速开发工具

一、你们是否也遇到了以下问题 &#xff08;1&#xff09;作为传统型的软件公司&#xff0c;你们是否也遇到以下困扰&#xff1a; &#xff08;2&#xff09;作为大型企业软件开发部&#xff0c;你们是否也遇到以下困扰&#xff1a; 二、低代码平台介绍 MSPF快速开发平台是一…

​如何使用 ArcGIS Pro 分析爆炸波及建筑

假设在某栋建筑内发生了爆炸&#xff0c;需要根据爆炸的范围分析出来波及的建筑&#xff0c;对于这一需求&#xff0c;我们可以通过ArcGIS Pro来实现&#xff0c;这里为大家介绍一下分析的方法&#xff0c;希望能对你有所帮助。 数据来源 教程所使用的数据是从水经微图中下载…

C语言数据类型范围概述

int范围: -2147483648~2147483647 (-2^31~2^31-1) unsigned int范围: 0~4294967295 (0~2^32-1) long 范围:-2147483648~2147483647 (-2^31~2^31-1) long long 范围: -9223372036854775808&#xff5e; 9223372036854775808(-2^63~2^63-1)

30个Linux性能问题诊断思路

文章目录 在Linux系统性能问题诊断过程中&#xff0c;有许多关键的检查点和技术可以用来识别潜在的问题源头。以下是30个Linux性能问题诊断思路的概览&#xff0c;包括但不限于&#xff1a; 系统负载监控&#xff1a; 使用uptime查看当前系统运行时间、在线用户数以及1/5/15分钟…

系列学习前端之第 5 章:学习 ES6 ~ ES11

1、什么是 ECMAScript ECMAScript 是由 Ecma 国际通过 ECMA-262 标准化的脚本程序设计语言。 从第 6 版开始&#xff0c;发生了里程碑的改动&#xff0c;并保持着每年迭代一个版本的习惯。 ES62015年&#xff0c;ES72016年&#xff0c;ES82017年&#xff0c;ES92018年&#…

数据库板块

数据库软件: 关系型数据库: Mysql Oracle SqlServer Sqlite 非关系型数据库&#xff1a; Redis NoSQL 1.数组、链表、文件、数据库 数组、链表: 内存存放数据的方式(代码运行结束、关机数据丢失) 文件、数据…

MathType2024官方原版补丁包下载

MathType 7是一款功能强大的数学公式编辑器&#xff0c;广泛应用于各种文档和演示中&#xff0c;用于创建和编辑复杂的数学公式。下面我将详细介绍MathType 7的主要功能和使用方法&#xff0c;以及一些使用技巧。 一、主要功能 公式编辑&#xff1a;MathType 7提供了一个直观…

VS 调试Hololens 2工程报错 有未经处理的异常: Microsoft C++ 异常:

原因是unity 少安装了XR工具包 安装完后重新用unity打包&#xff0c;然后vs打开打包出来的工程&#xff0c;电脑和眼镜用usb连接&#xff0c;直接运行调试就可以了

养鸭场的污水怎么处理

养鸭场的污水怎么处理 养鸭场废水处理是现代农业管理中至关重要的环节之一。随着养殖业规模的扩大和环保要求的提高&#xff0c;有效处理养鸭废水已成为一个迫切的挑战。本文将介绍养鸭场废水的特点及处理方法&#xff0c;并重点讨论各种先进的废水处理设备&#xff0c;包括生物…

word中图片位置问题(后续遇到问题再更新)

问题1&#xff1a;图片插入后显示不全 具体表现为&#xff1a;复制黏贴、或者插入图片后&#xff0c;出现插入的图片显示不全&#xff0c;或者不显示。 例如&#xff1a; 这是因为&#xff1a;图片被设定了固定行距 解决方案&#xff1a;ctrl1 效果&#xff1a; 问题2&am…

Elasticsearch进阶篇(一):Elasticsearch写入原理深入详解

Elasticsearch写入原理深入详解 1. ES相关问题 引用官方文档地址&#xff1a;分片内部原理 | Elasticsearch: 权威指南 | Elastic 为什么Elasticsarch是近实时&#xff0c;而不是准实时&#xff1f; 为什么文档的CRUD (创建-读取-更新-删除) 操作是实时的&#xff1f; Elast…

FineReport报表如何在单元格中显示本地图片(图片地址已存储到MySQL数据库中)

帆软帮助文档对应查看链接&#xff1a;https://help.fanruan.com/finereport/doc-view-854.html?source4#需求&#xff1a;在设计FineReport报表时&#xff0c;想在单元格中显示图书信息对应的图片&#xff0c;图片路径已存储到MySQL数据库中 一、查询数据库 查询MySQL中图书…

为什么defineProps宏函数不需要从vue中import导入?

前言 我们每天写vue代码时都在用defineProps&#xff0c;但是你有没有思考过下面这些问题。为什么defineProps不需要import导入&#xff1f;为什么不能在非setup顶层使用defineProps&#xff1f;defineProps是如何将声明的 props 自动暴露给模板&#xff1f; 举几个例子 我们…