Linux安装最新版Docker完整教程

news2024/11/28 4:37:24

参考官网地址:Install Docker Engine on CentOS | Docker Docs

一、安装前准备工作

1.1 查看服务器系统版本以及内核版本
cat /etc/redhat-release
1.2 查看服务器内核版本
uname -r


这里我们使用的是CentOS 7.6 系统,内核版本为3.10

1.3 安装依赖包
yum install -y yum-utils

1.4 设置阿里云镜像源
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

二、安装Docker


2.1 Docker版本说明
Docker从17.03版本之后分为两个版本:社区版(Community Edition,缩写为 CE)和企业版(Enterprise Edition,缩写为 EE)。
企业版包含了一些收费服务,个人开发者一般用不到,所以我们只需要安装社区版docker-ce版本即可。
2.2 docker-ce安装
yum install -y docker-ce

2.3 启动 Docker。
$ sudo systemctl start docker
 2.4通过运行映像来验证 Docker 引擎安装是否成功。hello-world
sudo docker run hello-world

此命令下载测试映像并在容器中运行它。当 容器运行,它打印确认消息并退出。

2.5 启动docker并设置开机自启
#启动docker命令
systemctl start docker
#设置开机自启命令
systemctl enable docker
#查看docker版本命令
docker version

三、Docker基本概念介绍

3.1 仓库 (repository)
docker仓库是用来保存镜像的地方。镜像构建完成后,可以直接在当前宿主机上运行,但是如果需要在其它服务器上使用这个镜像,
就需要一个集中存储、分发镜像的服务,docker仓库就是这样的一个服务。
3.2 镜像(Image)
这里面保存了应用和需要的依赖环境,比如运行的runtime和webapp等。
为什么需要多个镜像?当开发、构建和运行容器化应用程序时,我们通常会有不同优先级。通过为这些独立的任务提供不同镜像 
3.3 容器(Container)
镜像的实例。一个容器代表一个正在运行的应用程序、进程或服务。它由 Docker 镜像、执行环境和标准指令集组成。需要扩展服务时,才
真正将镜像跑起来的东西,镜像在容器里面。可以看作是一个完全隔离的盒子。一个容器镜像实例代表一个独立的进程。

四、使用Dockerfile构建镜像



这一部分可搜索“使用Dockerfile构建镜像”相关文章,这里我就随便粘贴一篇使用Dockerfile构建镜像及构建流程、操作指令详解_dockerfile构建镜像后里面的数据库变量还有用?-CSDN博客

五、Docker常用命令

docker search --镜像名    搜索仓库镜像

docker pull --镜像名    拉取镜像

docker ps     查看目前正在运行的所有容器 (-a 显示包括已经停止的容器)

docker rmi image_id/image_name    删除镜像

docker build    使用Dockerfile创建镜像

docker run    运行容器

docker exec    进入容器中执行命令 (例如:docker exec -it  container_id/container_name /bin/bash)

docker logs  container_id/container_name   查看容器日志(例如:docker logs -f -t --tail 10 container_id )

docker start  container_id/container_name    启动容器

docker restart  container_id/container_name    重启容器

docker stop container_id/container_name    停止容器

docker rm container_id/container_name    删除容器(只能删除已停止的容器)

更多的命令可以通过docker help命令来查看。

六、安装Docker可视化管理工具Portainer

5.1 搜索镜像
docker search portainer

5.2 拉取镜像
#拉取镜像命令
docker pull portainer/portainer
#查看镜像命令
docker images

5.3 运行镜像(启动Portainer容器)
#创建数据卷
docker volume create portainer_data
#启动容器
docker run -d -p 9000:9000 --restart=always --name prtainer -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer
#查看启动中的容器
docker ps

启动参数说明:

-it  输出容器命令行的内容 即容器的自身的程序输出在控制台 有点类似前台运行

-d  和it相反  隐藏后台运行

-p  端口映射 9000::9000 外部(宿主机)端口:镜像里面运行的端口 将宿主机9000端口映射到镜像里面的9000端口

--restart  重启方式:always跟随docker自启

--name  启动后的容器名称

-v  挂载容器数据卷

--network  连接到某个网络(例如:--network test_net)

--network-alias  容器的网络名称(例如:--network-alias portainer)

 

5.4 访问Portainer客户端

访问地址:http://192.168.0.128:9000,首次访问需要设置admin管理员登录密码

可查看我们的镜像

查看我们的容器

 七、Docker Compose

用途 

Docker Compose 的主要用途是简化多容器应用程序的部署流程。它允许开发者使用一个单一的命令来启动由多个容器组成的整个应用程序,而不需要分别启动每个容器。此外,它还支持配置服务之间的依赖关系、网络连接、数据卷挂载等,使得整个部署过程更加清晰和易于管理。

使用方法

使用 Docker Compose 的基本步骤如下:

  1. 安装 Docker Compose:首先需要在系统上安装 Docker Compose。可以访问 Docker 官方网站查看安装指南。(参考链接:https://www.cnblogs.com/goloving/p/16253880.html)
  2. 创建 docker-compose.yml 文件:在这个文件中定义应用程序的服务、网络和卷。每个服务可以包含镜像、端口映射、环境变量、数据卷等配置。 (参考链接:Docker Compose | 菜鸟教程   https://www.cnblogs.com/crazymakercircle/p/15505199.html)
  3. 运行 Docker Compose 命令:使用 docker-compose up 命令来启动定义在 docker-compose.yml 文件中的所有服务。可以使用 -d 参数在后台运行服务。 (参考链接:Docker Compose | 菜鸟教程   https://www.cnblogs.com/crazymakercircle/p/15505199.html)
  4. 管理服务:可以使用 docker-compose down 来停止并删除容器、网络和卷,或者使用 docker-compose startdocker-compose stopdocker-compose restart 等命令来管理服务。 (参考链接:Docker Compose | 菜鸟教程   https://www.cnblogs.com/crazymakercircle/p/15505199.html)

使用例子

假设我们需要部署一个包含 Web 服务器和数据库的简单应用程序。我们可以创建一个如下的 docker-compose.yml 文件:
 

version: '3.7'  # 使用的 Compose 文件版本
services:  # 定义服务
  web:  # 服务名称
    image: nginx:latest  # 使用的镜像
    ports:
      - "8080:80"  # 端口映射,宿主机端口:容器端口
    volumes:
      - ./index.html:/usr/share/nginx/html/index.html  # 挂载当前目录下的 index.html 到容器中的指定位置
  db:  # 另一个服务
    image: mysql:5.7
    environment:
      MYSQL_ROOT_PASSWORD: example  # 设置环境变量,这里为数据库的 root 密码
    volumes:
      - db_data:/var/lib/mysql  # 挂载数据卷,保持数据持久化
volumes:  # 定义数据卷
  db_data:  # 数据卷名称

保存文件后,我们只需在终端中运行 docker-compose up 命令,Docker Compose 就会根据 docker-compose.yml 文件中的配置来创建并启动服务。这样,我们就可以通过访问 http://localhost:8080 来看到由 Nginx 服务器提供的网页,并且后端数据库也已经准备就绪

八、卸载Docker 

#删除docker-ce命令
yum remove docker-ce
#删除镜像、容器、配置文件等内容
rm -rf /var/lib/containerd
rm -rf /var/lib/docker

#官网给出的卸载方式
sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

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

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

相关文章

c++20协程详解(四)

前言 到这就是协程的最后一节了。希望能帮到大家 代码 到这里我们整合下之前二、三节的代码 #include <coroutine> #include <functional> #include <chrono> #include <iostream> #include <thread> #include <mutex> #include <me…

政安晨【AIGC实践】(一):在Kaggle上部署使用Stable Diffusion

目录 简述 开始 配置 执行 安装完毕&#xff0c;一键运行 结果展示 政安晨的个人主页&#xff1a;政安晨 欢迎 &#x1f44d;点赞✍评论⭐收藏 收录专栏: 人工智能数字虚拟世界实践 希望政安晨的博客能够对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提…

spring加载类初始化顺序

今天看spring官网的时候&#xff0c;提到了Ordered执行顺序。我当时记得PostConstruct注解会在bean加载后执行&#xff0c;现在又来了一个执行顺序&#xff0c;直接给我整蒙了。 于是我写了一个简单的dom来看看&#xff0c;它是什么&#xff1a; Service("t2ServerImpl&q…

Vue - 你知道Vue中key的工作原理吗

难度级别:中级及以上 提问概率:80% 在Vue项目开发中,并不推荐使用索引做为key,以为key必须是唯一的,可以使用服务端下发的唯一ID值,也不推荐使用随机值做为key,因为如果每次渲染都监听到不一样的key,那么节点将无法复用,这与Vue节省…

中药提取物备案数据库<5000+中药提取物>

NMPA中药提取物备案数据库的建立是确保中药提取物质量安全、规范生产行为、加强监管、保障公众用药安全、促进产业发展和国际化的重要措施。 通过查询中药提取物备案信息我们能了解到中药提取物的实用备案号、药品通用名称、药品生产企业、批准文号、备案日期、备案状态、中药…

分表?分库?分库分表?实践详谈 ShardingSphere-JDBC

如果有不是很了解ShardingSphere的可以先看一下这个文章&#xff1a; 《ShardingSphere JDBC?Sharding JDBC&#xff1f;》基本小白脱坑问题 阿丹&#xff1a; 在很多开发场景下面&#xff0c;很多的技术难题都是出自于&#xff0c;大数据量级或者并发的场景下面的。这里就出…

【LeetCode刷题记录】11. 盛最多水的容器

11 盛最多水的容器 给定一个长度为 n 的整数数组 height。有 n 条垂线&#xff0c;第 i 条线的两个端点是 ( i , 0 ) (i, 0) (i,0)和 ( i , h e i g h t [ i ] ) (i, height[i]) (i,height[i]) 。 找出其中的两条线&#xff0c;使得它们与 x 轴共同构成的容器可以容纳最多的…

MySQL学习路线一条龙

引言 在当前的IT行业&#xff0c;无论是校园招聘还是社会招聘&#xff0c;MySQL的重要性不言而喻。 面试过程中&#xff0c;MySQL相关的问题经常出现&#xff0c;这不仅因为它是最流行的关系型数据库之一&#xff0c;而且在日常的软件开发中&#xff0c;MySQL的应用广泛&#…

数字人直播系统是什么?AI数字人直播间搭建方法来了!

无人直播的时代&#xff0c;短视频和直播平台正在风口&#xff0c;各条赛道内也早已人满为患&#xff0c;很多线下商家都想参与其中&#xff0c;因为时间、地方、设备等限制久久不能去实行起来。所以&#xff0c;数字人直播新模式成为了线下商家的救星&#xff0c;线下商家方法…

unity_Button:单击的三种实现方式

此代码直接绑定到button上面无需其他操作 using UnityEngine; using UnityEngine.UI;public class PrintHelloOnButtonClick : MonoBehaviour {private Button button;void Start(){// 获取当前GameObject上的Button组件button GetComponent<Button>();// 添加点击事件…

探索基于WebRTC的有感录屏技术开发流程

title: 探索基于WebRTC的有感录屏技术开发流程 date: 2024/4/7 18:21:56 updated: 2024/4/7 18:21:56 tags: WebRTC录屏技术屏幕捕获有感录屏MediaStream实时传输音频录制 第一章&#xff1a;技术原理 WebRTC&#xff08;Web Real-Time Communication&#xff09;是一种开放源…

什么是FIG图片格式?如何把jpg图片转FIG格式?

一&#xff0c;什么是FIG图片格式 FIG图片格式&#xff0c;全称为Figma Image Format&#xff0c;是一种由Figma设计软件专用的图像格式。Figma是一款强大的在线协作设计工具&#xff0c;广泛应用于UI/UX设计、产品设计和图标设计等领域。 二&#xff0c;FIG图片格式的优点 …

Prometheus服务发现与监控案例-Day 02

1. 服务发现简介 prometheus采用pull方式拉取指定目标实例的监控数据&#xff0c;也就是间隔固定的周期去目标实例上抓取metrics数据&#xff0c;每一个被抓取的目标实例都需要暴露一个数据指标API接口&#xff0c;prometheus通过这个暴露的接口就可以获取到其指标数据. 这种方…

MySQL基础练习题:习题2-3

这部分主要是为了帮助大家回忆回忆MySQL的基本语法&#xff0c;数据库来自于MySQL的官方简化版&#xff0c;题目也是网上非常流行的35题。这些基础习题基本可以涵盖面试中需要现场写SQL的问题。上期帮助大家建立数据库&#xff0c;导入数据&#xff0c;接下来让我们继续练习。 …

51单片机入门_江协科技_17~18_OB记录的笔记

17. 定时器 17.1. 定时器介绍&#xff1a;51单片机的定时器属于单片机的内部资源&#xff0c;其电路的连接和运转均在单片机内部完成&#xff0c;无需占用CPU外围IO接口&#xff1b; 定时器作用&#xff1a; &#xff08;1&#xff09;用于计时系统&#xff0c;可实现软件计时&…

【LeetCode热题100】74. 搜索二维矩阵(二分)

一.题目要求 给你一个满足下述两条属性的 m x n 整数矩阵&#xff1a; 每行中的整数从左到右按非严格递增顺序排列。每行的第一个整数大于前一行的最后一个整数。 给你一个整数 target &#xff0c;如果 target 在矩阵中&#xff0c;返回 true &#xff1b;否则&#xff0c;…

GD32F470_US-016 模拟电压输出 双量程 模拟量 超声波测距模块 高精度

2.18 US-016电压式超声波测距传感器 US-016是市场上唯有的一款模拟量输出的超声波测距模块&#xff0c;输出的模拟电压和距离值成正比&#xff0c;可以方便的和其他系统相连&#xff0c;US-016工作稳定可靠。 US-016超声波测距模块可实现2cm~3m的非接触测距功能&#xff0c;供…

Android 9.0 framework层实现app默认全屏显示

1.前言 在9.0的系统rom产品定制化开发中,在对于第三方app全屏显示的功能需求开发中,需要默认app全屏显示,针对这一个要求,就需要在系统启动app 的过程中,在绘制app阶段就设置全屏属性,接下来就实现这个功能 效果图如下: 2.framework层实现app默认全屏显示的核心类 fram…

红黑树深度解析:RB-DELETE操作的理论与实践

红黑树深度解析&#xff1a;RB-DELETE操作的理论与实践 一、前言二、红黑树的核心性质三、RB-DELETE的过程四、RB-DELETE的实现细节五、RB-DELETE的复杂性分析六、维护红黑树性质的重要性七、代码示例7.1 伪代码7.2 C代码示例 八、结论 一、前言 在现代计算机科学中&#xff0…

备忘,LangChain建立本地知识库的几个要点

本地知识库可以解决本地资源与AI结合的问题&#xff0c;为下一步应用管理已有资产奠定基础。 本地知识库的建立可参考LangChain结合通义千问的自建知识库 &#xff08;二&#xff09;、&#xff08;三&#xff09;、&#xff08;四&#xff09; 本文主要记录两个方面的问题 1 搭…