Docker安装与基础操作

Docker优势:

1.交付物标准化:标准化设计大大提高了物流体系的运行效率。传统的软件交付物包括:应                              用程序、依赖软件安装包、配置说明文档、安装文档、上线文档等非标准                                化组件。

2.一次构建,多次交付:类似于集装箱的"一次装箱,多次运输",Docker镜像可以做到"一次                                         构建,多次交付"

3.应用隔离:Docker可以隔离不同应用程序之间的相互影响,但是比虚拟机开销更小

总之容器技术部署速度快,开发,测试更敏捷,提高系统利用率,降低资源成本。

 Docker的度量:Docker是利用容器来实现的一种轻量级的虚拟技术,从而在保证隔离性的    同时达到节省资源的目的。Docker的可移植性可以让它一次建立,到处运行。Docker的度量可以从以下四个方面进行:

1.隔离性:Docker采用libcontainer作为默认容器,代替了以前的LXC。libcontainer的隔离性主要是通过内核的命名空间来实现的,有pid、net、ipc、mnt、uts命令空间,将容器的进程、网络、消息、文件系统和主机名进行隔离。

2.可度量性: Docker主要通过cgroups控制组来控制资源的度量和分配。

3.移植性:Docker利用AUFS来实现对容器的快速更新。AUFS是一种支持将不同目录挂载到同一个虚拟文件系统下的文件系统,支持对每个目录的读写权限管理。

4.安全性:安全性可以分为容器内部之间的安全性;容器与托管主机之间的安全性。容器内部之间的安全性主要是通过命名空间和cgroups来保证的。容器与托管主机之间的安全性主要是通过内核能力机制的控制,可以防止Docker非法入侵托管主机。

 一、安装配置docker

1.国内源安装新版docker

配置阿里云Docker Yum源# yum install -y yum-utils device-mapper-persistent-data lvm2 git# yum-config-manager --add-repo http://mirrors.aliyun.com/docker- ce/linux/centos/docker-ce.repo
安装最新版本# yum install docker-ce -y
查看docker版本# yum list docker-ce --showduplicates
启动docker服务# systemctl enable docker# systemctl start docker
查看docker版本状态# docker -v
查看docker运行状态# docker info

2.生成docker的环境配置

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{"registry-mirrors": ["https://pilvpemn.mirror.aliyuncs.com"],"exec-opts": ["native.cgroupdriver=systemd"],"log-driver": "json-file","log-opts": {"max-size": "100m"},"storage-driver": "overlay2"
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
#注意:一定注意编码问题,出现错误---查看命令:journalctl -amu docker 即可发现错误

3.docker数据存储位置

查看存储路径
[root@yixuan ~]# docker info | grep Root
修改默认存储位置:
在dockerd的启动命令后面追加--data-root参数指定新的位置
[root@yixuan ~]# vim  /usr/lib/systemd/system/docker.service
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --data-root=/data
[root@yixuan ~]# systemctl daemon-reload 
[root@yixuan ~]# systemctl restart docker
查看是否生效:
[root@yixuan ~]# docker info | grep Root

二、Doctor的基础命令

镜像管理

# 搜索镜像 -f 指定star数量

docker search iname [-f starts=100]

# 拉取镜像

docker pull iname

#查看本地镜像 -q 只显示id

docker image list

docker images

docker image ls

#查看镜像的详细信息

docker image inspect iname

#删除镜像

docker  rmi  iname

#删除所有镜像 -f 强制删除,但是实际镜像不会删除,如果镜像删除不掉,说明可能有容器正在运行

docker  rmi  $(docker images -q)  [-f]

#查看镜像的制作过程

docker history iname

容器管理

 #创建容器 -i 标准的输入输出 -t 分配一个虚拟终端  -d  后台运行 --name 指定容器的名字 -p 指定端口映射 -e 指定环境变量

docker  run  -itd  iname   #运行回启动容器

docker  create  -it  iname  #创建容器,但是不启动

#查看运行中容器,-a 可以查看所有状态

docker  ps

#删除容器  -f  强制删除

docker  rm [-f]  cname

#查看容器的详细信息

docker  inspect  cname

#启动

docker  start

#关闭

docker  stop

#重启

docker  restart

#挂起

docker  pause

#恢复

docker  unpause

#强制关闭

docker  kill

#进入容器

docker  attach  cname  #通过命令进入容器 command,不常用

docker  exec  -it  cname  command  #进入容器,在退出时无需执行ctrl+p+q,不会影响容器运行,command可以直接写为 /bin/bash

#复制

docker  cp  cname:path  hostpath

#查看容器内的进程

docker  top  cname

#容器使用宿主机资源情况

docker  stats  [cname]

#查看容器日志

docker  logs  cname

#等待容器关闭返回值

docker  wait

#docker 服务日志

docker events

#展示已经映射的端口

docker port  cname

#查看容器内部的变化

docker  diff

 容器打包

docker export  -o  cname.tar  cname

docker  export  cname > iname.tar   (cname为容器名,iname为镜像名)

#导入镜像归档文件到其他宿主机:

docker  import  cname.tar   cname:v1

 镜像迁移

#保存一台宿主机上的镜像为tar文件,然后可以导入到其他宿主机上:save

讲镜像打包,与下面的load命令相对应

docker save -o  nginx.tar  nginx:tag

load

#与上面的save命令相对应,将上面save命令打包的镜像通过load命令导入

docker  load  <  nginx.tar

#容器的迁移

docker  export  b25f3c  |  gzip > mynginx123.tar

zcat  mynginx123.tar  |  docker import  - mynginx123

镜像,容器深度操作

#显示镜像摘要 

docker  images  --digests

#过滤镜像

docker  images  [-f|--filter] "key=value"

dangling:显示标记为空的镜像,值只有true和false
label:这个是根据标签进行过滤,其中lable的值,是docker在编译的时候配置的或者在Dockerfile中配置的
before:这个是根据时间来进行过滤,其中before的value表示某个镜像构建时间之前的镜像列表
since:跟before正好相反,表示的是在某个镜像构建之后构建的镜像
reference:添加正则进行匹配

#镜像格式化输出

docker images --format "{{.ID}}\t{{.Repository}}"

.ID    镜像ID
.Repository    镜像仓库
.Tag 镜像标签[版本]
.Digest    镜像hash值
.CreatedSince 创建镜像后的时间
.CreatedAt    创建镜像的时间
.Size 镜像大小

#容器格式化输出

docker ps --format "{{.ID}}\t{{.Command}}"

.ID    容器ID
.Image    镜像ID
.Command    执行的命令
.CreatedAt    容器创建时间
.RunningFor    运行时长
.Ports    暴露的端口
.Status    容器状态
.Names    容器名称
.Label    分配给容器的所有标签
.Mounts    容器挂载的卷
.Networks    容器所用的网络名称

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

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

相关文章

234 回文链表

解题思路&#xff1a; \qquad 由于链表的结构特点&#xff0c;访问链表中的元素的时间复杂度为O(n)。相比较而言&#xff0c;使用数组会方便很多&#xff0c;实现O(1)访问。 \qquad 所以这个题&#xff0c;可以先遍历一遍把数值存到数组中&#xff0c;再使用双指针判断是否是…

openlayers地图使用---跟随地图比例尺动态标绘大小的一种方式

openlayers地图使用—跟随地图比例尺动态标绘大小的一种方式 预期&#xff1a;随着地图比例尺放大缩小&#xff0c;地图上的标绘随着变化尺寸 结果图 页面元素 <script src"https://cdn.bootcdn.net/ajax/libs/openlayers/8.1.0/dist/ol.min.js"></script…

7_企业架构MySQL读写分离

企业架构MySQL读写分离 学习目标和内容 1、能够理解读写分离的目的 2、能够描述读写分离的常见实现方式 3、能够通过项目框架配置文件实现读写分离 4、能够通过中间件实现读写分离 一、背景描述及其方案设计 1、业务背景描述 时间&#xff1a;2014.6.-2015.9 发布产品类型&…

AntDesignBlazor示例——创建项目

本示例是AntDesign Blazor的入门示例&#xff0c;在学习的同时分享出来&#xff0c;以供新手参考。 示例代码仓库&#xff1a;https://gitee.com/known/AntDesignDemo 1. 开发环境 VS2022 17.8.2.NET8AntDesign 0.16.2 2. 学习目标 创建新项目安装AntDesign组件包及使用方…

帆软部分公式及sql生成(月份、季度取数)

以下均为帆软公式&#xff1a; 1.获得当前月往后推三月&#xff0c;如当前为8月&#xff0c;获得“9-11月”字样if($DATA_MONTH_BOX<10,($DATA_MONTH_BOX1)-($DATA_MONTH_BOX3)月, if($DATA_MONTH_BOX10,$DATA_YEAR_BOX年11月-$NEXT_YEAR年1月, if($DATA_MONTH_BO…

不知道如何制作电商产品说明书?推荐一个很好的方法!

作为一名电商从业者&#xff0c;你可能会经常面临一个问题&#xff1a;如何制作一份详细且吸引人的产品说明书&#xff1f;这的确是一个棘手的问题&#xff0c;因为产品说明书不仅要准确地描述产品的特点和功能&#xff0c;还要能够吸引潜在客户的注意。 一、电商网站制作产品说…

基于轻量级模型GHoshNet开发构建眼球眼疾识别分析系统,构建全方位多层次参数对比分析实验

工作中经常会使用到轻量级的网络模型来进行开发&#xff0c;所以平时也会常常留意使用和记录&#xff0c;在前面的博文中有过很多相关的实践工作&#xff0c;感兴趣的话可以自行移步阅读即可。 《移动端轻量级模型开发谁更胜一筹&#xff0c;efficientnet、mobilenetv2、mobil…

动态规划求解0/1背包问题

题目: 你有一个背包和一些物品&#xff0c;每个物品都有自己的体积和价值。背包有一个最大的体积限制。目标是选择一些物品放入背包&#xff0c;使得背包中物品的总价值最大&#xff0c;同时保证背包中物品的总体积不超过背包的体积限制。 思路: 初始化变量和数组&#xff1a;…

06、pytest将多个测试放在一个类中

官方用例 # content of test_class.py # 实例1 class TestClass:def test_one(self):x "this"assert "h" in xdef test_two(self):x "hello"assert hasattr(x,"check")# content of test_class_demo.py # 每个测试都有唯一的类实例…

VUE学习笔记(表单数据收集)

<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>收集表单数据</title><script type"t…

Java异常机制入门详解(下)

异常的处理方式 异常有3中处理方式&#xff0c;分别是&#xff1a; ①JVM默认的处理方式 ②自己处理 ③抛出异常 JVM默认的处理方式 ●把异常的名称&#xff0c;异常原因及异常出现的位置等信息输出在了控制台&#xff08;以红色字体&#xff09; ●程序停止执行&#x…

CopyOnWriteArrayList怎么用

什么是CopyOnWriteArrayListCopyOnWriteArrayList常用方法CopyOnWriteArrayList源码详解CopyOnWriteArrayList使用注意点CopyOnWriteArrayList存在的性能问题CopyOnWriteArrayList 使用实例基本应用实例并发应用实例 拓展写时复制 什么是CopyOnWriteArrayList CopyOnWriteArra…

企业网络安全守护者:EventLog Analyzer日志审计系统

在当今数字时代&#xff0c;企业网络不仅仅是业务运营的核心&#xff0c;也成为各种潜在威胁的目标。为了保障企业的网络安全&#xff0c;日志审计系统成为了不可或缺的一环。其中&#xff0c;ManageEngine的EventLog Analyzer作为一款强大而全面的日志管理与审计解决方案&…

回顾Django的第六天

1.session的使用 1.1Cookie 客户端浏览器上的键值对----为了做会话保持 -怎么来的&#xff1f; 服务端写入的---》服务端再返回的响应头中写入---》浏览器会自动取出来--》存起来 -key value 形式--》过期时间---》path---》http only。。。 -只要浏览器中有cookie&…

【第三方】微信登录

目录 前言小程序登录步骤说明前端效果涉及到的接口登录凭证&#xff1a;wx.login获取用户信息&#xff1a;wx.getUserInfo 后端涉及到接口小程序登录 代码展示 微信扫码登录 前言 微信官方文档&#xff0c;需要对接哪个模块就从哪里进入。 由于本次我们需要的是小程序的登录。…

有趣的代码——有故事背景的程序设计3

这篇文章再和大家分享一些有“背景”的程序设计&#xff0c;希望能够让大家学到知识的同时&#xff0c;对编程学习更感兴趣&#xff0c;更能在这条路上坚定地走下去。 目录 1.幻方问题 2.用函数打印九九乘法表 3.鸡兔同笼问题 4.字数统计 5.简单选择排序 1.幻方问题 幻方又…

【无标题】什么是UL9540测试,UL9540:2023版本增加哪些测试项目

什么是UL9540测试&#xff0c;UL9540:2023版本增加哪些测试项目 UL 9540是美国安全实验室&#xff08;Underwriters Laboratories&#xff09;发布的标准&#xff0c;名称为"UL 9540: Energy Storage Systems and Equipment"&#xff0c;翻译为中文为"能量存储…

【JavaWeb】前端工程化(VUE3)

前端工程化&#xff08;VUE3&#xff09; 文章目录 前端工程化&#xff08;VUE3&#xff09;一、概述二、ECMA6Script2.1 es6的变量和模板字符串2.2 es6的解构表达式2.3 es6的箭头函数2.4 rest和spread2.5 es6的对象创建和拷贝2.6 es6的模块化处理 三、前端工程化环境搭建3.1 N…

数据分析师的学习之路-pandas篇(7)

继续接上篇&#xff0c;这次学习下透视表、线性回归还有根据条件上颜色。 3.9 透视表 在excel里也经常用到透视表来构建想要的列的组合来形成一个新的表&#xff0c;在pandas里也能做。 举例数据是这样的&#xff1a; 是各种类产品的订单数据&#xff0c;现在想做一个透视表&…

按照官网文档 通过useExtendedLib扩展库 引入WeUI,报错 组件未定义 | 解决办法

检查开发者工具版本是否过老 参考博客 不要使用 游客模式&#xff0c;游客模式不支持&#xff0c;请注册Appid 使用。 注意 扩展库方式 和 npm 方式不能同时使用&#xff0c;会有相应报错