Docker学习笔记(二):在Linux中部署Docker(Centos7下安装docker、环境配置,以及镜像简单使用)

news2024/11/26 5:54:29

一、前言

记录时间 [2024-4-6]


前置文章:Docker学习笔记(一):入门篇,Docker概述、基本组成等,对Docker有一个初步的认识

在上文中,笔者进行了Docker概述,介绍其历史、优势、作用,以及基本组成。通过此,相信大家对Docker有了一个初步的认识。接下来就进入Docker的安装、环境配置,和简单使用了。

文章为零基础学习Docker做了一些准备:

  • Docker学习视频(狂神说系列)
  • Docker官方文档(官方文档超级详细)
  • Docker远程仓库(相当于镜像商店)
  • Docker参考笔记(一篇实用型Docker笔记)
  • Linux云服务器/虚拟机(文章中使用了阿里云服务器,创建虚拟机参考这个)
  • FinalShell远程连接工具(下载地址,选择Windows版本,安装就默认步骤,如果提示安装WinPcap那就装一下咯)

二、Docker 安装前准备

1. 安装 Centos7 系统


将服务器/虚拟机的操作系统设置成Centos7,注意版本选择7,查文档可知CentOS 7Docker Engine安装所需要的。

在这里插入图片描述


版本选择完毕后,设置远程连接,选择root权限连接,即Workbench密码登录(初次使用要设置下密码)。这一步主要是为后面连接FinalShell做准备。

虚拟机可以连接FinalShell,也可以在VMware软件中直接运行操作。


2. 连接 FinalShell


启动FinalShell,点击新标签页左侧的文件夹标识,再选择白色文件夹,新建SSH连接。

在这里插入图片描述


在新建SSH连接界面,输入主机IP,即服务器/虚拟机的IP地址,服务器IP地址选公网,虚拟机启动后输入如下命令查看。

ip addr show

然后输入用户名和密码,点击确定。然后快速连接即可。

在这里插入图片描述


3. 系统环境查看


查看系统内核:

uname -r

结果如下:

# 系统内核是 3.10 以上
[root@hostname ~]# uname -r
3.10.0-957.21.3.el7.x86_64

查看系统版本:

cat /etc/os-release

结果如下:

# 系统版本
[root@hostname ~]# cat /etc/os-release
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"

CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"

三、Docker 安装和配置

1. 卸载旧版本


如果之前安装过旧版本Docker的话,先进行卸载:

注意:命令中的斜杠\是在一条命令没写完但是要进行换行情况下使用,如果命令写在同一行就不需要斜杠。

yum remove docker \
           docker-client \
           docker-client-latest \
           docker-common \
           docker-latest \
           docker-latest-logrotate \
           docker-logrotate \
           docker-engine

2. 通过仓库安装

Install using the rpm repository.

下载需要的安装包

yum install -y yum-utils

设置镜像仓库

官方仓库如下:(不推荐,下载东西超级慢)

yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

设置阿里云镜像:(推荐)

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

更新 yum 索引

yum makecache fast

安装 Docker

最新版:

# docker-ce 社区版   ee 企业版
yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

如果想要安装其他版本,就附带版本号VERSION_STRING

yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io docker-buildx-plugin docker-compose-plugin

3. 启动 Docker

systemctl start docker

4. 查看 Docker 版本

docker version

使用docker version查看是否安装成功

[root@hostname ~]# docker version
Client: Docker Engine - Community
 Version:           26.0.0
 API version:       1.45
 Go version:        go1.21.8
 ...

Server: Docker Engine - Community
 Engine:
  Version:          26.0.0
  API version:      1.45 (minimum version 1.24)
  Go version:       go1.21.8
  ...

5. 卸载 Docker(了解)

# 1. 卸载依赖
yum remove docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras

# 2. 删除资源
rm -rf /var/lib/docker
rm -rf /var/lib/containerd

# /var/lib/docker 为 docker 的默认工作路径

6. 阿里云镜像加速(非必要)


这一步推荐安装1.10.0以上版本的Docker客户端使用。可以更快地下载镜像。

登录阿里云,选择容器镜像服务,找到镜像加速器,根据文档配置即可。

在这里插入图片描述


# registry-mirrors 中写入加速器地址,每个人的都不一样

# 1. 打开配置文件目录
sudo mkdir -p /etc/docker

# 2. 编辑配置文件
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://......"]
}
EOF

# 3. 重启服务
sudo systemctl daemon-reload

# 4. 重启 Docker
sudo systemctl restart docker

四、简单测试 hello-world

1. 具体操作


测试命令:

docker run hello-world

我们来观察一下hello-world的实现过程:

[root@hostname ~]# docker run hello-world

# 1. 本地没找到 hello-world 镜像
Unable to find image 'hello-world:latest' locally

# 2. 远程仓库拉取 hello-world 镜像
latest: Pulling from library/hello-world

# 3. 签名信息:拉取完成
2db29710123e: Pull complete 
Digest: sha256:2498fce14358aa50ead0cc6c19990fc6ff866ce72aeb5546e1d59caac3d0d60f
Status: Downloaded newer image for hello-world:latest

# 4. 运行 hello-world 成功
Hello from Docker!
This message shows that your installation appears to be working correctly.

2. 查看镜像


查看hello-world镜像:

docker images

结果如下:

[root@hostname ~]# docker images
REPOSITORY            TAG       IMAGE ID       CREATED       SIZE
hello-world           latest    feb5d9fea6a5   2 years ago   13.3kB

五、镜像运行流程


在这里插入图片描述


六、Docker 底层原理


Docker如何工作?

  • 如图,Docker是一个Client-Server结构的系统,Docker的守护进程运行在主机上,客户端通过Socket访问。
  • Docker-Server接收到Docker-Client的指令,就会执行这个命令。

在这里插入图片描述


七、总结


本文讲述了LinuxDocker的安装、环境配置,和简单使用。还介绍了镜像运行流程和Docker底层原理,讲述了Centos7系统镜像的设置,讲述了FinalShell远程连接云服务器/虚拟机的方式。接下来是关于Docker使用的基本命令。


一些参考资料

狂神说系列Docker教程:https://www.bilibili.com/video/BV1og4y1q7M4/
Docker参考笔记:https://blog.csdn.net/qq_58141314/article/details/131020932
Docker官网:https://www.docker.com/
Docker官方文档:https://docs.docker.com/engine/install/centos/
Docker远程仓库:https://hub.docker.com/
FinalShell下载:http://www.hostbuf.com/t/988.html
阿里云网址:https://www.aliyun.com/

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

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

相关文章

Linux:软件包管理器 - yum

Linux&#xff1a;软件包管理器 - yum Linux的软件安装方式源代码安装rpm包安装yum安装 yum三板斧yum listyum installyum remove yum生态yum源 Linux的软件安装方式 源代码安装 在Linux下安装软件, 一个通常的办法是下载到程序的源代码, 并进行编译, 得到可执行程序 源代码安…

python+Flask+django企业仓库进销存管理信息系统35wiz

Flask提供了更大的灵活性和简单性&#xff0c;适合小型项目和微服务。Django则提供了更多的内置功能&#xff0c;适合大型项目。Flask让开发者更多的控制其组件&#xff0c;而Django则遵循开箱即用的原则 本课题使用Python语言进行开发。代码层面的操作主要在PyCharm中进行&am…

五大背景图光线手法,附大量案例,可下载原图。

2023-10-01 23:05贝格前端工场 在背景图设计中&#xff0c;使用光线效果可以帮助营造科技感。以下是一些使用光线来表现科技感的设计技巧&#xff1a; 线性光源&#xff1a;使用线性光源可以在背景图中创建出明亮的光线效果。可以在设计中添加一条或多条线性光源&#xff0c;然…

Docker Nginx 部署Vue项目

先弄个ngix镜像&#xff0c;还原到linux里面 发布包放的位置 nginx配置文件 server {listen 8049;server_name localhost;#charset koi8-r;access_log /var/log/nginx/host.access.log main;error_log /var/log/nginx/error.log error;location / {# root 根目录&a…

全速前进:2024年MAD(机器学习,人工智能和数据)前景(20000字长文)

THE 2024 MAD (MACHINE LEARNING, ARTIFICIAL INTELLIGENCE & DATA) LANDSCAPE 是FirstMark对数据、分析、机器学习和人工智能生态系统的第十次年度展望和「现状」描述 。 在这个领域的10多年里&#xff0c;事情从来没有像今天这样令人兴奋和充满希望。我们多年来描述的所…

[STM32+HAL]DengFOC移植之闭环位置控制

一、源码来源 DengFOC官方文档 二、HAL库配置 1、开启硬件IIC低速模式 低速更稳定 2、PWM波开启 三、keil填写代码 1、AS5600读取编码器数值 #include "AS5600.h" #include "math.h"float angle_prev0; int full_rotations0; // full rotation trac…

Day37|贪心算法part06:738.单调递增的数字、968. 监控二叉树、贪心总结

738. 单调递增的数字 总体思想就是从后往前遍历&#xff0c;比较第i位和第i1位的大小&#xff0c;不符合顺序char[i]减1&#xff0c;i1位填9&#xff0c;找到需要填9的最先位置&#xff0c;然后填9。 class Solution {public int monotoneIncreasingDigits(int n) {String s …

负荷预测 | Matlab基于TCN-BiGRU-Attention单输入单输出时间序列多步预测

目录 效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.Matlab基于TCN-BiGRU-Attention单输入单输出时间序列多步预测&#xff1b; 2.单变量时间序列数据集&#xff0c;采用前12个时刻预测未来96个时刻的数据&#xff1b; 3.excel数据方便替换&#xff0c;运行环境matlab…

领域驱动设计(DDD)学习心得

领域驱动设计&#xff08;DDD&#xff09; 领域驱动设计是一种用于复杂软件系统的软件开发方法论。它强调与软件所服务的业务领域的专家紧密合作&#xff0c;通过深入理解业务领域的复杂性&#xff0c;来构建能够反映业务逻辑的领域模型。DDD的核心思想包括以下几点&#xff1…

你会写SAP技术规格说明书(Specification)吗

有些小伙伴可能还在发愁技术规则说明书应该写什么&#xff0c;做了张思维导图&#xff0c;包含了所有RICEFW。 R - Report - 报表 I - Interface - 接口 C - Conversion - 数据转换 E - Enhancement - 增强 F - Form - 表单 W - Workflow - 工作流

深度学习基础之一:机器学习

文章目录 深度学习基本概念(Basic concepts of deep learning)机器学习典型任务机器学习分类 模型训练的基本概念基本名词机器学习任务流程模型训练详细流程正、反向传播学习率Batch size激活函数激活函数 sigmoid激活函数 softmax & tanh(双曲正切)激活函数 ReLU激活函数 …

深耕国际舞台丨拓数派受邀参与美国 Postgres Conference 2024

在北美地区备受瞩目 Postgres Conference 2024 大会将于4月17日在美国 San Jose 希尔顿举行。拓数派作为立足中国的高科技创新企业&#xff0c;也同时致力于国际开源技术和生态的深耕。本次美国 Postgres Conference 2024 大会中&#xff0c;拓数派将作为黄金赞助商&#xff0c…

Qt | 信号与槽 原理、连接、断开(面试无忧)

1、信号和槽是用于对象之间的通信的,这是 Qt 的核心。为此 Qt 引入了一些关键字,他们是slots、signals、emit,这些都不是 C++关键字,是 Qt 特有的,这些关键字会被 Qt 的 moc转换为标准的 C++语句。 2、Qt 的部件类中有一些已经定义好了的信号和槽,通常的作法是子类化部件…

Vue 工程化开发入门

目录 1. 工程化开发 1.1. 工程化开发模式介绍 1.2. 工程化开发模式下出现的问题&#xff1a; 1.3. 工程化开发模式下出现的问题的解决方法 2. 脚手架Vue CLI 2.1. 脚手架Vue CLI 基本介绍 2.2. 脚手架Vue CLI 的好处 2.3. 脚手架Vue CLI 的使用步骤 2.4. 脚手架目录文…

从大量数据到大数据,King’s SDMS仪器数据采集及科学数据管理系统的应用

对于实验室或检测机构&#xff0c;仪器设备是所有业务开展的基础&#xff0c;数据则是核心命脉&#xff0c;而传统的仪器设备原始数据收集方式&#xff0c;效率低耗时长、操作流程不规范、不易保存与查找、错误率高、易篡改等成了制约检测机构持续高速发展的瓶颈和弊端&#xf…

在线课程平台LearnDash评测 – 最佳 WordPress LMS插件

在我的LearnDash评测中&#xff0c;我探索了流行的 WordPress LMS 插件&#xff0c;该插件以其用户友好的拖放课程构建器而闻名。我深入研究了各种功能&#xff0c;包括课程创建、测验、作业、滴灌内容、焦点模式、报告、分析和管理工具。 我的评测还讨论了套餐和定价选项&…

初学网络编程

网络编程是指编写能够在网络环境中运行&#xff0c;进行数据通信的程序的过程。它涵盖了从建立网络连接、发送和接收数据&#xff0c;到关闭连接等一系列操作。网络编程是开发网络应用程序的基础&#xff0c;它使得不同的计算机和设备能够通过网络进行数据交换和通信。 三个核…

Imagination APXM-6200 CPU:性能卓越,安全可信

随着消费类和工业应用行业的不断发展&#xff0c;对创新性能和效率的需求永不停歇&#xff0c;我们自豪地推出旗下 Catapult CPU 系列的第二款产品&#xff1a;Imagination APXM-6200 CPU 。这款 64 位的高效 RISC-V 应用处理器具有强大的 AI 功能及性能密度&#xff0c;能够为…

前端处理model.addtribute传来的值

比如开始时间和结束时间&#xff0c;后端传来的样式为 model.addAttribute("startDate", startDate); model.addAttribute("endDate", endDate); 前端接收为 [[${startDate}]]-[[${endDate}]] 如果前端为地图类型的echarts <script>var sitepvs …

B站大数据平台元数据业务分享

背景介绍 元数据是数据平台的衍生数据&#xff0c;比如调度任务信息&#xff0c;离线hive表&#xff0c;实时topic&#xff0c;字段信息&#xff0c;存储信息&#xff0c;质量信息&#xff0c;热度信息等。在数据平台建设初期&#xff0c;这类数据主要散落于各种平台子系统的数…