docker 学习之路

news2024/11/25 23:03:27

在这里插入图片描述


文章目录

  • 1、官方文档
  • 2、常用命令
    • 挂载
    • Docker容器内运行的脚本或命令
    • 常用
  • 3、介绍
  • 4、Dockerfile
  • 5、问题
  • 6、链接


1、官方文档

    Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows操作系统的机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

Reference documentation | Docker Documentation
docker | Docker Documentation

2、常用命令

Docker 容器的一些命令按功能分类大致如下:

Docker环境信息 info、version
   
镜像仓库命令 login、logout、pull、push、search
   
镜像管理 build、images、import、load、rmi、save、tag、commit
   
容器生命周期管理 create、exec、kill、pause、restart、rm、run、start、stop、unpause
   
容器运维操作 attach、export、inspect、port、ps、rename、stats、top、wait、cp、diff、update
   
容器资源管理 volume、network
   
系统信息日志 events、history、logs
    1. events打印容器的实时系统事件
    2. history 打印出指定镜像的历史版本信息
    3. logs打印容器中进程的运行日志
   
docker --help #查看docker命令
docker info #docker 详细信息,镜像和容器
docker version #查看docker版本

挂载

docker run -it -v /home/test:/home centos /bin/bash

dockers run -v /容器外部文件夹路径:容器内部文件夹路径 -v 容器外部文件夹路径:容器内部文件夹路径 … …
   
设置容器内文件权限:
:ro #只读,只能通过宿主机来操作文件,容器内部无法操作!
:rw #可读可写, 默认

Docker容器内运行的脚本或命令

docker run bash -c的语法格式和参数

docker run [OPTIONS] IMAGE_NAME bash -c "COMMAND"

常用

# 帮助
docker run --help

# exec:进入容器后,开启一个新的终端,可以再里面操作
docker exec -it 容器id bashShell(/bin/bash)
# attach:进入容器正在执行的终端,不会启动新的终端进程
docker attach 容器id bashShell(/bin/bash)
# 容器内拷贝文件到主机
docker cp 容器id:容器内路径  目的主机路径
 
# ==========================================================
#新建并启动容器,参数:-i  以交互模式运行容器;-t  为容器重新分配一个伪输入终端;--name  为容器指定一个名称
docker run -i -t --name mycentos 镜像名称/镜像ID
docker run -it -v /home/test:/home ubuntu:22.04 /bin/bash
docker run -it -v /home/test:/home:ro ubuntu:22.04 /bin/bash
 
#后台启动容器,参数:-d  已守护方式启动容器
docker run -d mycentos
 
-t 参数让Docker分配一个伪终端并绑定到容器的标准输入上
-i 参数则让容器的标准输入保持打开。
-c 参数用于给运行的容器分配cpu的shares值
-m 参数用于限制为容器的内存信息,以 B、K、M、G 为单位
-v 参数用于挂载一个volume,可以用多个-v参数同时挂载多个volume
-p 参数用于将容器的端口暴露给宿主机端口 格式:host_port:container_port 或者 host_ip:host_port:container_port
--name 容器名称
--net 容器使用的网络
-d 创建一个后台运行容器
--privileged 使容器具有root权限进行进程fork
 
#使用run方式在创建时进入
docker run -it centos /bin/bash
#关闭容器并退出
exit
 
# ==========================================================
#启动止容器
docker start 容器id
# 重启容器
docker restart 容器id
# 关闭容器
docker kill 容器id
docker stop 容器id
 
# 查看正在运行的容器
docker ps
# 查看所有容 包括停止的容器
docker ps -a
# -q参数,只显示container id
docker ps -q
# 查看容器详细信息
docker inspect demo1
 
docker images -a            #列出本地所有的镜像
docker images -q            #只显示镜像ID
docker images --digests     #显示镜像的摘要信息
docker images --no-trunc    #显示完整的镜像信息
 
# 保存镜像  -a 提交人的姓名  -m “提交内容”,格式如:docker  commit  -a  -m  现有容器ID     保存后的名称:版本号
docker commit  7ca736d99653    yolov5:v6.2 
docker commit -a "xiaoming"   -m "Update target detection model" 7ca736d99653    yolov5:v6.2
# 打包tar docker save -o  tar文件名称     镜像REPOSITORY:TAG
docker save -o yolov5-v6.2.tar yolov5:v6.2
# 加载tar镜像
docker load -i yolov5-v6.2.tar
# ==========================================================
# 查看redis容器日志,默认参数
docker logs tomcat
# 查看redis容器日志,参数:-f  跟踪日志输出;-t   显示时间戳;--tail  仅列出最新N条容器日志;
docker logs -f -t --tail=20 redis
# 查看容器redis从2021年08月10日后的最新10条日志。
docker logs --since="2021-08-10" --tail=10 redis
 
# ==========================================================
docker search tomcat    # 从Docker Hub上查找tomcat镜像
STARS:                 # 关注度
docker search --filter=stars=300 tomcat     #从Docker Hub上查找关注度大于300的tomcat镜像
 
docker pull tomcat      #从Docker Hub上下载tomcat镜像,默认是最新版本。等价于:docker pull tomcat:latest
docker pull tomcat:8  # 选择指定版本下载
 
# ==========================================================
#单个镜像删除,相当于:docker rmi java:latest
docker rmi java
#强制删除(删除正在运行的镜像,注:以后台方式运行的不能被强制删除)
docker rmi -f java
#多个镜像删除,不同镜像间以空格间隔
docker rmi -f java tomcat nginx
#删除本地全部镜像
docker rmi -f $(docker images -q)

docker 常用命令
Docker 的挂载 -v参数 - 知乎

3、介绍

docker保存的镜像在哪儿
5步搞定 Windows 10 docker WSL2的镜像存储位置的修改

docker四种网络模式
Docker四种网络模式

docker修改容器网络模式
Docker 【网络】配置dns
Docker的网络配置 2 配置 DNS和主机名

4、Dockerfile

docker保存镜像、打包tar、加载tar镜像
Dockerfile详解超全
Dockerfile文件全面详解
Dockerfile制作镜像
使用DockerFile来制作镜像

5、问题

docker 中遇到fork/exec /bin/sh: operation not permitted错误
解决docker容器无网络、无法连接互联网----长期更新
Docker pull镜像一直在Waiting无法下载,根本解决方法
docker 镜像源大全
清华源

6、链接

Docker 和 Podman的区别

   
 

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

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

相关文章

【软件测试】对于测试中各式的概念,你了解多少?

目录 1.需求 2.开发模型 2.1.软件的生命周期 2.2.瀑布模型 2.3.螺旋模型 2.4.增量模型、迭代模型 2.5.敏捷模型 3.测试模式 3.1.V模型 3.2.双V模型 在学习后面的知识前,先来熟知一个概念 什么是软件测试:软件测试就是验证软件产品特性是否满足…

[java多版本管理] JEnv-for-Windows 详细安装和使用

文章目录 JEnv-for-Windows文件下载地址用法(注意:本地覆盖更改。使用本地覆盖)这是如何工作的?java 常用的版本 JEnv-for-Windows文件下载地址 温馨提示: 需要元子 文件下载地址 管理员执行jenv.bat文件 执行正常, 接下来就是…

AUTOSAR NvM模块(一)

NvMBlockDescriptor [ECUC_NVM_00061] 用于存储所有特定于块的配置参数的容器。对于每个非易失性随机存取存储器(NVRAM)块,应该指定这个容器的一个实例。 NvMBlockCrcType 定义了NVRAM块的CRC数据宽度。根据Autosar标准,此参数…

msvcp120.dll文件不见了要怎么处理?教你科学的方法修复msvcp120.dll

msvcp120.dll文件不见了?那么这时候你就要注意了,有可能你的某些程序已经打不开了!因为这个msvcp120.dll文件是用来支持程序运行的,下面我们一起来聊一下msvcp120.dll文件不见了要怎么修复。 一.msvcp120.dll文件讲解 msvcp120.d…

Java SE入门及基础(58) 并发 进程与线程概念

目录 并发 进程和线程 1. 进程和线程 2. 进程 3.线程 总结 并发 并发(Concurrency) Computer users take it for granted that their systems can do more than one thing at a time. They assume that they can continue to work in a word processor, while other app…

AI大模型怎么备案?

随着人工智能技术的飞速发展,生成式AI正逐渐渗透到我们的日常生活和各行各业中。从文本创作到艺术设计,从虚拟助手到智能客服,AI的身影无处不在。然而,技术的创新与应用,离不开法律的规范与引导。为进一步保障和监管AI…

《昇思25天学习打卡营第2天|快速入门》

文章目录 前言:今日所学:1. 数据集处理2. 网络的构建3. 模型训练4. 保存模型5. 加载模型 总体代码与运行结果:1. 总体代码2. 运行结果 前言: 今天是学习打卡的第2天,今天的内容是对MindSpore的一个快速入门&#xff0…

HarmonyOS ArkUi ArkWeb加载不出网页问题踩坑

使用 使用还是比较简单的,直接贴代码了 别忘了配置网络权限 Entry Component struct WebPage {State isAttachController: boolean falseState url: string State title: string Prop controller: web_webview.WebviewController new web_webview.WebviewCont…

锐捷网络闪耀CVPR 2024,外观异常检测方案斩获世界认可!

近日,锐捷网络在“视觉异常检测和创新性检测2024挑战赛”(Visual Anomaly and Novelty Detection 2024 Challenge,简称VAND)的少样本逻辑/结构异常检测赛道(VAND 2.0赛道2)中荣获第二名,并在计算机视觉顶级会议CVPR 2024上展示了这一成果&…

详细介绍LP-SCADA系统的核心数据采集单元

关键字:LP-SCADA系统, 传感器可视化, 设备可视化, 独立SPC系统, 智能仪表系统,SPC可视化,独立SPC系统 SCADA系统的数据采集功能是其核心组成部分,它允许系统从各种传感器、仪器和设备中收集实时数据。以下是SCADA系统数据采集功能的详细描述: 传感器和…

我的创作纪念日学期总结

🔥个人主页: Forcible Bug Maker 🔥专栏: 关于博主 目录 🌈前言🔥我的期末考试🔥我的学期总结🔥对未来的展望🌈结语 🌈前言 本篇博客主要内容:博…

SOLIDWORKS Electrical智能模型--实现机电一体化设计的关键

SOLIDWORKS Electrical 3D布线可以根据原理图自动生成线路,并且电气属性可以自动与导轨或机柜进行配合放置。但是这些电气模型该如何添加这些属性呢? 1.首先确保我们已经打开SOLIDWORKS Electrical 3D插件,接着打开一个模型,此处以…

【新版本来袭】ONLYOFFICE桌面编辑器8.1 —— 重塑办公效率与体验

文章目录 一、功能完善的PDF编辑器:重塑文档处理体验编辑文本插入和修改各种对象,如表格、形状、文本框、图像、艺术字、超链接、方程式等添加、旋转和删除页面添加文本注释和标注 二、幻灯片版式设计:创意展示的无限舞台三、改进从右至左显示…

使用SpringBoot整合Listener

常用的Web事件的监听接口如下: ServletContextListener:用于监听Web的启动及关闭 ServletContextAttributeListener:用于监听ServletContext范围内属性的改变 ServletRequestListener:用于监听用户请求 ServletRequestAttributeLi…

博睿数据受邀出席GOPS全球运维大会北京站,分享《一体化可观测数据模型和AIOps的融合实践》

2024年6月28日,第二十三届 GOPS 全球运维大会暨 XOps 技术创新峰会在北京顺利召开。大会为期2天,侧重 BizDevOps、XOps、DevOps、持续测试、SRE、可观测性、云原生等热门技术领域。并特别设置大模型运维、银行/证券数字化转型、平台工程、DevOps/AIOps 最…

游戏AI的创造思路-技术基础-机器学习(2)

本篇存在大量的公式,数学不好的孩子们要开始恶补数学了,尤其是统计学和回归方程类的内容。 小伙伴们量力而行~~~~~ 游戏呢,其实最早就是数学家、元祖程序员编写的数学游戏,一脉相承传承至今,囊括了更多的设计师、美术…

华为HCIP Datacom H12-821 卷18

1.问答题 (拖拽题)如图所示,请根据 DHCPv6 的四歩交互流程, 将报文按照顺序拖拽到相应的位置 参考答案: 1--solicit ,2--advertise , 3--equest, 4--reply 解析: DHCPv6的报文交互流程,类似于V4,先组播发现,服

二叉树的方法

目录 一、二叉树的定义 ​编辑 二、二叉树的创建 三、二叉树的遍历 1、前序遍历 2、中序遍历 3、后序遍历 4、层序遍历 四、二叉树遍历方法的使用 五、二叉树的操作 1、节点的个数 2、叶子节点的个数 3、第k层节点的个数 4、二叉树的高度 5、检查值为value的元素…

自动化巡检革命:旗晟双圆管轨道机器人的创新应用

在输煤皮带线和矿山带式输送机的巡检过程中,面临着高湿度、多粉尘、温湿度极端、噪音干扰;设备磨损频繁,难以及时发现问题;传统的人工巡检方式存在劳动强度大、效率低、检测质量不稳定、数据采集和分析滞后,无法实现实…

Promise 类的方法简介

文章目录 Promise.resolve() 和 Promise.reject()resolve()和reject()的参数 Promise.all()Promise.all()案例:多张图片上传Promse.allSettled()Promise.race()Promise.race()举例:图片加载超时Promise.race()举例:网络请求超时Promise.any()…