【Docker】概述与安装

news2024/12/23 14:33:02

🥳🥳Welcome Huihui's Code World ! !🥳🥳

接下来看看由辉辉所写的关于Docker的相关操作吧

目录

🥳🥳Welcome Huihui's Code World ! !🥳🥳

一. Docker的概述

1.Docker为什么出现

2.Docker是什么

3.Docker有什么作用

4.Docker三要素

5.Docker和虚拟机的区别

二.Docker的安装

1.检查内核版本

2.卸载可能存在的旧版本

3.安装必要的系统工具

4.添加docker-ce安装源

5.更新yum缓存

6.安装docker-CE

三.Docker基本使用 

1.基本操作

(1)查看服务状态

(2)启停服务

①开启服务

②停止服务

③重启服务

(3)开机自启

(4)开机不自启

2.镜像的相关操作

(1)查看是否有镜像

(2)下载镜像

①配置加速器

②下载镜像

(3)查看宿主机上的镜像

(4)删除镜像

3.容器相关的操作

(1)创建容器

(2)启动容器

(3)停止容器

(4)重启容器

(5)查看当前的容器

(6)删除容器

(7)进入容器

(8)退出容器


一. Docker的概述

1.Docker为什么出现

        我们在开发过程中,可能经常会遇到这种问题。当项目中自己负责的模块完成时,每个工程师都会使用自己的开发环境来构建和测试应用程序。这就会导致一个常见的问题:当一个工程师将代码提交给源代码管理系统后,另一个工程师在拉取代码并尝试构建时,经常会遇到依赖项不一致的问题。有时候,即使两个工程师使用相同的依赖版本,由于操作系统或系统库的差异,也会导致应用程序在不同环境中表现出不同的行为

        同时,公司的运维团队在部署应用程序时也遇到了一些问题。他们使用了一些脚本和配置文件来手动安装和配置应用程序的依赖项。这个过程非常耗时且容易出错,导致了频繁的部署失败和生产环境中的故障。

        于是就有人想到将应用程序及其所有依赖打包到一个容器中。这个容器包含了应用程序所需的所有运行时环境、库和配置文件。通过使用这个容器,就可以确保每个开发人员、测试人员和运维人员都使用相同的容器来工作,消除了因为环境差异而导致的兼容性问题。这个容器就是Docker

2.Docker是什么

        上面也讲到了Docker的定义,但是这里我再详细的描述一下Docker。

         Docker是一种开源的容器化平台,它可以让开发者将应用程序及其所有依赖项打包到一个轻量级、可移植的容器中,并在任何地方运行这些容器,无论是在开发、测试还是生产环境中。Docker使用了Linux容器技术来实现这个功能,通过隔离进程、文件系统和网络空间等资源,使得容器内的应用程序可以独立于宿主操作系统而运行。       

3.Docker有什么作用

  1. 轻量级和可移植性:Docker使用容器化技术,将应用程序及其所有依赖项打包到一个轻量级的容器中。这使得容器可以在不同的环境中运行,而不受宿主操作系统和硬件的影响。容器可以在开发、测试和生产环境之间进行快速、一致和可靠的部署。

  2. 环境隔离:Docker通过使用Linux容器技术,实现了应用程序与宿主操作系统之间的隔离。这意味着每个Docker容器都具有独立的文件系统、进程空间和网络栈,相互之间不会产生干扰。这种隔离性使得开发人员可以在同一台机器上同时运行多个容器,而不必担心它们之间的冲突和依赖关系。

  3. 一致性和可重复性:Docker镜像是一个只读的模板,其中包含了应用程序及其所有的依赖项、运行时环境、库和配置文件等。通过使用Docker,开发者可以确保每个人都使用相同的镜像来构建和运行应用程序,消除了因为环境差异而导致的兼容性问题。这种一致性和可重复性使得团队成员可以更加方便地共享和协作。

  4. 快速部署和扩展:Docker提供了一系列强大的工具和功能来简化应用程序的部署和扩展过程。通过使用Docker镜像,开发者可以快速创建新的容器,并将其部署到任何支持Docker的主机上。此外,Docker还提供了容器编排工具,如Docker Compose和Kubernetes,可以自动化应用程序的扩展、负载均衡和故障恢复等操作。

  5. 版本控制和回滚:Docker镜像可以被版本控制系统管理,使得开发者可以轻松地跟踪和管理应用程序的不同版本。如果出现问题,开发者可以快速回滚到之前的版本,以避免影响生产环境。

在Docker出现之前,我们都是使用虚拟机来测试和部署项目的,但使用虚拟机也会有弊端。在同一台物理机上运行多个虚拟机时,会导致资源竞争,降低系统性能等。但是Docker就不一样了...

4.Docker三要素

 Docker的核心组件包括Docker仓库、Docker镜像和Docker容器。

  • Docker仓库是集中存放镜像文件的场所。 仓库分为公开仓库(Public)和私有仓库(Private)两种形式。 最大的公开仓库是 Docker Hub,存放了数量庞大的镜像供用户下载。           
  • Docker镜像是一个只读的模板,其中包含了应用程序及其所有依赖项、运行时环境、库和配置文件等。【Docker 提供了一个很简单的机制来创建镜像或者更新现有的镜像,用户甚至可以直接从其他人那里下载 一 个已经做好的镜像来直接使用。
  • Docker容器则是从Docker镜像创建的运行实例,它可以被启动、停止、重启、删除等。

5.Docker和虚拟机的区别

  • VM(VMware)在宿主机器、宿主机器操作系统的基础上创建虚拟层、虚拟化的操作系统、虚拟化的仓 库,然后再安装应用;
  • Container(Docker容器),在宿主机器、宿主机器操作系统上创建Docker引擎,在引擎的基础上再安装 应用。

二.Docker的安装

Docker的安装是在虚拟机上操作的,关于虚拟机的安装,我也写了一篇很详尽的博文,感兴趣可以看看

【Linux】操作系统以及虚拟机的安装与配置icon-default.png?t=N7T8http://t.csdnimg.cn/ZyckP

1.检查内核版本

uname -r

2.卸载可能存在的旧版本

如果有旧版本存在的话,就将其卸载掉

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

3.安装必要的系统工具

yum install -y yum-utils device-mapper-persistent-data lvm2

成功了便是这样的

4.添加docker-ce安装源

这里为了快捷,我是用的是阿里源,所以需要先配置阿里云Docker Yum源

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

5.更新yum缓存

yum makecache fast

6.安装docker-CE

yum -y install docker-ce

三.Docker基本使用 

1.基本操作

(1)查看服务状态

systemctl status docker

(2)启停服务

①开启服务
systemctl start docker
②停止服务
systemctl stop docker
③重启服务
systemctl restart docker

(3)开机自启

systemctl enable docker

(4)开机不自启

systemctl disable docker

2.镜像的相关操作

(1)查看是否有镜像

docker images

(2)下载镜像

①配置加速器

进入阿里云网站,然后进入到控制台

将其中配置靖江加速器的那一段代码复制下来,赋值对应版本的就行【我使用的是centos】

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://vq5w5mzb.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

将这个执行完毕之后,也可以检查一下,直接查看这个文件,里面有东西,就说明好啦

②下载镜像

后面可以指定版本号,如果没有指定的话,默认使用的是最新版本的

docker pull nginx

(3)查看宿主机上的镜像

docker images

(4)删除镜像

如果提示镜像被使用,需要先停止某个ID的容器,那么要先删除容器再删除镜像。或者强制删除镜像。 正确做法:先删除依赖该镜像的所有容器, 再来删除镜像

docker rmi centos

还有一个是强制删除

docker rmi -f centos:latest

3.容器相关的操作

(1)创建容器

-it:是两个参数,

-i:interactive容器具有交互功能

-t:容器将提供伪终端

--name:指定生成的容器的名字,允许空,如果不指定会自动生成

docker create -it centos

指定成的容器的名字

docker create -it --name centos01 centos
(2)启动容器
docker start 容器ID|name|name:tag
(3)停止容器
docker stop 容器ID|name|name:tag
(4)重启容器
docker restart 容器ID|name|name:tag
(5)查看当前的容器
docker ps

或者使用这个,可以查看未运行的容器

docker ps -a
(6)删除容器
docker rm 容器ID

强制删除

docker rm -f 容器ID
(7)进入容器

用这个进入容器时,前面会显示出此容器的ID

docker exec -it 容器ID/容器NAME /bin/bash

这个不会显示容器ID

docker exec -it 容器ID/容器NAME sh
(8)退出容器
  • 退出时如果想继续运行容器:按顺序按【ctrl+p】,【ctrl+q】
  • 如果不想继续运行:按【ctrl+d】或输入exit

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

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

相关文章

RabbitMQ入门到实战——高级篇

消息的可靠性 生产者的可靠性&#xff08;确保消息一定到达MQ&#xff09; 生产者重连 这⾥除了enabled是false外&#xff0c;其他 initial-interval 等默认都是⼀样的值。 生产者确认 生产者确认代码实现 application中增加配置&#xff1a;&#xff08;publisher-returns…

【谭浩强C程序设计精讲 7】数据的输入输出

文章目录 3.5 数据的输入输出3.5.1 输入输出举例3.5.2 有关数据输入输出的概念3.5.3 用 printf 函数输出数据1. printf 的一般格式2. 格式字符 3.5.4 用 scanf 函数输入数据1. scanf 函数的一般形式2. scanf 函数中的格式声明3. 使用 scanf 函数时应注意的问题 3.5.5 字符输入输…

Find My游戏手柄|苹果Find My技术与手柄结合,智能防丢,全球定位

游戏手柄是一种常见电子游戏机的部件&#xff0c;通过操纵其按钮等&#xff0c;实现对游戏虚拟角色的控制。随着游戏设备硬件的升级换代&#xff0c;现代游戏手柄又增加了&#xff1a;类比摇杆&#xff08;方向及视角&#xff09;&#xff0c;扳机键以及HOME菜单键等。现在的游…

货拉拉智能监控实践:如何解决多云架构下的故障应急问题?

一分钟精华速览 在月活超千万的大规模业务背景下&#xff0c;货拉拉遭遇了多云环境下的监控碎片化、规划无序等问题。为了应对这些挑战&#xff0c;货拉拉开发了一站式监控平台——Monitor。该平台的部署有效地实现了对核心应用的监控和报警全覆盖&#xff0c;显著提高了应急响…

Aigtek高压放大器的工作原理和指标应用介绍

高压放大器是一种用于放大高压信号的电子设备&#xff0c;具有高压输出&#xff0c;低噪声&#xff0c;高精度&#xff0c;高稳定性&#xff0c;高可靠性&#xff0c;低功耗&#xff0c;低成本等的优点&#xff0c;所以才被广泛应用在磁场探测、电磁脉冲放大、电磁波放大、电磁…

Zynq 电源

ZYNQ芯片的电源分PS系统部分和PL逻辑部分&#xff0c;两部分的电源分别是独立工作。PS系统部分的电源和PL逻辑部分的电源都有上电顺序&#xff0c;不正常的上电顺序可能会导致ARM系统和FPGA系统无法正常工作。 PS部分的电源有VCCPINT、VCCPAUX、VCCPLL和PS VCCO。 VCCPINT为PS内…

vue3+acro实现日期组件可以直接展示在界面上,不用非得弹框展示

前言&#xff1a; 在很多时候&#xff0c;我们使用日期组件的时候&#xff0c;不希望每次都是点击弹出日期弹框&#xff0c;而是&#xff0c;点击日期弹框直接能展示在界面上&#xff0c;在这里我们介绍下 使用 acro 来更加轻松的实现他的效果。 实现效果&#xff1a; 实现步骤…

安卓Android Studio读写MifareOne M1 IC卡源码

本示例使用的发卡器&#xff1a; https://item.taobao.com/item.htm?id615391857885&spma1z10.5-c-s.w4002-21818769070.11.66af789eLeok2R <?xml version"1.0" encoding"utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout …

适配 IOS 安全区域

安全区域指的是一个可视窗口范围&#xff0c;处于安全区域的内容不受圆角&#xff08;corners&#xff09;、齐刘海&#xff08;sensor housing&#xff09;、小黑条&#xff08;Home Indicator&#xff09;影响。 造成这个问题的主要原因就是 iphoneX 之后在屏幕上出现了所谓…

Windows和Linux安装jdk

一、Windows安装jdk 1、下载安装包 Jdk官网下载地址&#xff1a;Java Downloads | Oracle 需要登陆Oracle账号信息。 百度网盘下载地址&#xff1a;https://pan.baidu.com/s/1eN1PX6gKdKgwJ24CM0bDsw 提取码&#xff1a;4bpp 目前最新jdk的版本是21&#xff0c;可以下载不同…

SpringSecurity入门demo(一)集成与默认认证

一、集成与默认认证&#xff1a; 1、说明&#xff1a;在引入 Spring Security 项目之后&#xff0c;没有进行任何相关的配置或编码的情况下&#xff0c;Spring Security 有一个默认的运行状态&#xff0c;要求在经过 HTTP 基本认证后才能访问对应的 URL 资源&#xff0c;其默认…

IDEA 启动错误提示:Command line is too long. Shorten command line

IDEA 启动错误提示&#xff1a;Command line is too long. Shorten command line Command line is too long. Shorten command line IDEA 启动错误提示&#xff1a;Command line is too long. Shorten command line快速修改原因解释 快速修改 Edit Configurations->configu…

Kotlin程序设计(二)面向对象

Kotlin程序设计中级篇 我们在前面已经学习了Kotlin程序设计的基础篇&#xff0c;本章我们将继续介绍更多Kotlin特性&#xff0c;以及面向对象编程。 函数 其实函数我们在一开始就在使用了&#xff1a; fun main() {println("Hello World") }我们程序的入口点就是…

【AI视野·今日CV 计算机视觉论文速览 第285期】Mon, 8 Jan 2024

AI视野今日CS.CV 计算机视觉论文速览 Mon, 8 Jan 2024 Totally 66 papers &#x1f449;上期速览✈更多精彩请移步主页 Daily Computer Vision Papers Denoising Vision Transformers Authors Jiawei Yang, Katie Z Luo, Jiefeng Li, Kilian Q Weinberger, Yonglong Tian, Yue…

canvas绘制流动的蚂蚁线(图文示例)

查看专栏目录 canvas示例教程100专栏&#xff0c;提供canvas的基础知识&#xff0c;高级动画&#xff0c;相关应用扩展等信息。canvas作为html的一部分&#xff0c;是图像图标地图可视化的一个重要的基础&#xff0c;学好了canvas&#xff0c;在其他的一些应用上将会起到非常重…

计算机体系结构----TLB+Cache

1.5 虚拟存储器之TLBCache专题 1.5.1 概述 在早期人们使用 DOS 或者更古老的操作系统的时候,序的规模很小,虽然那时候物理内存(Physical Memory)也很小,但这样的物理内存可以容纳下当时的程序但是随着图形界面的兴起&#xff0c;以及用户需求的不断增大&#xff0c;应用程序的…

2023年全国职业院校技能大赛软件测试赛题—单元测试卷⑨

单元测试 一、任务要求 题目1&#xff1a;根据下列流程图编写程序实现相应分析处理并显示结果。返回文字“xa*a*b的值&#xff1a;”和x的值&#xff1b;返回文字“xa-b的值&#xff1a;”和x的值&#xff1b;返回文字“xab的值&#xff1a;”和x的值。其中变量a、b均须为整型…

用通俗易懂的方式讲解大模型分布式训练并行技术:自动并行

之前的文章已经对多种并行技术进行了讲解&#xff0c;如&#xff1a;数据并行、张量并行、流水线并行以及多种并行方式组合使用的多维混合并行。 然而大模型的分布式训练是一个非常复杂的问题&#xff0c;目前的绝大多数的分布式训练系统&#xff0c;都依赖用户人工反复尝试以…

flutter 文件下载及存储路径

flutter 文件下载及存储路径 前言一、下载进度条二、文件路径二、文件上传总结 前言 日常开发中&#xff0c;经常会遇到下载文件的功能&#xff0c;往往我们在需要保存文件的路径上去调试&#xff0c;比如Android中的路径&#xff0c;有些会报错在SD卡中&#xff0c;但是有些手…

并发前置知识二:多线程不安全的本质

一、前言 这些年&#xff0c;我们的cpu、内存和i/o设备都在不断迭代&#xff0c;不断朝着更快的方向努力。但是&#xff0c;在这个快速发展的过程中&#xff0c;有一个核心矛盾一直存在&#xff0c;就是这三者的速度。 cpu是天上1天&#xff0c;内存是地上1年cpu是天上1天&am…