docker入门学习

一、docker概念

Docker 引擎是使用的是Linux内核特性的容器引擎。

二、docker的安装

1.docker,下载地址:

桌面版:Docker Desktop: The #1 Containerization Tool for Developers | Docker
服务器版:Install Docker Engine | Docker Docs

2.如遇运行报错:

报错内容:

解决方法
控制面板->程序->启用或关闭 windows 功能,开启 Windows 虚拟化和 Linux 子系统(WSL2)

3.命令行安装 Linux 内核

wsl.exe --install -d Ubuntu

上面命令很可能你安装不了,微软商店你也可能打不开,如果遇到这个问题,参考:https://blog.csdn.net/qq_42220935/article/details/104714114

4.设置开机启动 Hypervisor

bcdedit /set hypervisorlaunchtype auto

 注意:要用管理员权限打开 PowerShell

5.设置默认使用版本2

wsl.exe --set-default-version 2

6.查看 WSL 是否安装正确

wsl.exe --list --verbose

出现ubunt系统则证明安装完成

出现下图错误,点击链接安装最新版本的 WSL2
https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi
 

image.png

镜像加速器镜像加速器地址
Docker 中国官方镜像https://registry.docker-cn.com
DaoCloud 镜像站http://f1361db2.m.daocloud.io
Azure 中国镜像https://dockerhub.azk8s.cn
科大镜像站https://docker.mirrors.ustc.edu.cn
阿里云https://ud6340vz.mirror.aliyuncs.com
七牛云https://reg-mirror.qiniu.com
网易云https://hub-mirror.c.163.com
腾讯云https://mirror.ccs.tencentyun.com

"registry-mirrors": ["https://registry.docker-cn.com"]

1.png

 三、docker的常用操作命令

1.容器

1.查看容器

//命令:

docker ps [OPTIONS]  

OPTIONS说明:

-a :显示所有的容器,包括未运行的。
-f :根据条件过滤显示的内容。
--format :指定返回值的模板文件。
-l :显示最近创建的容器。
-n :列出最近创建的n个容器。
--no-trunc :不截断输出。
-q :静默模式,只显示容器编号。
-s :显示总的文件大小。

2.查看容器日志

//命令:

docker logs [OPTIONS] CONTAINER_ID

 Options:

--details            显示更多的信息
-f, --follow         跟踪实时日志
--since string    显示自某个timestamp之后的日志,或相对时间,如42m(即42分钟)
--tail string        从日志末尾显示多少行日志, 默认是all
-t, --timestamps     显示时间戳
--until string      显示自某个timestamp之前的日志,或相对时间,如42m(即42分钟)

3.杀死正在执行的容器

//杀死某个容器命令:

docker kill 容器ID

//杀死所有容器命令:

docker kill $(docker ps -a -q)

4.删除容器

//删除某个容器命令:

docker rm 容器ID

//删除所有容器命令:

docker rm $(docker ps -a -q)

4.容器启动、关闭、重启

//容器启动

docker start 容器id或者容器名

//容器关闭

docker stop 容器id或者容器名

//容器重启

docker restart 容器ID

5.创建容器

虽然docker 有docker create方法的,这样就是创建一个容器,并不会运行,run相当于create+start,新版docker推荐使用run

//创建容器命令 docker run [options]  镜像名称:镜像标签(可以用docker image查看)

docker run [OPTIONS]  REPOSITORY:TAG

 Options:

-i:表示创建并运行容器
-t:表示容器启动后会进入其命令行。通常于-i一起使用:-it表示创建并运行容器,且运行之后自动进入为当前应用打开一个默认终端
--name :为创建的容器命名。
-v:表示目录映射关系(前者是宿主机目录,后者是映射到宿主机上的目录),可以使用多个-v做多个目录或文件映射。
-d:在run后面加上-d参数,则会创建一个守护式容器在后台运行,与-t相反。
-p:表示端口映射,前者是宿主机端口,后者是容器内的映射端口,程序访问是通过宿主机映射端口来访问容器的。可以使用多个-p做多个端口映射。
-e:表示添加容器的环境变量。
--rm:让容器在退出时,自动清除挂在的卷,以便清除数据。等价于在容器退出后,执行docker rm -v。

6.拷贝容器文件

//把宿主机的文件拷贝到容器里

docker cp 需要拷贝的文件或目录 容器名称:容器目录

//从容器中拷贝文件到宿主机

docker cp 容器名称:容器目录 需要拷贝的文件或目录

7.查看容器的数据

docker inspect 容器名称(容器ID)

8.将容器保存为镜像

docker commit 容器名 保存的镜像名

9.容器备份

docker save –o 打包的后的文件名.tar 镜像名

10.容器恢复

docker load –i 你的备份镜像tar包

11.监控容器占用资源

docker stats

//默认情况下,stats 命令会每隔 1 秒钟刷新一次输出的内容直到你按下 ctrl + c。下面是输出的主要内容:

[CONTAINER]:以短格式显示容器的 ID。
[CPU %]:CPU 的使用情况。
[MEM USAGE / LIMIT]:当前使用的内存和最大可以使用的内存。
[MEM %]:以百分比的形式显示内存使用情况。
[NET I/O]:网络 I/O 数据。
[BLOCK I/O]:磁盘 I/O 数据。 
[PIDS]:PID 号。

12.导出容器

docker export  [OPTIONS]  CONTAINER

OPTIONS说明:

-o :将输入内容写到文件。

示例:docker export -o export123.tar a404c6c174a2

2.镜像 

1.查看镜像

docker image

//字段说明: 

REPOSITORY:镜像名称

TAG:镜像标签

IMAGE ID:镜像ID

CREATED:镜像的创建日期

SIZE:镜像大小

2.删除镜像

//删除单个镜像

docker rmi [options?] 镜像ID

//删除全部镜像

docker rmi [options?] $(docker images -q)

[Options]

-f  强制删除

3.检索镜像

docker search  镜像名

4.拉取镜像

docker pull  镜像名:版本   

//示例 redis最新版 

docker pull  redis:latest    //latest 表示最新版

5.制作镜像

docker build  -t 镜像名 .     //注意:最后有个 .  表示使用当前目录的Dockerfile构建;

6.将镜像保存为归档文件

docker save [OPTIONS] IMAGE [TAG]

OPTIONS 说明:

-o :输出到的文件。

//示例:

docker save -o my_golang_latest.tar mygolang:latest

7.从归档文件创建镜像

docker import [OPTIONS] file|URL|- [REPOSITORY[:TAG]]


OPTIONS说明:

-c :应用docker 指令创建镜像;

-m :提交时的说明文字;

//示例

docker import my_golang_latest.tar mygolang:latest

8.从归档文件导入镜像

docker load [OPTIONS]
OPTIONS 说明:

--input , -i : 指定导入的文件,代替 STDIN。

--quiet , -q : 精简输出信息。

//示例

docker load --input my_golang_latest.tar

注意:docker 可以使用docker load命令来导入镜像库存储文件到本地镜像库,也可以使用docker import命令来导入一个容器快照到本地镜像库。

两者的区别在于容器快照将会丢弃所有的历史记录和元数据信息,而镜像存储文件将保存完整记录,体积也会更大。此外从容器快照文件导入时,也可以重新指定标签等元数据。

9.修改镜像的tag和name

docker tag 9aed1ced115f  imagename:1.0.4

10.清理Build缓存

docker builder prune

 

 借鉴文章地址:

Docker常用命令_docker -p-CSDN博客

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

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

相关文章

# 从浅入深 学习 SpringCloud 微服务架构(六)Feign(3)

从浅入深 学习 SpringCloud 微服务架构(六)Feign(3) 一、组件的使用方式总结 1、注册中心 1) Eureka 搭建注册中心 引入依赖 spring-cloud-starter-netflix-eureka-server。 配置 EurekaServer。 通过 EnableEure…

前端路由的实现原理

当谈到前端路由时,指的是在前端应用中管理页面导航和URL的机制。前端路由使得单页应用(Single-Page Application,SPA)能够在用户与应用交互时动态地加载不同的视图,而无需每次都重新加载整个页面。 在前端开发中&…

如何在阿里云快速配置自动定时重启ECS云服务器?

背景 无论是电子商务、在线教育、游戏,还是流媒体等业务,服务器的稳定运行都是至关重要的。然而,在实际运行中,我们可能会遇到这样一些场景: 系统更新:一些操作系统或者软件的更新可能需要重启服务器才能…

bit、进制、位、时钟(窗口)、OSI七层网络模型、协议、各种码

1.bit与进制 (个人理解,具体电路是非常复杂的) 物理层数据流,bit表示物理层数据传输单位, 一个电路当中,通过通断来表示数字1和0 两个电路要通讯,至少要两根线,一根作为电势参照…

Java中使用Graphics2D绘制字符串文本自动换行 算法

效果: 代码: /*** return void* Author xia* Description //TODO 写字换行算法* Date 18:08 2021/4/1* Param []**/private static void drawWordAndLineFeed(Graphics2D g2d, Font font, String words, int wordsX, int wordsY, int wordsWidth) {FontD…

东北大学工程训练CNC加工中心(坤图)

东北大学加工中心(CNC)采用的系统为FANUC系统。 要求学生自主设计图样,编写GCODE文件,操作电脑使机床按设计路径铣出图案。 本人设计的图样为坤坤图 图为用CAD设计绘制的图样。 计算坐标,设计铣刀轨迹,得…

Linux--基础IO(上)

目录 1. 文件的边角知识 1.1 文件是什么? 1.2 文件是怎么打开的? 1.3 进程与文件 进程与文件的关系 2. 重温c语言文件接口 2.1 打开文件的方式 2.2 读写文件接口的重温 2.2.1 写文件 2.2.2 读文件 3. 系统文件I/O 3.1 系统接口 3.2 系…

【深度学习-第5篇】使用Python快速实现CNN分类(模式识别)任务,含一维、二维、三维数据演示案例(使用pytorch框架)

在之前的文章中介绍了CNN的图解入门,CNN的MATLAB分类实现,CNN的MATLAB回归实现。 卷积神经网络(Convolutional Neural Networ,简称CNN)是一种广泛应用于图像识别领域的深度学习算法。它通过模拟人类视觉系统的层次结构,可以自动提…

nginx-1.24.0 安装教程

下载nginx安装包 mkdir -p /home/app cd /home/app wget http://nginx.org/download/nginx-1.24.0.tar.gz 解压缩 tar -zxf nginx-1.24.0.tar.gz 下载nginx二进制包编译所需的工具和依赖 yum install gcc-c pcre pcre-devel zlib zlib-devel openssl openssl-devel -y 编译…

Arduino平衡小车

一,TB6612FNG电机驱动芯片 TB6612FNG是东芝半导体公司生产的一款直流电机驱动器件,它具有大电流MOSFET-H桥结构,双通道电路输出,可同时驱动2个电机. 参数名称参数值电压范围2.7-5.5V最大输入电压15V输出电流1.2A(平均)/3.2A&…

Vitis HLS 学习笔记--HLS入门示例集合-目录

目录 1. 示例集合概述 2. Interface 接口 2.1 Aggregation_Disaggregation 聚合与解聚 2.1.1 aggregation_of_m_axi_ports 2.1.2 aggregation_of_nested_structs 2.1.3 aggregation_of_struct 2.1.4 auto_disaggregation_of_struct 2.1.5 disaggregation_of_axis_port …

模块化 手写实现webpack

模块化 common.js 的导入导出方法: require \ export 和 module.exports export 和 module.export nodejs 内存1.4G -> 2.8G cjs ESModule 主要区别: require属于动态类型:加载执行 同步 esmodul是静态类型:引入时并不会真的去…

Autosar AP的基本构成

1. 引言 Autosar AP的体系结构是怎样的呢?从整体的宏观的方向上划分,分为 1)应用层,其中放置各种应用组件SWCs。2)运行时基本功能软件族群,提供基本AutoSar基本软件中间件,比如经典的通信服务…

【漏洞复现】云时空社会化商业ERP系统slogin SQL注入漏洞

漏洞描述: 云时空社会化商业ERP系统slogin存在SQL注入漏洞,攻击者可以通过此漏洞获取数据库敏感信息。 搜索语法: Fofa-Query: app"云时空社会化商业ERP系统" 漏洞详情: 1.云时空社会化商业ERP系统。 2.漏洞POC: …

智慧园区引领未来产业趋势:科技创新驱动园区发展,构建智慧化产业新体系

目录 一、引言 二、智慧园区引领未来产业趋势 1、产业集聚与协同发展 2、智能化生产与服务 3、绿色可持续发展 三、科技创新驱动园区发展 1、创新资源的集聚与整合 2、创新成果的转化与应用 3、创新文化的培育与弘扬 四、构建智慧化产业新体系 1、优化产业布局与结构…

JavaScript:将input标签中的内容打印到控制台

使用浏览器进行开发时&#xff0c;按F12可以查看网页信息。 目标&#xff1a;实现将input标签中的内容&#xff0c;打印到控制台&#xff08;console&#xff09; HTML页面的关键代码实现&#xff1a; 登录功能&#xff1a; HTML代码&#xff1a; <div class"form-…

Node.js 22 发布,原生支持 WebSocket 客户端

昨日&#xff0c;Node.js 官方博客正式宣布 Node.js 22 的发布&#xff01;新版本亮点包括 require() ES 模块、WebSocket 客户端、V8 JavaScript 引擎的更新等&#xff01; Node.js 22 将在 10 月进入长期支持 (LTS)&#xff0c;但在此之前&#xff0c;它将是接下来六个月的 …

【AI相关】数学和统计学知识

数学和统计学的知识可以分为两部分&#xff1a; 一部分是线性代数中的基础概念&#xff0c;比如标量、向量和张量。 另一部分是概率统计中常见的分布类型&#xff0c;比如正态分布和伯努利分布。 线性代数 什么是标量&#xff1f; 标量是一个单独的数&#xff0c;可以是整…

2021年全国大学生电子设计竞赛D题——基于互联网的摄像测量系统(二)

09 电路设计 前面介绍了系统的硬件框图如下&#xff1a; 硬件基本分为三块&#xff0c;两个摄像节点&#xff0c;一个终端节点。 1. 摄像节点硬件 摄像节点由一个DE10-Nano开发板和一个D8M摄像头实现&#xff0c;DE10-Nano开发板的HDMI接口外接HDMI显示器来显示拍摄到的视频。…

vue3的getCurrentInstance获取当前组件实例

vue3的setup中没有this时需要使用getCurrentInstance()来获取。 在 Vue 3 中&#xff0c;getCurrentInstance 方法可以在组合式 API&#xff08;Composition API&#xff09;中获取当前组件实例。这个方法返回一个包含了组件实例的对象&#xff0c;你可以用它来访问组件的 pro…