Docker的介绍及安装基本操作命令

前言

Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。

Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。

容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。

Docker 从 17.03 版本之后分为 CE(Community Edition: 社区版) 和 EE(Enterprise Edition: 企业版),所以本次教程也是基于社区版CE

一.Docker的介绍

1.虚拟机与容器的区别

在讲到Docker之前,我们先了解虚拟机与容器之间的区别

VM(VMware) 在宿主机器、宿主机器操作系统的基础上创建虚拟层、虚拟化的操作系统、虚拟化的仓
库,然后再安装应用;
Container(Docker 容器 ) ,在宿主机器、宿主机器操作系统上创建 Docker 引擎,在引擎的基础上再安装
应用。
特性
                        容器        虚拟机
启动钟级
使用一般MB一般GB
性能接近原生弱于
支持量机支持上千个容器一般几十个

2.Docker三要素

2.1 Docker镜像

Docker 镜像就是一个只读的模板。
例如:一个镜像可以包含一个完整的 ubuntu 操作系统环境,里面仅安装了 Apache 或用户需要的其它
应用
程序。
镜像可以用来创建 Docker 容器。
Docker 提供了一个很简单的机制来创建镜像或者更新现有的镜像,用户甚至可以直接从其他人那里下载
个已经做好的镜像来直接使用。

2.2 Docker仓库

仓库是集中存放镜像文件的场所。
有时候会把仓库和仓库注册服务器( Registry )混为一谈,并不严格区分。实际上,仓库注册服务器上
往往存放着多个仓库,每个仓库中又包含了多个镜像,每个镜像有不同的
标签( tag )。
仓库分为公开仓库( Public )和私有仓库( Private )两种形式。
最大的公开仓库是 Docker Hub ,存放了数量庞大的镜像供用户下载。
当然,用户也可以在本地网络内创建一个私有仓库。
当用户创建了自己的镜像之后就可以使用 push 命令将它上传到公有或者私有仓库,这样下次在另外一
机器上使用这个镜像时候,只需要从仓库上 pull 下来就可以了。

2.3 Docker容器

Docker 利用容器来运行应用。
容器是从镜像创建的运行实例。它可以被启动、开始、停止、删除。每个容器都是相互隔离的、保证安
的平台。
可以把容器看做是一个简易版的 Linux 环境(包括 root 用户权限、进程空间、用户空间和网络空间等)
和运
行在其中的应用程序。

3.Docker的优点

Docker 是一个用于开发,交付和运行应用程序的开放平台。Docker 使您能够将应用程序与基础架构分开,从而可以快速交付软件。借助 Docker,您可以与管理应用程序相同的方式来管理基础架构。通过利用 Docker 的方法来快速交付,测试和部署代码,您可以大大减少编写代码和在生产环境中运行代码之间的延迟。

4.为什么使用Docker

首先, Docker 容器的 启动 可以在秒 级实现 相比 传统 的虚 机方式要快得多。 其次, Docker 统资
源的利用率很高,一台主机上可以同 时运 行数千个 Docker 容器。
容器除了 行其中 用外,基本不消耗 外的系 统资 源,使得 用的性能很高,同 的开 尽量小。
传统 机方式 10 个不同的 用就要起 10 个虚 机,而 Docker 只需要 启动 10 个隔离的 用即可。

二.Docker的安装

yum配置阿里云镜像源
1.备份源repo文件

cd /etc/yum.repos.d
mkdir bak
mv *.repo bak/

2.获取阿里云镜像源文件

cd /etc/yum.repos.d
wget http://mirrors.aliyun.com/repo/Centos-7.repo

如果wget命令不存在,执行yum install wget,重新执行以上命令。

3.使用镜像文件

yum clean all
yum makecache

4.配置阿里云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

三.配置加速器

由于普通的下载镜像速度很慢所以我们可以配置阿里云为我们提供的镜像下载加速器

登录后进入我们的控制台

 依次点击找到容器镜像服务ACR

 进入后找到镜像加速器,将代码复制到命令行镜像配置

 配置好后可以通过命令进行查看

cat /etc/docker/daemon.json

四.拉取镜像

在后面可以指定版本号,默认去掉:和版本号就是拉取最新,这里默认拉取最新

 docker pull nginx:(版本号)

查看当前容器中的镜像

docker images

删除容器 

docker rmi centos

docker rmi -f centos:latest

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

五.关于容器

1.容器的创建

docker create -it centos:latest

docker create -it --name centos01 centos:latest

centos:latest 即镜像名字:版本(或镜像ID),将使用指定镜像创建容器。

另外,Docker会检查本地是否 存在指定的镜像, 不存在就从公有仓库下载 -it:是两个参数,-i:interactive容器具有交互功能,-t:容器将提供伪终端 --name:指定生成的容器的名字,允许空,如果不指定会自动生成

 2.容器的服务启动关闭及重启

docker start 容器ID|name|name:tag

docker stop 容器ID|name|name:tag

docker restart 容器ID|name|name:tag

3.查看容器

docker ps

docker ps -a 

4.删除容器

docker rm 容器ID

docker rm -f 容器ID 

5.进入容器

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

docker exec -it 容器ID/容器NAME bash (简写) 

6.退出容器

退出时如果想继续运行容器:按顺序按【ctrl+p】,【ctrl+q】 如果不想继续运行:按【ctrl+d】或输入exit 

注意点 

 在操作容器时,需要在当前docker镜像的目录下才能进行操作

六.Docker基本命令操作

1.关于服务

2.1查看服务状态

systemctl status docker

2.2 服务的开启与暂停及重启

systemctl start docker

systemctl stop docker

systemctl restart docker 

2.3 设置开启或关闭服务开机自启 

systemctl enable docker

systemctl disable docker

 

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于Selenium+Python的web自动化测试框架

一、什么是Selenium? Selenium是一个基于浏览器的自动化测试工具,它提供了一种跨平台、跨浏览器的端到端的web自动化解决方案。Selenium主要包括三部分:Selenium IDE、Selenium WebDriver 和Selenium Grid。 Selenium IDE:Firefo…

阿里云和AWS之间的应用程序防火墙比较及选择建议!

对于大多数开发人员来说,托管在云中的 Web 应用程序或 REST API 是一种常见方案。但是,并非每个应用程序都具有相同的安全级别。将 Web 应用程序防火墙 (WAF) 添加到 Web 应用程序是提高安全性的有用方法。 在本文中,…

Python实用小工具(4)——邮件轰炸机,给朋友搞点乐子(附源码+exe文件)

欢迎来到MatpyMaster!今天我们将使用Python来批量发送邮件,让你的邮件推送变得更加高效。废话不多说,直接开搞!使用声明: 请确保你的邮箱开启了SMTP服务,并获取了授权码。 选择合适的发送间隔,…

VBA中类的解读及应用第八讲:实现定时器功能的自定义类事件

《VBA中类的解读及应用》教程【10165646】是我推出的第五套教程,目前已经是第一版修订了。这套教程定位于最高级,是学完初级,中级后的教程。 类,是非常抽象的,更具研究的价值。随着我们学习、应用VBA的深入&#xff0…

【PaperReading】5. Open-Vocabulary SAM

Category Content 论文题目 Open-Vocabulary SAM: Segment and Recognize Twenty-thousand Classes Interactively 作者 Haobo Yuan1 Xiangtai Li1 Chong Zhou1 Yining Li2 Kai Chen2 Chen Change Loy1 1S-Lab, Nanyang Technological University 2Shanghai Artificial In…

找不到msvcr120.dll怎样修复,分享4种修复方法

msvcr120.dll是Microsoft Visual C 2012 Redistributable Package的一个关键组件,负责提供C运行时库。许多应用程序在运行时都需要依赖这个库文件。然而,在日常使用过程中,不少用户会遇到msvcr120.dll丢失的问题,导致程序无法正常…

Linux 文件(夹)权限查看

命令 : ls -al ls -al 是一个用于列出指定目录下所有文件和子目录的命令,包括隐藏文件和详细信息。其中,-a 选项表示显示所有文件,包括以 . 开头的隐藏文件,-l 选项表示以列表的形式显示文件的详细信息。 本例中:drwxrwxr-x 为权限细节。 权限细节(Permission detail…

制造业CRM是什么?都有哪些特色功能?

近些年,制造业和别的行业一样,经历过翻天覆地的转型。从以分销为基础到客户至上,所有行业都在确定商业模式的全局性变化。在这样的环境下,不管什么规模的设备制造企业都意识到将创新与技术融进业务流程的必要性。CRM管理系统是促进…

23种设计模式精讲,配套23道编程题目 ,支持 C++、Java、Python、Go

关于设计模式的学习,大家应该还是看书或者看博客,但却没有一个边学边练的学习环境。 学完了一种设计模式 是不是应该去练一练? 所以卡码网 针对 23种设计,推出了 23道编程题目,来帮助大家练习设计模式,地…

leetcode 动态规划(最后一块石头的重量II、目标和、一和零)

1049.最后一块石头的重量II 力扣题目链接(opens new window) 题目难度&#xff1a;中等 有一堆石头&#xff0c;每块石头的重量都是正整数。 每一回合&#xff0c;从中选出任意两块石头&#xff0c;然后将它们一起粉碎。假设石头的重量分别为 x 和 y&#xff0c;且 x < …

异常(C++)

六、异常6.1 传统错误处理&#xff08;如 C语言&#xff09;6.1.1 通过函数返回值处理异常6.1.2 通过远程跳转处理异常 6.2 C的异常处理6.2.1 对传统错误处理的改造 6.3 函数的异常说明6.4 标准异常类 六、异常 异常是指程序运行期间发生的不正常情况&#xff0c;如 new 无法获…

基于web3+solidity的众筹项目

基本配置&#xff1a;node、npm、yarn&#xff0c;安装ganache&#xff0c;chrome&#xff0c;chrome安装插件MetaMask&#xff0c; 主要功能&#xff1a;目的是实现一个简单的众筹平台&#xff0c;允许用户发起筹款项目、捐款、提出使用资金请求以及证明人证明。 部分合约&…

语义解析:如何基于SQL去实现自然语言与机器智能连接的桥梁

&#x1f308;个人主页: Aileen_0v0 &#x1f525;热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法 &#x1f4ab;个人格言:"没有罗马,那就自己创造罗马~" 目录 语义解析 定义 作用 语义解析的应用场景 场景一&#xff1a; 场景二&#xff1a; 总结语…

数字孪生+可视化技术 构建智慧新能源汽车充电站监管平台

前言 充电基础设施为电动汽车提供充换电服务&#xff0c;是重要的交通能源融合类基础设施。近年来&#xff0c;随着新能源汽车产业快速发展&#xff0c;我国充电基础设施持续增长&#xff0c;已建成世界上数量最多、服务范围最广、品种类型最全的充电基础设施体系。着眼未来新…

强化学习4——动态规划初探

动态规划具体指的是在某些复杂问题中&#xff0c;将问题转化为若干个子问题&#xff0c;并在求解每个子问题的过程中保存已经求解的结果&#xff0c;以便后续使用。实际上动态规划更像是一种通用的思路&#xff0c;而不是具体某个算法。 在强化学习中&#xff0c;被用于求解值函…

Python基础(二十四、JSON和pyecharts)

文章目录 一、JSON1.JSON介绍2.JSON格式数据转化3.示例 二、pyecharts1.安装pyecharts包2.查看官方示例 三、开发示例 一、JSON 1.JSON介绍 JSON是一种轻量级的数据交互格式&#xff0c;采用完全独立于编程语言的文本格式来存储和表示数据&#xff08;就是字符串&#xff09;…

【REST2SQL】08 日志重构增加输出到文件log.txt

【REST2SQL】01RDB关系型数据库REST初设计 【REST2SQL】02 GO连接Oracle数据库 【REST2SQL】03 GO读取JSON文件 【REST2SQL】04 REST2SQL第一版Oracle版实现 【REST2SQL】05 GO 操作 达梦 数据库 【REST2SQL】06 GO 跨包接口重构代码 【REST2SQL】07 GO 操作 Mysql 数据库 原来…

微内核、宏内核、混合内核,三者到底有什么区别?

最近几年&#xff0c;随着国内大厂纷纷发布自研操作系统&#xff0c;大家对这些操作系统的出身和相貌吵得不可开交。然而&#xff0c;本文并不打算陷入这种无尽的争论之中。 在计算机技术的发展历程中&#xff0c;所有的技术都是在不断的迭代和发展中形成的&#xff0c;无论是…

软件测试|如何在 Python 中比较两个列表

简介 在Python中&#xff0c;比较两个列表是一个常见的任务&#xff0c;可以帮助你找出两个列表之间的差异、共同元素或其他关系。本文将详细介绍如何在Python中比较两个列表的不同方法&#xff0c;包括使用循环、集合操作和列表推导式等。 方法1&#xff1a;使用循环比较列表…

hadoop自动获取时间

1、自动获取前15分钟 substr(from_unixtime(unix_timestamp(concat(substr(20240107100000,1,4),-,substr(20240107100000,5,2),-,substr(20240107100000,7,2), ,substr(20240107100000,9,2),:,substr(20240107100000,11,2),:,00))-15*60,yyyyMMddHHmmss),1) unix_timestam…