docker (简介、dcoker详细安装步骤)- day01

一、 为什么出现

Docker是基于Go语言实现的云开源项目。

Docker的主要目标是“Build,Ship and Run Any App,Anywhere”,也就是通过对应用组件的封装、分发、部署、运行等生命周期的管理,使用户的APP(可以是一个WEB应用或数据库应用等等)及其运行环境能够做到“一次镜像,处处运行”
 

 Docker 就是在它的基础上发展过来的。将应用打成镜像,通过镜像成为运行在Docker容器上面的实例,而 Docker容器在任何操作系统上都是一致的,这就实现了跨平台、跨服务器。只需要一次配置好环境,换到别的机器上就可以一键部署好,大大简化了操作。
 

二、docker 和 传统的虚拟机对比

  • 传统虚拟机技术是虚拟出一套硬件后,在其上运行一个完整操作系统,在该系统上再运行所需应用进程;
  • 容器内的应用进程直接运行于宿主的内核,容器内没有自己的内核且也没有进行硬件虚拟。因此容器要比传统虚拟机更为轻便。
  • 每个容器之间互相隔离,每个容器有自己的文件系统 ,容器之间进程不会相互影响,能区分计算资源。

 三、docker基本组成(三要素)

镜像(Image)

 镜像是就是一个只读的模板。镜像可以用来创建 Docker 容器,一个镜像可以创建很多容器。

理解:Image 可以看成java类,容器可以看成java类 new出来的实例

容器(Container)

容器是独立运行的一个或一组应用。容器是用镜像创建的运行实例。

它可以被启动、开始、停止、删除。每个容器都是相互隔离的、保证安全的平台。

仓库(Repository)

仓库是集中存放镜像文件的场所。仓库(Repository)和仓库注册服务器(Registry)是有区别的。仓库注册服务器上往往存放着多个仓库,每个仓库中又包含了多个镜像,每个镜像有不同的标签(tag)。

仓库分为公开仓库(Public)和私有仓库(Private)两种形式。最大的公开仓库是 Docker Hub(https://hub.docker.com/),存放了数量庞大的镜像供用户下载。国内的公开仓库包括阿里云 、网易云 等

 四、安装docker

  1. 确定你是centos 7 以上的版本(默认在管理员权限下,不在先切换)  :
cat /etc/redhat-release 

        2. 如果以前装过卸载旧版本

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

 3.yum 安装gcc相关:

  •        首先,保证系统能上外网
  •         gcc:它是一个自由开源的编译器工具集,能够编译多种编程语言,包括 C、C++、Objective-C、Fortran、Ada 和其他一些编程语言。
gcc -v 查看系统是否安装gcc

----- 安装命令
yum -y install gcc  

yum -y install gcc-c++

 4.安装需要的软件包

  •         先检查下是否已经安装yum-utils :yum list installed | grep yum-utils  或者 yum install -y yum-utils
  •        yum-utils 简介:是一款由CentOS官方开发的Linux包管理工具,它是yum软件包管理器的扩展,提供了一系列额外的命令和脚本,可以帮助Linux系统管理员更好地管理依赖关系、配置文件、软件包更新等方面的工作。
yum install -y yum-utils

 5.安装镜像仓库

  •         此处我们不使用 docker官网仓库,使用阿里云的国内仓库,国外太慢

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

6.更新yum软件包的索引

        作用:更新yum软件包的索引,能够使系统管理员更加方便地查找和安装软件包

centos 7 :
yum makecache fast

centos 8 :
yum makecache


 7.安装docker引擎

先更新yum(包、内核)此处可以不更新,会更新linux所有安装包包、,导致意外 ,升级所有包同时也升级软件和系统内核。 更新完后需要重启系统 : reboot

 yum出问题:Error: Failed to download metadata for repo 'appstream': Cannot prepare internal mirrorlist: No URLs in mirrorlist

可以参考:【已解决】Error: Failed to download metadata for repo ‘appstream‘: Cannot prepare internal mirrorlist-CSDN博客

 yum -y update

安装最新版本的 Docker Engine-Community 和 containerd,安装过程中会出现两次:Is this ok [y/N]: y ,都输入y,然后按Enter键

yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin

 查看是否开机启动

sudo systemctl list-unit-files | grep enable

 开机启动

sudo systemctl enable docker.service

 8.启动dcoker        

sudo systemctl start docker

查看docker 服务

ps -ef|grep docker

9.测试docker

 通过运行 hello-world 镜像来验证是否正确安装了 Docker Engine-Community

 sudo docker run hello-world

 看到下面表示运行成功!

 

10.查看docker版本

docker -v
docker version

 五、安装成功后需重启docker

systemctl restart docker

或者

service docker restart

六、doker常用的命令整理

以下是Docker的一些常用命令,按功能分类:

1. 查看容器和镜像
docker images:查看所有本地Docker镜像。
docker ps:列出正在运行的容器。
docker ps-l:列出最后一次创建的容器。
docker inspect:查看容器的底层信息。

2. 容器管理
docker run:启动一个新的容器。
docker start:启动一个已经存在的容器。
docker stop:停止一个正在运行的容器。
docker rm:删除一个容器,必须为停止状态。
docker ps -a:查看所有容器,包括已经停止的。

3. 镜像管理
docker pull:从Docker镜像仓库中下载镜像。
docker tag:给本地镜像添加标签。
docker images -d:列出本地所有镜像,包括没有使用的缓存镜像。
docker rmi:删除本地一个或多个镜像。

4. 数据管理
docker cp:从容器中拷贝文件到本地文件系统,或从本地文件系统拷贝文件到容器中。
docker exec:在正在运行的容器中执行命令。
docker logs:查看容器内标准输出。
docker top:查看容器内部运行的进程。
docker port:查看容器的端口映射。
以上是Docker的一些常用命令,希望可以帮助到您。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

WiFi的CSMA/CA竞争窗口流程简述

1、若站点最初有数据要发送(不是发送不成功再进行重传的那种),且检测到信道空闲,在等待DIFS后,就发送整个数据帧。 2、否则,站点执行退避算法。一旦检测到信道忙,就冻结退避计时器。只要信道空…

深度学习之循环神经网络

视频链接:6 循环神经网络_哔哩哔哩_bilibili 给神经网络增加记忆能力 对全连接层而言,输入输出的维数固定,因此无法处理序列信息 对卷积层而言,因为卷积核的参数是共享的,所以卷积操作与序列的长度无关。但是因为卷积…

北塞浦路斯土耳其共和国关于成立欧洲数字股票交易所企业交流会

在地中海的温暖波涛中,北塞浦路斯土耳其共和国这个古老而充满活力的国家正成为全球关注的焦点。2023年11月22日至11月24日,为期三天的北塞浦路斯土耳其共和国关于成立欧洲数字股票交易所企业交流会隆重谢幕,北塞副总统,经济部长&a…

【学习记录】从0开始的Linux学习之旅——驱动模块编译与加载

一、概述 Linux操作系统通常是基于Linux内核,并结合GNU项目中的工具和应用程序而成。Linux操作系统支持多用户、多任务和多线程,具有强大的网络功能和良好的兼容性。本文主要讲述如何编译及加载linux驱动模块。 二、概念及原理 应用程序通过系统调用与内…

STK Components 二次开发-创建地面站

1.地面站只需要知道地面站的经纬高。 // Define the location of the facility using cartographic coordinates.var location new Cartographic(Trig.DegreesToRadians(-75.596766667), Trig.DegreesToRadians(40.0388333333), 0.0); 2.创建地面站 创建方式和卫星一样生成对…

【开源】基于Vue+SpringBoot的食品生产管理系统

项目编号: S 044 ,文末获取源码。 \color{red}{项目编号:S044,文末获取源码。} 项目编号:S044,文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 加工厂管理模块2.2 客户管理模块2.3…

UE5人物残影学习(材质实现)

学习视频 UE4简单的材质球残影人教学,你学会了吗!_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1rY411q7Yb/?spm_id_from333.788.top_right_bar_window_history.content.click 结果预览 1.创建残值,混合模式勾选半透明 “混合模…

Qt4利用MVC开发曲线数据编辑器

目录 1 需求 2 开发流程 1 搭建框架 2 构造函数 3 打开工程 4 实现应用程序参数加载 5 QCustomPlot和TableView的联动 6 数据的可视化修改 7 列表点击事件事先键盘控制 8 表格实现复制,粘贴,删除等一系列功能 9 曲线实现自适应范围和统一范围…

MyBatis插入操作返回主键报错问题记录

一开始用直接传参数的方法写的插入操作 StudentMapper.java接口 Integer insertStudent(Param("sname") String name,Param("sage") int age); 然后在网上搜了返回主键的方法 StudentMapper.xml: <insert id"insertStudent" useGenerat…

CAN通信协议

CAN 文章目录 CAN前言一、什么是CAN二、CAN的用途三、CAN协议简解1.can的通信过程1.1空闲状态1.2.起始状态1.3 仲裁机制1.4 位时序 前言 前面学了232、485、IIC、SPI等通信协议&#xff0c;还有一个强大的协议CAN&#xff0c;值得记录一下 一、什么是CAN CAN是Controller Ar…

爬取极简壁纸

js反编译的代码需要解密之类的&#xff0c;直接给我干蒙圈了&#xff0c;借助selenium可以直接获取到调式工具中的源码&#xff0c;可以获取渲染后的链接&#xff0c;然后将链接交给下载函数&#xff08;使用异步提高效率&#xff09;即可。 后续学习完js反编译的话&#xff0…

Unity-链接MySql8.0

链接MySql8.0 1.准备dll 一、找到l18N相关的dll 这里给出一个参考地址 D:\Unity\2020.3.48f1c1\Editor\Data\MonoBleedingEdge\lib\mono\unityjit在里面找到如下图的四个dll 二、下载数据库链接dll https://downloads.mysql.com/archives/c-net/在这里搜索历史版本(Archiv…

AIGC ChatGPT4总结Linux Shell命令集合

在Linux中,Shell命令的数量非常庞大,因为Linux提供了各种各样的命令来处理系统任务。这些命令包括GNU核心工具集、系统命令、shell内置命令以及通过安装获得的第三方应用程序命令。以下是一些常见的Linux命令分类及其示例,但请注意,这不是一个全面的列表,因为列出所有命令…

linux复习笔记05(小滴课堂)

hell脚本与crontab定时器的运用 查看状态&#xff1a; 关闭服务&#xff1a; 开启服务&#xff1a; 重启服务&#xff1a; crontab定时器的使用&#xff1a; 我们可以看到没有任何任务。 编辑&#xff1a; 我们可以看到这个任务了。 删除所有任务&#xff1a; 这代表着每分钟…

【NeRF】3、MobileR2L | 移动端实时的神经光场(CVPR2023)

论文&#xff1a;Real-Time Neural Light Field on Mobile Devices 代码&#xff1a;https://github.com/snap-research/MobileR2L 出处&#xff1a;CVPR2023 贡献&#xff1a; 设计了一套移动端实时的 R2L 网络结构 MobileR2L&#xff0c;在 iphone13 上渲染一张 1008x756…

PgSQL技术内幕-Analyze做的那些事-pg_stat_all_tables

PgSQL技术内幕-Analyze做的那些事-pg_stat_all_tables pg_stat_all_tables视图中记录有analyze信息&#xff0c;比如何时做的analyze、表元组个数&#xff08;活元组、死元组&#xff09;等。重启后发现该视图中表的统计信息重置不见了&#xff0c;发生了什么&#xff1f; 1、p…

Centos 7.9 Install Docker Insecure Registry

文章目录 1. 镜像存储规划2. 安装定制 docker3. 部署 registry4. 验证镜像仓库 1. 镜像存储规划 linux LVM /dev/sdb mount dir /data【linux LVM 磁盘挂载目录】 创建两个目录 一个 docker 数据存储目录 &#xff1a;/data/docker&#xff0c;默认一般为linux为 /var/lib/d…

AIGC ChatGPT 4 快速整理不规则数据

从业务系统中采集到的数据如下: 序号 省份 英文 2022年销售额 2021年销售额 增量 1 广东guangDOng129068.58 124319.67 4748.91 2 江苏 JiangSu 122825.6 116314.2 6511.4 3 山东ShAnDong 87385 83045.9 4339.1 4 浙江…

C语言:求Sn=a+aa+aaa+aaaa+……(n个a)之值,其中a表示一个数字,n表示a的位数,n由键盘录入。

分析&#xff1a; 在主函数 main 中&#xff0c;程序首先定义四个整型变量 a、n、i 和 sn&#xff0c;并初始化 a、n 和 i 的值&#xff0c;其中 sn 用于记录数列的和。然后使用 scanf 函数从标准输入中读取用户输入的两个整数 a 和 n。 接下来&#xff0c;程序通过 while …

1.5 C语言之字符输入输出

1.5 C语言之字符输入输出 一、概述二、字符计数三、行计数四、单词计数五、练习 一、概述 字符文本流&#xff0c;是由多行字符构成的字符序列&#xff0c;而每行字符都由0个或多个字符组成&#xff0c;行末是一个换行符。 标准库提供的输入输出模型&#xff0c;用于读取文本内…