当前位置: 首页 > news >正文

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 账号登录即可

注册后我们需要创建一个仓库用来上传我们的镜像:

image

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

image

首先需要链接本地镜像与云端仓库:

# 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 官网&#xff1a;Docker Docker 安装说明&#xff1a;Docker 安装说明 这里由于 Docker 在实时更新&#xff0c;所以每次安装 Docker 用来导入 key 的链接可能会有变化&#xff0c;这里就参考官方的安装方法即可 Docker 常用命令说…...

UE5 LiveLink 自动连接数据源,以及打包后不能收到udp消息的解决办法

为什么要自动连接数据源&#xff0c;因为方便打包后接收数据&#xff0c;这里我是写在了Game Instance,也可以写在其他地方&#xff0c;自行替换成Beginplay和Endplay 关于编辑器模式下能收到udp消息&#xff0c;打包后不能收到消息的问题有两点需要排查&#xff0c;启动打包后…...

国内ip切换是否合规?

在网络使用中&#xff0c;IP地址切换是一种常见的行为&#xff0c;可以用于实现隐私保护、访问地域限制内容等目的。然而&#xff0c;对于国内用户来说&#xff0c;IP地址切换是否合规一直是一个备受关注的话题。在中国&#xff0c;网络管理严格&#xff0c;一些IP切换行为可能…...

Flutter 3.13 之后如何监听 App 生命周期事件

在 Flutter 中&#xff0c;您可以监听多个生命周期事件来处理应用程序的不同状态&#xff0c;但今天我们将讨论 didChangeAppLifecycleState 事件。每当应用程序的生命周期状态发生变化时&#xff0c;就会触发此事件。可能的状态有 resumed 、 inactive 、 paused 、 detached …...

基于docker创建深度学习开发环境

基于docker创建深度学习开发环境 记录几个链接 第一步&#xff1a;配置docker环境&#xff0c;此处大把教程&#xff0c;不再赘述第二步&#xff1a;拉取nvidia做好的cuda和cudnn镜像&#xff1a; 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语言作为一种强大的统计分析和绘图语言&#xff0c;在科研领域发挥着日益重要的作用。其中&#xff0c;Meta分析作为一种整合多个独立研究结果的统计方法&#xff0c;在R语言中得到了广泛的应用。通过R语言进行Meta分析&#xff0c;研究者能够更为准确、全面地评估某一研究问题…...

动态规划Dynamic Programming

上篇文章我们简单入门了动态规划&#xff08;一般都是简单的上楼梯&#xff0c;分析数据等问题&#xff09;点我跳转&#xff0c;今天给大家带来的是路径问题&#xff0c;相对于上一篇在一维中摸爬滚打&#xff0c;这次就要上升到二维解决问题&#xff0c;但都用的是动态规划思…...

详解机器学习概念、算法

目录 前言 一、常见的机器学习算法 二、监督学习和非监督学习 三、常见的机器学习概念解释 四、深度学习与机器学习的区别 基于Python 和 TensorFlow 深度学习框架实现简单的多层感知机&#xff08;MLP&#xff09;神经网络的示例代码&#xff1a; 欢迎三连哦&#xff01; 前言…...

语音转文字——sherpa ncnn语音识别离线部署C++实现

简介 Sherpa是一个中文语音识别的项目&#xff0c;使用了PyTorch 进行语音识别模型的训练&#xff0c;然后训练好的模型导出成 torchscript 格式&#xff0c;以便在 C 环境中进行推理。尽管 PyTorch 在 CPU 和 GPU 上有良好的支持&#xff0c;但它可能对资源的要求较高&#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.本节课主要讲的是什么&#xff1f; 2.不同的w和b&#xff0c;如何影响线性回归和等高线图&#xff1f; 3.一般用哪种方式&#xff0c;可以找到最佳的w和b&#xff1f; 解读 1.课程内容 设置不同的w和b&#xff0c;观察模型拟合数据&#xff0c;成本函数J的等高线…...

C#入门及进阶教程|Windows窗体属性及方法

1.Windows窗体 窗体本身是一个对象&#xff0c;对应于System.Windows.Forms名称空间的Form类。它有自己的属性、方法和事件&#xff0c;用于控制窗体的外观和行为。窗体又是各种控件的容器&#xff0c;用于容纳各种窗体控件。如果想生成窗体&#xff0c;必须从Form类派生出自己…...

34-Java传输对象模式 ( Transfer Object Pattern )

Java传输对象模式 实现范例 传输对象模式&#xff08;Transfer Object Pattern&#xff09;用于从客户端向服务器一次性传递带有多个属性的数据传输对象也被称为数值对象&#xff0c;没有任何行为传输对象是一个具有 getter/setter 方法的简单的 POJO 类&#xff0c;它是可序列…...

flutter实现视频播放器,可根据指定视频地址播放、设置声音,进度条拖动,下载等

需要装依赖&#xff1a; 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)

目录 认识微服务&#xff08;1&#xff09; 服务架构演变&#xff08;1.1&#xff09; 单体架构&#xff08;1.1.1&#xff09; 分布式架构&#xff08;1.1.2&#xff09; 微服务&#xff08;1.1.3&#xff09; 微服务结构 微服务技术对比 企业需求 SpringCloud(1.2) …...

mac 解决随机出现的蓝色框

macbookair为什么打字的时候按空格键会出现蓝色框? - 知乎...

深入理解与使用go之函数与方法--使用

深入理解与使用go之函数与方法–理解与使用 文章目录 引子函数与方法分类函数函数入参普通参数可变参数默认值返回命名不带命名带命名讨论init 函数defer 函数方法值接收指针接收构造函数引子 在 Go 语言中,函数被视为一等公民(First-Class Citizens),这意味着函数可以像其…...

接口测试中缓存处理策略

在接口测试中&#xff0c;缓存处理策略是一个关键环节&#xff0c;直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性&#xff0c;避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明&#xff1a; 一、缓存处理的核…...

如何将联系人从 iPhone 转移到 Android

从 iPhone 换到 Android 手机时&#xff0c;你可能需要保留重要的数据&#xff0c;例如通讯录。好在&#xff0c;将通讯录从 iPhone 转移到 Android 手机非常简单&#xff0c;你可以从本文中学习 6 种可靠的方法&#xff0c;确保随时保持连接&#xff0c;不错过任何信息。 第 1…...

项目部署到Linux上时遇到的错误(Redis,MySQL,无法正确连接,地址占用问题)

Redis无法正确连接 在运行jar包时出现了这样的错误 查询得知问题核心在于Redis连接失败&#xff0c;具体原因是客户端发送了密码认证请求&#xff0c;但Redis服务器未设置密码 1.为Redis设置密码&#xff08;匹配客户端配置&#xff09; 步骤&#xff1a; 1&#xff09;.修…...

鸿蒙DevEco Studio HarmonyOS 5跑酷小游戏实现指南

1. 项目概述 本跑酷小游戏基于鸿蒙HarmonyOS 5开发&#xff0c;使用DevEco Studio作为开发工具&#xff0c;采用Java语言实现&#xff0c;包含角色控制、障碍物生成和分数计算系统。 2. 项目结构 /src/main/java/com/example/runner/├── MainAbilitySlice.java // 主界…...

Typeerror: cannot read properties of undefined (reading ‘XXX‘)

最近需要在离线机器上运行软件&#xff0c;所以得把软件用docker打包起来&#xff0c;大部分功能都没问题&#xff0c;出了一个奇怪的事情。同样的代码&#xff0c;在本机上用vscode可以运行起来&#xff0c;但是打包之后在docker里出现了问题。使用的是dialog组件&#xff0c;…...

精益数据分析(98/126):电商转化率优化与网站性能的底层逻辑

精益数据分析&#xff08;98/126&#xff09;&#xff1a;电商转化率优化与网站性能的底层逻辑 在电子商务领域&#xff0c;转化率与网站性能是决定商业成败的核心指标。今天&#xff0c;我们将深入解析不同类型电商平台的转化率基准&#xff0c;探讨页面加载速度对用户行为的…...

简约商务通用宣传年终总结12套PPT模版分享

IOS风格企业宣传PPT模版&#xff0c;年终工作总结PPT模版&#xff0c;简约精致扁平化商务通用动画PPT模版&#xff0c;素雅商务PPT模版 简约商务通用宣传年终总结12套PPT模版分享:商务通用年终总结类PPT模版https://pan.quark.cn/s/ece1e252d7df...

VSCode 没有添加Windows右键菜单

关键字&#xff1a;VSCode&#xff1b;Windows右键菜单&#xff1b;注册表。 文章目录 前言一、工程环境二、配置流程1.右键文件打开2.右键文件夹打开3.右键空白处打开文件夹 三、测试总结 前言 安装 VSCode 时没有注意&#xff0c;实际使用的时候发现 VSCode 在 Windows 菜单栏…...

Electron简介(附电子书学习资料)

一、什么是Electron&#xff1f; Electron 是一个由 GitHub 开发的 开源框架&#xff0c;允许开发者使用 Web技术&#xff08;HTML、CSS、JavaScript&#xff09; 构建跨平台的桌面应用程序&#xff08;Windows、macOS、Linux&#xff09;。它将 Chromium浏览器内核 和 Node.j…...

免费批量Markdown转Word工具

免费批量Markdown转Word工具 一款简单易用的批量Markdown文档转换工具&#xff0c;支持将多个Markdown文件一键转换为Word文档。完全免费&#xff0c;无需安装&#xff0c;解压即用&#xff01; 官方网站 访问官方展示页面了解更多信息&#xff1a;http://mutou888.com/pro…...