Docker学习笔记【part1】概念与安装

news2024/9/29 14:46:57

一、Docker的概念

Docker 是实现系统平滑移植、容器虚拟化的技术,基于 Go语言,可以实现软件带环境安装,做到“一次镜像,处处运行”。Docker 是一个 C/S 模式的架构,后端是一个松耦合架构,众多模块各司其职。

在现实场景中,开发需要清楚的告诉运维部署团队开发所用的全部配置文件 + 所有软件环境。不过,即便如此,仍然常常发生部署失败的状况。Docker 可以使软件在安装的时候,把原始环境一模一样地复制过来,开发人员利用 Docker 可以消除协作编码时“在我的机器上可正常工作”的问题。只需要一次配置好环境,换到别的机子上就可以一键部署好,大大简化了操作。

Linux 容器不是模拟一个完整的操作系统,而是对进程进行隔离。有了容器,就可以将软件运行所需的所有资源打包到一个隔离的容器中。容器与虚拟机不同,不需要捆绑一整套操作系统,只需要软件工作所需的库资源和设置。系统因此而变得高效轻量并保证部署在任何环境中的软件都能始终如一地运行。每个容器之间互相隔离,每个容器有自己的文件系统 ,容器之间进程不会相互影响,能区分计算资源。

Docker 官网为 http://www.docker.com , Dokcer Hub 官网为 http://hub.docker.com/ 。


二、Docker的三要素

Docker有三个基本元素:镜像(image)、容器(container)、仓库(repository)。

1.镜像(image)

Docker 镜像(Image)就是一个只读的模板,用来创建 Docker 容器,一个镜像可以创建很多容器。相当于容器的“源代码”,docker 镜像文件类似于Java的类,而 docker容器 类似于java中 new 出来的实例对象。

2.容器(container)

Docker 利用容器(Container)独立运行的一个或一组应用,应用程序或服务运行在容器里面,容器就类似于一个虚拟化的运行环境,容器是用镜像创建的运行实例,它可以被启动、开始、停止、删除。每个容器都是相互隔离的、保证平台的安全。

3.仓库(repository)

类似于Maven仓库,存放各种jar包、github仓库,存放各种git项目。而 Docker 公司提供的官方 registry 被称为Docker Hub,存放各种镜像模板。

Docker的工作原理也和 Maven 很类似,本地没有的会去远程的 Registry 下载。

在这里插入图片描述


三、Docker的安装

Docker 必须部署在 Linux 内核的系统上。官方安装教程 https://docs.docker.com/engine/install/centos/

1.前置准备

首先安装 CentOS7,并通过 yum 安装 gcc 相关。若有旧版本的 docker,执行如下命令来卸载旧版本:

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

2.下载安装包

接下来准备安装所需要的软件包,执行如下命令自动下载:

sudo yum install -y yum-utils

3.设置stable镜像仓库

建议使用如下命令设置成阿里云镜像,设置成官方镜像的话,由于是外网,容易下载不了。

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

4.更新yum软件包索引

执行如下命令来更新yum软件包索引。这条命令可以将软件包信息提前在本地索引缓存,用来提高搜索安装软件的速度,建议执行这个命令可以提升yum安装的速度。

yum makecache fast

5.安装docker CE

执行如下命令安装docker-ce。docker-ce 指的是 docker 的社区版。

yum -y install docker-ce docker-ce-cli containerd.io

6.启动docker

执行如下命令启动docker。

systemctl start docker

7.测试

执行命令查看版本号并运行 hello-world。

docker version
docker run hello-world

在这里插入图片描述

这里可以看到,一开始我们本地环境并没有 hello-world 的镜像,随机如同 maven 一样,docker 自动进行了下载,并成功运行 Hello from Docker !

8.关闭docker

执行如下命令关闭docker。

systemctl stop docker

9.卸载命令

执行如下4条命令可以卸载docker。

systemctl stop docker
yum remove docker-ce docker-ce-cli containerd.io
rm -rf/var/lib/docker
rm -f/var/lib/containerd

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

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

相关文章

九龙证券|次新股叠加智慧交通+信创+数字经济概念,开盘冲涨停!

核算机板块1月以来跑赢上证指数;才智交通、成绩高增及严重财物重组个股登上涨停榜。 证券时报•数据宝核算,1月19日,沪深两市收盘涨停股35只,其中ST股6只。群众交通、长久科技两股一字板强势涨停,潞安环能、跃岭股份收…

【MySQL】第五部分 多表查询

【MySQL】第五部分 多表查询 文章目录【MySQL】第五部分 多表查询5. 多表查询5.1 等值连接5.2 非等值连接5.3 自连接5.4 内连接5.5 外连接5.6 满外连接5.7 SQL99语法实现多表查询5.7.1 JOIN...ON语法5.7.2 使用SQL99语法实现内连接5.7.3 使用SQL99语法实现左外连接和右外连接5.…

postman入门

目录 新建界面 菜单区 百度翻译api实战 post 参数化 新建界面 1)可以新建请求,(rqueset)模拟客户端的请求, 2)可以创建测试集合(collection),对接口请求进行统一管理…

删除排序链表中的重复元素

删除排序链表中的重复元素 题目描述 原始题目参考:删除有序链表的重复元素 给定一个已排序的链表的头 head , 删除原始链表中所有重复数字的节点,只留下不同的数字 。返回 已排序的链表 。 示例 1: 输入:head [1…

java spring IOC Bean管理操作(xml P名称空间注入)

首先 我们来写一个基本的 通过xml的set属性注入 首先创建一个项目 然后引入 spring 最基本的几个依赖包 src下 下有一个 gettingStarted 包 下面有一个 user类 代码如下 package gettingStarted;public class user {public String name;public int age;public void setName(S…

leetcode 1817. 查找用户活跃分钟数【python3,哈希表的实现思路详解】

题目 给你用户在 LeetCode 的操作日志,和一个整数k。日志用一个二维整数数组logs表示,其中每个logs[i] [IDi, timei]表示ID为IDi的用户在timei分钟时执行了某个操作。 多个用户可以同时执行操作,单个用户可以在同一分钟内执行多个操作。指定…

Deno不只是个Javascript运行时

Deno 是一个安全的 JavaScript 和 TypeScript 运行时,作者是 Ryan Dahl(也是 Node.js 的原作者)。Deno 的诞生之初是为了解决 2009 年首次设计 Node.js 时的一些疏忽。我认为这种改造动机很有道理,因为我相信每个程序员都希望有机…

cmake跨平台构建工具

TOP目录 前言 CMake是一个跨平台的安装编译工具,可以用简单的语句来描述所有平台的安装(编译过程)。CMake可以说已经成为大部分C开源项目标配 因此,作为一名C C发开人员,看到cmake不应该一脸茫然… 作为初学者,通俗的认为cmake…

C语言入门(七)——结构体

复合类型与结构体 数据抽象 数据类型标志 嵌套结构体 复合类型与结构体 在编程语言中,最基本的,不可再分的数据类型称为基本类型,例如整型,浮点型;根据语法规则由基本类型组合而成的类型称为复合类型,例如字符串是…

系统性能优化、性能指标、性能测试

系统性能是互联网应用最核心的非功能性架构目标,系统因为高并发访问引起的首要问题就是性能问题:高并发访问的情况下,系统因为资源不足,处理每个请求的时间就会变慢,看起来就是性能变差。 因此,性能优化是…

1596_AURIX_TC275_LMU简介

全部学习汇总: GreyZhang/g_TC275: happy hacking for TC275! (github.com) 这个章节其实没有多少页文档,而大部分的文档其实是寄存器的字段描述。因此,这次一次性把这个文档的内容大概看完。 LMU提供了32K的本地通用RAM。ED存储的访问也是通…

Mybatis 框架开发的准备

从百度中“mybatis download”可以下载最新的 Mybatis 开发包。进入选择语言的界面,进入中文版本的开发文档。下载相关的 jar 包或 maven 开发的坐标。下载的 zip 文件如下(我们的资料文件夹):我们所使用的 Mybatis 版本是 3.2.7 …

我在CSDN的2022:突破零粉丝,4个月涨粉4000+,2023年目标5万+

文章目录前言我为什么又回来写博客?初写文章碰壁1024活动第一次上热榜关于上热榜博客之星2023年目标最后前言 今年最自豪的事,我用业余时间,在CSDN上坚持创作了4个月,产出了20多篇博客,其中7篇文章上了全站热榜&#…

Python基础必经之路——函数

前言 嗨喽~大家好呀,这里是魔王呐 ❤ ~! 目录前言定义函数向函数传递信息实参和形参传递实参返回值将函数存储在模块中导入整个模块尾语 💝定义函数 下面是一个打印问候语的简单函数 def greet_user():print("hello") greet_user()本例示例…

excel函数技巧:如何快速汇总销售合计项

一年的销售数据整理完了,除了要看到每个人的销售合计之外,老板今年还要看到图中这两项合计:销量最高的三个月合计是指汇总每人一年中,销量最高的三个月的数据。超过平均值的销售合计是指汇总超过总平均值的月份销量。两项合计需要…

【进阶】Spring Boot日志文件

努力经营当下,直至未来明朗! 文章目录一、日志有什么用二、日志怎么用三、 自定义日志打印四、 日志级别五、日志持久化六、更简单的日志输出——lombok小结普通小孩也要热爱生活! 一、日志有什么用 日志是解决问题最直观、最有效的方法。⽇…

ROS2机器人编程简述humble-第二章-Launchers .3.3

ROS2机器人编程简述humble-第二章-Publishing and Subscribing .3.2ros2 run一次只能开启一个node,如果一次开启一组相关node,需要使用ros2 launch。支持Python, XML, 和 YAML。推荐Python。zhangrelayLAPTOP-5REQ7K1L:~$ ros2 run -h usage: ros2 run […

Mysql之约束

简介 not null前面也说过,这些约束是针对列的数据的,对应整个列的数据都起约束作用 基本但是创建表在字段后使用的语句 1.primary key-主键 主键特征1.对应列不能有重复的数据2.不能为NULL 唯一且非空 -- 主键 -- id,name,email CREATE TABLE t17(id…

AX7A200教程(1): DDR3仿真平台搭建(一)

本章节主要调用官方的MIG控制器,并使用官方的MIG控制器进行仿真,开发环境vivado2020.1鉴于很多童鞋无法仿真自己新建的DDR工程,即使使用modelsim仿真也仿真失败,本例程着重于在vivado中,对自己新建的带DDR3的工程进行仿…

力扣45.跳跃游戏Ⅱ(贪心思路详解)

文章目录力扣45.跳跃游戏Ⅱ题目描述算法思路代码实现力扣45.跳跃游戏Ⅱ 题目描述 给定一个长度为 n 的 0 索引整数数组 nums。初始位置为 nums[0]。 每个元素 nums[i] 表示从索引 i 向前跳转的最大长度。换句话说,如果你在 nums[i] 处,你可以跳转到任意…