Docker 入门使用说明
Docker 入门使用说明
Docker 安装
Docker 官网:Docker
Docker 安装说明:Docker 安装说明
这里由于 Docker 在实时更新,所以每次安装 Docker 用来导入 key 的链接可能会有变化,这里就参考官方的安装方法即可
Docker 常用命令说明
基础操作
查询镜像:
docker search 要查询的镜像
这里会显示所有当前镜像的版本和网友封装的版本
拉取镜像:
docker pull 镜像名称:版本号
创建镜像:
docker create 镜像名称:版本号
当我们没有当前镜像,docker 就会自动把镜像下载到本地
查看本地容器镜像:
docker image ls
这里会显示我们本地所有的镜像
运行镜像:
docker run --name 名称 系统:版本号
这样就运行了一个镜像,但是我们发现我们并没有进入到协同命令行中
docker run --name 名称 -it 系统:版本号
这样我们就在运行 docker 镜像的同时,进入到了命令行下
查看当前所有容器的列表
docker ps -a
这将显示所有容器的列表,包括已停止的容器。从列表中,我们可以找到我们想要运行的容器的 ID 和名称
启动已有容器
docker start <容器ID/名称>
请确保将 <容器ID/名称> 替换为你要启动的容器的实际 ID 或名称
连接到正在运行的容器
docker attach <容器ID/名称>
这将连接到正在运行的容器,并将终端输入和输出重定向到容器中,这意味着你可以在容器中执行命令和操作
关闭运行的镜像:
docker stop <容器ID/名称>
删除指定容器
docker rm <容器ID/名称>
Docker 全部关闭、全部重启、全部删除操作
启动所有容器
docker start $(docker ps -a | awk '{ print $1}' | tail -n +2)
重启所有容器
docker restart $(docker ps -a -q)
关闭所有容器
docker stop $(docker ps -a | awk '{ print $1}' | tail -n +2)
删除所有容器
docker rm $(docker ps -a | awk '{ print $1}' | tail -n +2)
删除所有镜像
docker rmi $(docker images | awk '{print $3}' |tail -n +2)
Docker 名称修改
使用 --name 选项重命名容器
docker run --name 我的容器 容器名称(自定义)
如果容器已经存在,可以使用 docker rename 命令来重命名容器:
docker rename old-container-name new-container-name
这将把名为 old-container-name 的容器重命名为 new-container-name
使用 docker-compose.yml 文件
如果您在运行多个 Docker 容器,例如作为一组服务,可以使用 docker-compose.yml 文件来命名它们。在这种情况下,您可以在 docker-compose.yml 文件中为每个容器指定一个名称,例如:
services:web:image: nginxcontainer_name: my_nginxdb:image: mysqlcontainer_name: my_mysql
这将创建两个容器:一个名为 my_nginx 的 NGINX 容器,另一个名为 my_mysql 的 MySQL 容器
使用 docker update 命令
如果您使用 docker-compose 来管理 Docker 服务,您可以使用以下命令来重命名服务(容器):
docker-compose rename old-service-name new-service-name
这将把名为 old-service-name 的服务/容器重命名为 new-service-name
Docker 文件处理
本地文件上传到指定容器中:
docker cp 本地文件路径 容器名称/id:容器文件路径
容器挂载本地文件夹:
docker run -it -v 本地目录:容器内目录 镜像:版本
使用上述命令,必须是新建容器
Docker 查看容器大小(内存与运行内存)
docker 查看容器占用磁盘大小
docker system df # 查看总体占用
docker system df -v # 查看每个 image、container 详细大小
使用 docker inspect 命令,该命令可以返回有关 Docker 对象(容器、镜像等)的详细信息,包括容器大小
docker inspect --format='{{.Size}}' <container_name_or_id> # 这里就是通过查询容器配置信息的方式实现对容器大小的查询
查看容器磁盘空间占用:
docker ps -s
设置容器运行内存大小
这里通过 docker run 命令,使用 --memory 参数 和 --memory-swap 来设置容器的内存大小和交换内从大小:
docker run -d -name mu_container_name --memroy 1g --memory-swap 1g <image_name>
这里 --memory 设置的是容器的物理内存,–memory-swap 是虚拟内存既交换内存
容器内部查询
这里可以在容器内部,使用 Linux 命令,就像在 Linux 下一样即可
容器导入导出
#导出一个已经创建的容器导到一个文件
docker export -o 文件名.tar 容器id
#将文件导入为镜像
docker import 文件名.tar 镜像名:镜像标签
Docker 打包上传本地镜像
打包镜像(需要 Dockerfile)
构建好自己的镜像后,使用以下命令进行打包:
docker build -t <image_name>:<tag>
命令来创建一个本地标记为 <image_name> 的镜像。其中 : 表示版本号或者标签名称,. 表示当前目录。例如我的:
docker build -t risc64-unknown-elf:v1.0 .
这里如果末尾没有空格和点会报错:
ERROR: "docker buildx build" requires exactly 1 argument.
打包镜像(不需要 Dockerfile)
使用 docker commit 命令创建:
docker commit riscv64-unknown-elf risc64-unknown-elf:v1.0
上传镜像
这里选择上传的云端平台是 Docker Hub:
Docker Hub
如果没有账号需要事先进行注册,这里选择使用 github 账号登录即可
注册后我们需要创建一个仓库用来上传我们的镜像:

这里创建方式与 github 方式类似,这里我们进入库后,网站上详细介绍了如何进行上传和上传的链接等:

首先需要链接本地镜像与云端仓库:
# docker tag 本地镜像名:版本号 dockerhub用户名/仓库名:版本号
# 没有版本号默认latest
docker tag riscv64-unknown-elf:v1.0 ppqppl/risc64-unknown-elf:v1.0
最后我们就可以 push 我们本地的镜像了,这里注意,一定要保持本地网络畅通,不然上传到一半失败就要重新开始:
docker login
# 然后依次输入docker用户名,密码.
# push本地镜像到仓库
docker push ppqppl/risc64-unknown-elf:v1.0
相关文章:
Docker 入门使用说明
Docker 入门使用说明 Docker 安装 Docker 官网:Docker Docker 安装说明:Docker 安装说明 这里由于 Docker 在实时更新,所以每次安装 Docker 用来导入 key 的链接可能会有变化,这里就参考官方的安装方法即可 Docker 常用命令说…...
UE5 LiveLink 自动连接数据源,以及打包后不能收到udp消息的解决办法
为什么要自动连接数据源,因为方便打包后接收数据,这里我是写在了Game Instance,也可以写在其他地方,自行替换成Beginplay和Endplay 关于编辑器模式下能收到udp消息,打包后不能收到消息的问题有两点需要排查,启动打包后…...
国内ip切换是否合规?
在网络使用中,IP地址切换是一种常见的行为,可以用于实现隐私保护、访问地域限制内容等目的。然而,对于国内用户来说,IP地址切换是否合规一直是一个备受关注的话题。在中国,网络管理严格,一些IP切换行为可能…...
Flutter 3.13 之后如何监听 App 生命周期事件
在 Flutter 中,您可以监听多个生命周期事件来处理应用程序的不同状态,但今天我们将讨论 didChangeAppLifecycleState 事件。每当应用程序的生命周期状态发生变化时,就会触发此事件。可能的状态有 resumed 、 inactive 、 paused 、 detached …...
基于docker创建深度学习开发环境
基于docker创建深度学习开发环境 记录几个链接 第一步:配置docker环境,此处大把教程,不再赘述第二步:拉取nvidia做好的cuda和cudnn镜像: docker pull nvcr.io/nvidia/cuda:12.2.0-devel-ubuntu20.04如果有其他需求&a…...
Linux系统——硬件命令
目录 一.网卡带宽 1.查看网卡速率——ethtool 网卡名 2.查看mac地址——ethtool -P 网卡名 二、内存相关 1.显示系统中内存使用情况——free -h 2.显示内存模块的详细信息——dmidecode -t memory 三、CPU相关 1.查看CPU架构信息——lscpu 2.性能模式 四、其他硬件命…...
R语言Meta分析核心技术:回归诊断与模型验证
R语言作为一种强大的统计分析和绘图语言,在科研领域发挥着日益重要的作用。其中,Meta分析作为一种整合多个独立研究结果的统计方法,在R语言中得到了广泛的应用。通过R语言进行Meta分析,研究者能够更为准确、全面地评估某一研究问题…...
动态规划Dynamic Programming
上篇文章我们简单入门了动态规划(一般都是简单的上楼梯,分析数据等问题)点我跳转,今天给大家带来的是路径问题,相对于上一篇在一维中摸爬滚打,这次就要上升到二维解决问题,但都用的是动态规划思…...
详解机器学习概念、算法
目录 前言 一、常见的机器学习算法 二、监督学习和非监督学习 三、常见的机器学习概念解释 四、深度学习与机器学习的区别 基于Python 和 TensorFlow 深度学习框架实现简单的多层感知机(MLP)神经网络的示例代码: 欢迎三连哦! 前言…...
语音转文字——sherpa ncnn语音识别离线部署C++实现
简介 Sherpa是一个中文语音识别的项目,使用了PyTorch 进行语音识别模型的训练,然后训练好的模型导出成 torchscript 格式,以便在 C 环境中进行推理。尽管 PyTorch 在 CPU 和 GPU 上有良好的支持,但它可能对资源的要求较高&#x…...
第1篇:Mysql数据库表结构导出字段到Excel(一个sheet中)
package com.xx.util;import org.apache.poi.ss.usermodel.*; import org.apache.poi.xssf.usermodel.XSSFWorkbook;import java.sql.*; import java.io.*;public class DatabaseToExcel {public static void main(String[] args) throws Exception {// 数据库连接配置String u…...
Request请求参数----中文乱码问题
一: GET POST获取请求参数: 在处理为什么会出现中文乱码的情况之前, 首先我们要直到GET 以及 POST两种获取请求参数的不同 1>POST POST获取请求参数是通过输入流getReader来进行获取的, 通过字符输入流来获取响应的请求参数, 并且在解码的时候, 默认的情况是 ISO_885…...
labelImg安装方法
labelImg安装方法(简单方法) - 知乎 (zhihu.com) 1. lableImg下载 git clone https://github.com/tzutalin/labelImg.git 2. 制作lableImg所需的"condapython"环境(conda需要先安装,最好再设置下下载源) 打开Anaconda Prompt对话框 # 创建环境 conda create -n …...
吴恩达2022机器学习专项课程(一) 3.6 可视化样例
问题预览 1.本节课主要讲的是什么? 2.不同的w和b,如何影响线性回归和等高线图? 3.一般用哪种方式,可以找到最佳的w和b? 解读 1.课程内容 设置不同的w和b,观察模型拟合数据,成本函数J的等高线…...
C#入门及进阶教程|Windows窗体属性及方法
1.Windows窗体 窗体本身是一个对象,对应于System.Windows.Forms名称空间的Form类。它有自己的属性、方法和事件,用于控制窗体的外观和行为。窗体又是各种控件的容器,用于容纳各种窗体控件。如果想生成窗体,必须从Form类派生出自己…...
34-Java传输对象模式 ( Transfer Object Pattern )
Java传输对象模式 实现范例 传输对象模式(Transfer Object Pattern)用于从客户端向服务器一次性传递带有多个属性的数据传输对象也被称为数值对象,没有任何行为传输对象是一个具有 getter/setter 方法的简单的 POJO 类,它是可序列…...
flutter实现视频播放器,可根据指定视频地址播放、设置声音,进度条拖动,下载等
需要装依赖: gallery_saver: ^2.3.2video_player: ^2.8.3 AndroidManifest.xml <uses-permission android:name"android.permission.INTERNET"/> 实现代码 import dart:async; import dart:io;import package:flutter/material.dart; import pa…...
微服务(基础篇-001-介绍、Eureka)
目录 认识微服务(1) 服务架构演变(1.1) 单体架构(1.1.1) 分布式架构(1.1.2) 微服务(1.1.3) 微服务结构 微服务技术对比 企业需求 SpringCloud(1.2) …...
mac 解决随机出现的蓝色框
macbookair为什么打字的时候按空格键会出现蓝色框? - 知乎...
深入理解与使用go之函数与方法--使用
深入理解与使用go之函数与方法–理解与使用 文章目录 引子函数与方法分类函数函数入参普通参数可变参数默认值返回命名不带命名带命名讨论init 函数defer 函数方法值接收指针接收构造函数引子 在 Go 语言中,函数被视为一等公民(First-Class Citizens),这意味着函数可以像其…...
LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明
LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造,完美适配AGV和无人叉车。同时,集成以太网与语音合成技术,为各类高级系统(如MES、调度系统、库位管理、立库等)提供高效便捷的语音交互体验。 L…...
XCTF-web-easyupload
试了试php,php7,pht,phtml等,都没有用 尝试.user.ini 抓包修改将.user.ini修改为jpg图片 在上传一个123.jpg 用蚁剑连接,得到flag...
微软PowerBI考试 PL300-选择 Power BI 模型框架【附练习数据】
微软PowerBI考试 PL300-选择 Power BI 模型框架 20 多年来,Microsoft 持续对企业商业智能 (BI) 进行大量投资。 Azure Analysis Services (AAS) 和 SQL Server Analysis Services (SSAS) 基于无数企业使用的成熟的 BI 数据建模技术。 同样的技术也是 Power BI 数据…...
Opencv中的addweighted函数
一.addweighted函数作用 addweighted()是OpenCV库中用于图像处理的函数,主要功能是将两个输入图像(尺寸和类型相同)按照指定的权重进行加权叠加(图像融合),并添加一个标量值&#x…...
vue3 字体颜色设置的多种方式
在Vue 3中设置字体颜色可以通过多种方式实现,这取决于你是想在组件内部直接设置,还是在CSS/SCSS/LESS等样式文件中定义。以下是几种常见的方法: 1. 内联样式 你可以直接在模板中使用style绑定来设置字体颜色。 <template><div :s…...
从零开始打造 OpenSTLinux 6.6 Yocto 系统(基于STM32CubeMX)(九)
设备树移植 和uboot设备树修改的内容同步到kernel将设备树stm32mp157d-stm32mp157daa1-mx.dts复制到内核源码目录下 源码修改及编译 修改arch/arm/boot/dts/st/Makefile,新增设备树编译 stm32mp157f-ev1-m4-examples.dtb \stm32mp157d-stm32mp157daa1-mx.dtb修改…...
ElasticSearch搜索引擎之倒排索引及其底层算法
文章目录 一、搜索引擎1、什么是搜索引擎?2、搜索引擎的分类3、常用的搜索引擎4、搜索引擎的特点二、倒排索引1、简介2、为什么倒排索引不用B+树1.创建时间长,文件大。2.其次,树深,IO次数可怕。3.索引可能会失效。4.精准度差。三. 倒排索引四、算法1、Term Index的算法2、 …...
A2A JS SDK 完整教程:快速入门指南
目录 什么是 A2A JS SDK?A2A JS 安装与设置A2A JS 核心概念创建你的第一个 A2A JS 代理A2A JS 服务端开发A2A JS 客户端使用A2A JS 高级特性A2A JS 最佳实践A2A JS 故障排除 什么是 A2A JS SDK? A2A JS SDK 是一个专为 JavaScript/TypeScript 开发者设计的强大库ÿ…...
人工智能(大型语言模型 LLMs)对不同学科的影响以及由此产生的新学习方式
今天是关于AI如何在教学中增强学生的学习体验,我把重要信息标红了。人文学科的价值被低估了 ⬇️ 转型与必要性 人工智能正在深刻地改变教育,这并非炒作,而是已经发生的巨大变革。教育机构和教育者不能忽视它,试图简单地禁止学生使…...
永磁同步电机无速度算法--基于卡尔曼滤波器的滑模观测器
一、原理介绍 传统滑模观测器采用如下结构: 传统SMO中LPF会带来相位延迟和幅值衰减,并且需要额外的相位补偿。 采用扩展卡尔曼滤波器代替常用低通滤波器(LPF),可以去除高次谐波,并且不用相位补偿就可以获得一个误差较小的转子位…...
