第11节:Docker基本操做

Docker入门流程(创建容器到构建镜像) Docker入门和运行ros系统 阅读详情

1、镜像相关命令

  • 镜像名称一般分两部分组成:[repository]:[tag]。
  • 在没有指定tag时,默认是latest,代表最新版本的镜像。

比如mysql:5.7 mysql指的是repository,5.7是tag。

截屏2022-04-09 下午6.08.03

docker builder构建一个镜像
dicker images 查看本地镜像
docker rmi xxx 删除镜像
docker push 推送镜像到远程仓库
docker pull 拉取镜像
docker save保存镜像为压缩包
docker load 加载压缩包为镜像

2、使用

1、首先去镜像仓库搜索nginx镜像,比如https://registry.hub.docker.com/

截屏2022-04-09 下午6.14.27

可以进去查看我们可以获取的一些信息

2、根据查看到的镜像信息,拉取指定版本,或者最新的

sudo docker pull nginx

3、查看本地镜像

sudo docker images

截屏2022-04-09 下午6.16.50

其他命令:

sudo docker save -o nginx.tar nginx:latest #保存为tar
sudo docker rmi nginx:latest #删除
sudo docker load -i nginx.tar #加载tar为镜像
docker load --help #查看load命令

3、容器命令

截屏2022-04-09 下午6.21.52

3.1、创建运行一个Nginx容器

docker run --name containerName -p 80:80 -d nginx

命令解读:

  • docker run :创建并运行一个容器
  • –name : 给容器起一个名字
  • -p :将宿主机端口与容器端口映射,冒号左侧是宿主机端口,右侧是容器端口
  • -d:后台运行容器
  • nginx:镜像名称,例如nginx

3.2、查看日志

docker logs -f xxx

查看名字为xxx的容器日志

3.3、进入刚才的容器

docker exec -it mn bash

命令解读:

  • docker exec :进入容器内部,执行一个命令
  • -it : 给当前进入的容器创建一个标准输入、输出终端,允许我们与容器交互
  • mn :要进入的容器的名称
  • bash:进入容器后执行的命令,bash是一个linux终端交互命令

exit是退出

3.4、进入nginx html目录

cd /usr/share/nginx/html

修改index.html

sed -i 's#Welcome to nginx#hello#g' index.html
sed -i 's#<head>#<head><meta charset="utf-8">#g' index.html

不推荐在容器中修改文件,很不方便。

3.5、总结

每个命令都可以使用在后面加–help来查看用法。

比如docker ps --help可以知道,docker ps -a 命令可以查看所有的容器,docker ps只能看大运行的容器。

nginx容器启动后,localhost访问成功。

4、容器与数据耦合问题

4.1、存在的问题

截屏2022-04-10 下午2.05.52

4.2、数据卷

数据卷(volume)是一个虚拟目录,指向宿主机文件系统中的某个目录。

我们可以将容器中的文件绑定到数据卷,这样,不同的容器就能共享相同的文件了。

截屏2022-04-10 下午2.09.19

4.3、操做数据卷

docker volume [COMMAND]
#docker volume命令是数据卷操作,根据命令后跟随的command来确定下一步的操作:
create	创建一个volume 
inspect	显示一个或多个volume的信息 
ls		  列出所有的volume 
prune		删除未使用的volume 
rm		  删除一个或多个指定的volume

1、创建数据卷

截屏2022-04-10 下午2.13.45

2、列出所有数据卷

截屏2022-04-10 下午2.15.17

3、显示数据卷信息

截屏2022-04-10 下午2.16.32

Mountpoint:指的是真实的目录

4、删除未使用的数据卷

截屏2022-04-10 下午2.19.29

5、挂载数据卷

我们在创建容器时,可以通过 -v 参数来挂载一个数据卷到某个容器目录

docker run \                 #docker run :就是创建并运行容器
  --name mn \                #--name mn :给容器起个名字叫mn
  -v html:/root/html \       #-v html:/root/htm :把html数据卷挂载到容器内的/root/html这个目录中
  -p 8080:80                 #-p 8080:80 :把宿主机的8080端口映射到容器内的80端口
  nginx \                    #nginx :镜像名称

我们先把之前创建的容器都删除了,然后创建新的:

截屏2022-04-10 下午2.29.39

可以看到,容器中的文件跑到了真实的目录下:

这样就可以用vi修改了。而且其他容器也能共享这些文件。

截屏2022-04-10 下午2.30.24

6、宿主机目录挂载

6.1、差异

之前是将容器目录挂载到数据卷下,这种方式是交给docker管理,目录比较深。

我们还可以直接挂载到我们指定的目录下。

6.2、操作

目录挂载与数据卷挂载的语法是类似的:
-v [宿主机目录]:[容器内目录]
-v [宿主机文件]:[容器内文件]

比如:
docker run --name mn -p 80:80 -v /home/dev/nginx/:/usr/share/nginx/html/ -d nginx

自己测试,这样不会自动创建出文件。

7、自定义镜像

7.1、镜像结构

截屏2022-04-10 下午3.18.11

镜像是分层结构,每一层称为一个Layer

  • BaseImage层:包含基本的系统函数库、环境变量、文件系统
  • Entrypoint:入口,是镜像中应用启动的命令
  • 其它:在BaseImage基础上添加依赖、安装程序、完成整个应用的安装和配置

7.2、什么是Dockerfile

Dockerfile就是一个文本文件,其中包含一个个的指令(Instruction),用指令来说明要执行什么操作来构建镜像。每一个指令都会形成一层Layer。

指令说明示例
FROM指定基础镜像FROM centos:6
ENV设置环境变量,可在后面指令使用ENV key value
COPY拷贝本地文件到镜像的指定目录COPY ./mysql-5.7.rpm /tmp
RUN执行Linux的shell命令,一般是安装过程的命令RUN yum install gcc
EXPOSE指定容器运行时监听的端口,是给镜像使用者看的EXPOSE 8080
ENTRYPOINT镜像中应用的启动命令,容器运行时调用ENTRYPOINT java -jar xx.jar

更新详细语法说明,请参考官网文档: https://docs.docker.com/engine/reference/builder

【Docker】掌握 Docker魔法:Windows 11 平台上的完美容器部署终极指南 【Docker】掌握 Docker魔法:Windows 11 平台上的完美容器部署终极指南 一文搞懂什么是 Docker?分析容器的工作原理、容器的架构、Docker的优势、使用 Docker的原因。 全程手把手教你Docker的安装与使用,配置阿里云镜像加速、容器常用命令! 阅读详情

相关推荐

Win11安装Docker

根据官网提示,Windows环境下下载Docker必须满足:Docker for Windows requires 64bit Windows 11 Pro and Microsoft Hyper-V(即需要64位Windows 11 Pro(专业版和企业版都可以)和Microsoft Hyper-V),Hyper-V是微软的虚拟机,在win11上是自带的,我们只需要启动就可以了。点击确定后,系统会自行更新,更新完成后提示是否重启电脑,要选择。到此就可以愉快的再windows上玩Docker了。

chenthe1的专栏 2万+

看完这一篇,你还不会Doker吗

看完这一篇,你还不会Doker吗 目录思维导图: 前言: docker大家不要觉得很难,不好学,就拿当初我们一个老师说数据库,那个东西呀,不就是个软件,一学就会,当然了docker也不过就是一个软件,安装在Linux上然后使用,那当然了,学习docker我们需要有Linux基础,如果你还不会Linux,一篇带你入门Linux,这里:https://blog.youkuaiyun.com/hello_list/article/details/123977208,因为都是博主本人写的,前后都是有联系的哦,废话不多说,开始

hello_list的博客 2302

docker-command-builder:生成 docker 命令

Docker 命令生成器 负责处理容器依赖项的 Docker 命令生成器 构建状态 安装 使用 NPM 安装库: npm install docker-command-builder 用法 您可以使用 runner 组件创建依赖容器: dockerComm = require ( "docker-command-builder" ) ; var runnerBuilderChild = dockerComm ( "runner" ) ; runnerBuilderChild . setName ( "selenium-named-chrome" ) . setImage ( "selenium-node-chrome:2.45.0" ) . setAlias ( "chrome" ) . setDaemon ( true ) ; var ru

Docker的基本使用

相应的资料 链接:https://pan.baidu.com/s/1rXqV2xWSkx7S8dEKQd63mQ 提取码:1211 1.初识Docker 1.1.什么是Docker 微服务虽然具备各种各样的优势,但服务的拆分通用给部署带来了很大的麻烦。 分布式系统中,依赖的组件非常多,不同组件之间部署时往往会产生一些冲突。 在数百上千台服务中重复部署,环境不一定一致,会遇到各种问题 1.1....

山丘i 1397

Open FPV VTX与Betaflight的MSP协议配置详解:从硬件连接到OSD显示

本文详细解析了如何通过MSP协议将Open FPV VTX与Betaflight飞控进行深度集成,实现飞行数据在OSD上的稳定显示。内容涵盖从硬件连接、Betaflight端口MSP服务启用,到VTX侧配置与OSD元素布局调校的全流程,并提供了常见问题的排查思路,帮助FPV玩家构建可靠的数据叠加系统。

weixin_29201933的博客 452

内存管理(二)——内存分段

内存分段

weixin_43844995的博客 2693

解锁Docker:从0到1的学习之旅

在深入学习 Docker 之前,我们先来了解一下它到底是什么。简单来说,Docker 是一种容器化技术,它允许你将应用程序及其所有依赖项,如库、运行时环境等,打包到一个独立的、可移植的容器中。这个容器就像是一个 “软件集装箱”,可以在任何支持 Docker 的环境中运行,无论是本地开发机器、测试服务器,还是生产环境,都能保持一致的运行状态。为了更好地理解 Docker,我们可以把它类比为现实生活中的集装箱运输。

大雨淅淅的博客 1181

【一文读懂】卫星轨道的轨道参数(六根数)和位置速度矢量转换及其在终端距离、相对速度和多普勒频移计算中的应用

本文首先介绍了卫星轨道的六根数参数:半长轴 a、偏心率 e、轨道倾角 i、升交点赤经 Ω、近地点幅角 ω 以及真近点角 ν,并探讨了如何利用这些参数计算卫星与地面终端之间的距离、相对速度及由此产生的多普勒频移。利用开普勒运动公式计算当前瞬间的轨道半径;根据真近点角 ν 在围心坐标系中计算位置矢量和速度矢量;利用旋转矩阵(依次旋转 ω、i、Ω)将围心坐标系的状态矢量转换到地心惯性坐标系;最终结合地面终端信息,计算卫星与终端的欧氏距离、沿视线的相对速度及多普勒频移。

u011376987的博客 9483

基于docker的Windows11

因项目需要,测试基于docker-win11环境下运行多核OpenMP程序,以下记录docker中安装windows11过程。

Vagrant-Benz 3364

实测对比:DJI O3、Walksnail Avatar、HDZero三大高清图传,谁才是低延迟王者?

本文对DJI O3、Walksnail Avatar V2和HDZero三大高清图传系统进行了实测对比,重点分析其在FPV飞行中的低延迟表现。通过专业测试环境和量化数据,揭示HDZero在原生低延迟架构上的优势,DJI O3在画质与延迟间的平衡,以及Walksnail的动态码率调整特点,为不同场景下的选购提供决策依据。

weixin_30756499的博客 442

用 ABAP CDS Table Function 把复杂计算下沉到 SAP HANA:从定义到 AMDP 实战与 Clean Core 落地

摘要 CDS table function 是 SAP S/4HANA 开发中的关键工具,它允许在 ABAP CDS 中调用由 HANA 原生执行的函数逻辑,并以表形式返回结果集。其核心价值在于:弥补 CDS 表达式不足,将复杂计算(如排序、分组、币种换算等)安全地推送到数据库层执行,同时保持 CDS 的可组合性。实现方式是通过 AMDP 框架,在 ABAP 类中编写 SQLScript 代码。使用时需注意参数设计应区分业务语义与过滤条件,并严格遵守 client-safe 原则以避免跨客户端数据泄露风险。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1001

Docker搭建镜像,运行容器,实操YOLOv11

基于自写的Dockerfile文件,搭建yolov11的docker镜像,docker常用命令

qq_31721595的博客 6030

FISCO BCOS 三、多群组部署以及新节点加入群组

本章主要以星形组网和并行多组组网拓扑为例,指导您了解如下内容:了解如何使用创建多群组区块链安装包;了解创建的多群组区块链安装包目录组织形式;学习如何启动该区块链节点,并通过日志查看各群组共识状态;学习如何向各群组发送交易,并通过日志查看群组出块状态;了解群组内节点管理,包括节点入网、退网等;了解如何新建群组。

qq_63235624的博客 2919

window11安装docker小白教程

windows11安装docker并初步运行小白详细教程

yutingwu816的博客 2万+

YOLOv11改进策略【注意力机制篇】| SE、CBAM、ECA、CA、Swin Transformer等注意力机制全面解析与应用

本文详细介绍了五种主流的注意力机制及其在YOLOv11中的应用。通过合理的模块选择和位置部署,注意力机制能够显著提升目标检测性能。

QQ_778132974的博客 873

c++ pcl点云处理(2025 长期更新)

目录1.常用的点云文件2.认识点云的文件格式3.点云的数据结构4.输入输出(IO)5.KD树6.Oc树(八叉树)7.点云可视化8.点云滤波9.点云拟合分割10.点云与图像11.特征点与特征描述及提取12.点云配准13.点云曲面重建

twnkie的博客 2257

Windows11下安装Docker

Windows11下安装Docker一、准备工作Docker安装包Wsl2安装包二、开始安装1.用管理员身份打开PowerShell,执行下面命令启动wsl2.执行下面命令启动虚拟机给功能3.安装之前下载的安装包【wsl_update_x64.msi】4.将WSL2设置为默认版本4.安装docker安装包【Docker Desktop Installer.exe】三、安装后图片展示 一、准备工作 先下载以下资源,暂时不要安装(浏览器下载慢的同学可以直接将连接复制到迅雷中下载): Docker安装包 Wsl2

弯弯专栏 5万+

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

Docker——Mac通过Docker安装Oracle11g

Mac OS系统如何通过Docker安装Oracle11gDocker基本概念1.在Mac系统上安转Docker1.2.在Mac下载Docker1.3.stable Docker下载https://download.docker.com/mac/stable/Docker.dmg1.4.Mac上安装和运行Docker安装运行2.Mac平台下Docker相关docker psdocker startdocker ps -adocker rm -f webserverdocker rmidocker --ver

学习 记录 总结 分享 2002

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

docker配置nginx实操的准备工作

使用Docker部署Nginx的准备工作

tb_first的博客 1085

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

Win11的WSL2使用Docker部署深度学习环境-Python和Docker基操

使用该镜像创建容器并指定该容器可以使用所有的gpu资源。针对于win系统下WSL子系统,安装Docker桌面版,Linux系统的Docker安装,可参考以下指令。安装pytorch并验证gpu是否可用。这里我介绍一种极简的部署方式。Docker数据迁移到磁盘。容器外部数据传入容器内部。拉取python镜像。

小叶MW 的博客 2334

Win11下安装docker

Win11下安装docker教程

dzw0120的博客 2万+

Windows11 下安装Docker

Docker 是一个开源的应用容器引擎,是虚拟化的一种轻量级替代技术。Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。(2).启动快:docker是个容器,是个进程,既然是进程所以启动比虚拟机(操作系统)快。(1).资源占用多:虚拟机运行需要大量的内存、硬盘和CPU,而且是独占这些资源。然后点击ta,第一次进来需要设置账号密码,下面是我的账号密码。(2).启动慢:虚拟机也是个操作系统,启动很慢。

makaixuan_的博客 5304

【Docker】如何在内网快速搭建docker并安装Oracle11g

docker是一个用Go语言实现的开源项目,可以让我们方便的创建和使用容器,docker将程序以及程序所有的依赖都打包到docker container,这样你的程序可以在任何环境都会有一致的表现,这里程序运行的依赖也就是容器就好比集装箱,容器所处的操作系统环境就好比货船或港口,程序的表现只和集装箱有关系(容器),和集装箱放在哪个货船或者哪个港口(操作系统)没有关系。

一起加油吧 4712

docker desktop 镜像_x11docker:让你的Docker跑图形程序

时下随着虚拟化技术的不断完善进步,docker使得我们的生活变得越来越方便。但是docker一般情况下只提供了傻傻地黑白终端界面,吓跑了很多初学者。还有很多人除了跑服务外还想跑一些图形程序,跑个小游戏啥的。还有很多人听说图形界面不安全希望通过docker提供一个隔离的环境,以保障自己VPS的安全。那么有没有什么方法可以解决这些问题呢?在偶遇x11docer之前,我都是告诉他们不要运行图形界面,命令...

weixin_40003283的博客 2042

Windows11 搭建Docker

以管理员身份运行安装程序,安装过程会要求选择WSL2后端或者Hyper-V后端(Use WSL2 instead of Hyper-V),勾选则表示选择WSL2后端,不勾选则表示选择Hyper-V后端。虚拟化一般是默认启用的,若发现未启用,可重启电脑,在电脑即将重启时按下按键【F2】、【F10】、[F12]或【Del】、【Delete】(具体什么按键可以查找主板型号,win+R输入msinfo32,在系统摘要中查看主板制造商及主板产品)进入BIOS设置界面。win+R搜索control,点击程序和功能。

acaad的博客 3153

Windows 11 安装 Docker

安装完成后,你就可以在 Windows 11 上使用 Docker 进行开发了!运行 docker run hello-world 测试 Docker。确保 Windows 11 版本支持 Hyper-V 或 WSL2。此消息表示 Docker 安装正确,并能够成功拉取和运行容器。通过 PowerShell 启用虚拟化和 WSL2。运行安装程序,选择 WSL2 支持,并重启系统。# 启用 Hyper-V。,重启计算机以完成安装。

weixin_47033758的博客 1681
上一篇: 第10节:Docker入门+下载安装配置
下一篇: 第12节:Sentinel入门安装+限流规则
七号公园的忧伤
七号公园的忧伤 新星创作者: Java技术领域 新星创作者: Java技术领域
博客等级 码龄6年 4857粉丝 79原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

七号公园的忧伤

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值