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.tpcf.cn/news/616702.html

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

相关文章

C中分支和循环语句相关练习题

目录 (1)编写程序数一下1-100的所有整数中出现多少个数字9 (2)计算1/1-1/21/3-1/4......1/99-1/100的值,打印结果 (3)求十个整数中的最大值 (4)在屏幕上输出九九乘法口诀表 (5)二分查找元素 …

超声波模块驱动代码(CS100A芯片)

CS100A.c #include "CS100A.h"TIM_HandleTypeDef TimHandle;uint16_t CS100A_count0; //定时器中断中累加计数 float CS100A_distance0; //计算超声波测得的距离,单位为cm float err15/15.98; //调整误差系数,由于各种原因会出…

Hive 数据同步

一、需求 同步集团的数据到断直连环境。 二、思路 三、同步数据(方案) 1、环境:断直连模拟环境 2、操作机器:ETL 机器 XX.14.36.216 3、工作路径:cd /usr/local/fqlhadoop/hadoop/bin 4、执行命令: 命令…

H264码流进行RTP包封装

一.H264基本概念 H.264从框架结构上分为视频编码层(VCL)和网络抽象层(NAL),VCL功能是进行视频编解码,包括运动补偿预测,变换编码和熵编码等功能;NAL用于采用适当的格式对VCL视频数据…

springboot实现文件上传与下载的通用思路模板流程

文件上传 需要将参数设置成为MultipartFile类型 或者我们可以使用spring提供的一个文件内置工具类 FileCopyUtils.copy(InputStream in…

线性方程组计算

一、题型 1)给一个线性方程组,问:唯一解?无解?无穷多解? 2)在上面的基础上,给一个未知数λ,问:当λ为几时,方程组唯一解?无解&#…

Git命令 本地-远程 简洁步骤

Git命令 本地-远程 简洁步骤 1、基本的操作 1.1、本地初始化、拉取和暂存 git init # 初始化仓库 git remote add origin SSH地址 # 建立远程连接 或者 git clone SSH地址 # 克隆远程仓库 git remote -v # 查看远程仓库地址 git status …

STM32F103RCT6开发板M3单片机教程07-TIMER1CH1输出 PWM做LED呼吸灯

概述 本教程使用是(光明谷SUN_STM32mini开发板) 免费开发板 在谷动谷力社区注册用户,打卡,发帖求助都可以获取积分,当然最主要是发原创应用文档奖励更多积分. (可用积分换取,真的不用钱&…

2D绘图--视口窗口setViewport setWindow

目录 1 setViewport setWindow 2 示例 3 实际应用(个人理解) 4 总结 1 setViewport setWindow 在Qt中,QPainter的setViewport()方法用于定义绘图区域在窗口坐标系中的可视部分。 QPainter::setWindow() 是 Qt 库中 QPainter 类的一个方法…

数据库创建表并插入数据练习题

一、创建表的要求 创建一个英雄表(hero) 主键 name nickname address groups email telphone 二、 操作步骤 1.登录MySQL [rootlocalhost ~]# systemctl start mysqld [rootlocalhost ~]# mysql -uroot -p Enter password: Welcome to the MySQL monitor. Commands end with…

C++ unordered_multimap用法总结

std::unordered_multimap 是 C 标准模板库中的一种无序关联容器&#xff0c;它允许存储相同键的多个副本&#xff0c;并提供高效的插入、查找和删除操作。以下是 std::unordered_multimap 的用法总结&#xff1a; 包含头文件&#xff1a; #include <unordered_map>创建…

NAND系统性能提升常见方案

随着NAND的发展&#xff0c;针对NAND系统性能提升&#xff0c;业内目前主要的做法有以下几种方案&#xff1a; 1.提升总线频率和优化AC时序&#xff1a; 提高NAND闪存接口的工作频率可以显著加快数据传输速度。通过不断改进工艺和技术&#xff0c;缩短了信号稳定时间、降低了延…

工程师职称申报业绩是如何要求的?

无论是初级职称还是中级职称或是高级职称&#xff0c;评审的重要条件之一就是相关的业绩证明。 一、个人业绩&#xff0c;比如你做过哪些与本专业相关的业绩证明&#xff0c;像工程类的职称&#xff0c;你的业绩证明就包括中标通知书、竣工验收报告&#xff0c;或是你参与工程建…

php 的数学常用函数

目录 1.常用列表 2.代码示例 1.常用列表 函数名描述输入输出abs()求绝对值数字绝对值数字ceil()进一法取整浮点数进一取整floor()舍去法求整浮点数直接舍去小数部分fmod()浮点数取余 两个浮点 数,x>y 浮点余数 pow()返回数的n次方基础数n次方乘方值round()浮点数四舍五入…

C++(20):普通函数的参数使用auto声明

C++20进一步解放了对auto的使用,可以在函数的参数中使用auto,auto&, auto&& 并且类型推导的规则与C++11中是一致的 C++(11):auto通过初始化类型推导变量类型_auto如何实现自动推导变量的类型-CSDN博客 #include <vector> #include <iostream> #inc…

区块链是怎么存储数据的?

每个块都是有大小限制的新的数据存储单元&#xff0c;当前数据不到上限&#xff0c;那么都可以添加进块。当前数据达到了上限&#xff0c;那么就得分表/分块&#xff0c;超限的那部分数据就需要等待下个区块存储 存储的数据&#xff1a;和mysql一样&#xff0c;文本数据直接存储…

Python 全栈体系【四阶】(十二)

第四章 机器学习 十五、朴素贝叶斯 朴素贝叶斯是一组功能强大且易于训练的分类器&#xff0c;它使用贝叶斯定理来确定给定一组条件的结果的概率&#xff0c;“朴素”的含义是指所给定的条件都能独立存在和发生。朴素贝叶斯是多用途分类器&#xff0c;能在很多不同的情景下找到…

只有人性才是世间的真相

一、少喝鸡汤&#xff0c;多研究人性&#xff0c;因为只有人性才是世间的真相。 从现在开始&#xff0c;你要反自己的人性&#xff0c;顺应别人的人性去做事。你之所以现在走入了人生和事业的低谷&#xff0c;是因为自己过去的种种错误导致的。 从现在开始&#xff0c;要懂得…

完整的模型验证套路

读取图片 from PIL import Imageimg_path "../Yennefer_of_Vengerberg.jpg" image Image.open(img_path) print(image)转换成灰度图&#xff08;可选&#xff09; image image.convert(L) image.show()转换成RGB格式 image image.convert(RGB)因为png格式是四…

基础数据结构之堆栈

堆栈的定义、入栈、出栈、查询栈顶 #include <stdio.h> #include <stdlib.h>typedef int DataType;// 定义栈节点结构体 struct StackNode;struct StackNode {DataType data; // 节点数据struct StackNode* next; // 指向下一个节点的指针 };// 定…