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

windows下docker的使用

目录

1:docker是什么,能干什么?

2:docker下初始化一个容器

1:工具支持

2:运行装载docker镜像

a:在docker toolbox底下有个start.sh,我们进去里面修改里面路径配置:

b:sh start.sh

c:docker-machine命令 

d:docker乱码处理

e:docker常用命令

3:SecureCRT登录docker

4:扩展篇----docker虚拟机存储位置更换

3:敲黑板

4:下一章:docker下拉(pull)镜像和生成容器。

5:本章的docker toolbox下载地址


先说说这篇文章看完你能学习到什么吧

1:docker是什么,能干什么。2:docker下初始化一个容器,3:敲黑板
1:docker是什么,能干什么?

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

2:docker下初始化一个容器
1:工具支持

a:下载docker toolbox,这是一个安装程序,用于在较旧的Mac和Windows系统上快速设置和启动Docker环境。

b:下载virtualbox,这是个虚拟机软件。支持windows虚拟化系统。

c:下载git,这是个支持sh命令的工具。

d:电脑必须支持Intel Virtualization Technology,这个自己百度,如果不支持就不用往下走了

2:运行装载docker镜像
a:在docker toolbox底下有个start.sh,我们进去里面修改里面路径配置:

#!/bin/bash

trap '[ "$?" -eq 0 ] || read -p "Looks like something went wrong in step ´$STEP´... Press any key to continue..."' EXIT

# TODO: I'm sure this is not very robust.  But, it is needed for now to ensure
# that binaries provided by Docker Toolbox over-ride binaries provided by
# Docker for Windows when launching using the Quickstart.
export PATH="/F:/Program Files/Docker Toolbox:$PATH"   //这里替换成自己的Docker Toolbox,就是当前文件的路径上层
VM=${DOCKER_MACHINE_NAME-default}
DOCKER_MACHINE=./docker-machine.exe

STEP="Looking for vboxmanage.exe"
if [ ! -z "$VBOX_MSI_INSTALL_PATH" ]; then
  VBOXMANAGE="D:\soft\VirtualBox\VBoxManage.exe"  //这里替换成自己的VBoxManage,在你安装的VirtualBox底下
else
  VBOXMANAGE="D:\soft\VirtualBox\VBoxManage.exe"  //这里替换成自己的VBoxManage,在你安装的VirtualBox底下
fi

b:sh start.sh

运行完毕后会出现小鲸鱼图案,这是docker引擎启动成功的表现,启动成功后,该docker的虚拟地址是192.168.99.100(可以通过SecureCRT连接访问,或者virtualbox)

b->1:这一步可能会出现下载boot2docker.iso镜像文件太久的情况,这时候可以自己去网上下载docker镜像,并把它移动到相应的目录,这个目录会在运行时候有输出。我的目录是C:\Program Files\Docker Toolbox。所以我把的boot2docker.iso放到该目录下,并断网,重新sh start.sh,这样子就不会去网上下载docker 太久的问题。启动成功后,下次不用断网就可以启动。

c:docker-machine命令 

上面出现鲸鱼后,代表docker启动成功,接下来想要停掉docker虚拟机,可以用docker-machine stop default,重启用docker restart default,启动用docker start default

d:docker乱码处理

在启动docker后,可以通过locale -a看有没有en_US.utf8,有的话直接执行如下

export LC_ALL=en_US.utf8

没有的话,执行

localedef -v -c -i en_US -f UTF-8 en_US.UTF-8

e:docker常用命令


docker images ---------查看镜像
docker ps -a ----------查看容器
docker stop 容器id -------停止容器
docker start 容器id -------启动容器
docker rm 容器id -------删除容器
docker rmi 镜像id -------删除镜像
docker run -d -p 5000:22 --name 新建容器名称 --privileged=true 镜像id或镜像名称 /usr/sbin/init ------创建容器
docker exec -it 容器名称 /bin/bash  ------进入容器
docker commit 容器id 镜像名称 ------提交容器成镜像
docker rm -f `docker ps -a -q` ------删除所有容器

3:SecureCRT登录docker

1:登录主机名:192.168.99.100

2:用户名:docker 

3:密码: tcuser 

4:切换root

用户名2:root
切换:command:sudo -i (docker用户下执行)

4:扩展篇----docker虚拟机存储位置更换

1:docker的虚拟机(镜像)存放地址在哪里

虚拟机的默认存储位置是C:\Users\Administrator\.docker\machine\machines,后期docker镜像文件会不断增加,为了减轻系统负担,我把目录指向别的地方。

2:指向新的地方(打开VirtualBox操作)(这步操作前需要先关掉default这个虚拟机)

VirtualBox【管理】->【虚拟介质管理】界面对虚拟磁盘进行复制(我们docker虚拟机默认是default名字)
复制disk.vmdk到新的硬盘,虚拟磁盘的文件类型选择VMDK,存储到硬盘上选择动态分配就可以了
右点击default,选择设置,选择存储,删除之前的disk(右击disk.vmdk删除),控制器SATA选择加号(添加),使用现有的磁盘,选择刚才复制过去的新地址

3:敲黑板

1:docker能够为我们做什么?

答:在我的理解是,docker作为一个容器引擎,docker可以通过镜像生成多个容器,分别部署到不同的服务器,实现线上环境的无缝转换和迁移。这样省去了服务器代码和环境的频繁部署。简单点来举个例子:如果我们有个代码在A服务器部署了,我们可以用docker把该服务器打包成docker镜像(image),并上传(push)到docker网站。然后如果A服务器宕机了或者死掉了,这时候需要立马重新部署一台服务器,我们可以在B服务器下载docker,用docker引擎去下拉(pull)我们上传的镜像,并用该镜像生成我们的容器,并把我们代码的所需要的端口,例如80,3306等映射到我们的宿主机。然后启动起来我们的项目,这样傻瓜式的docker操作,就可以帮我们把线上的环境还原出来立马可以使用了。

2:为什么上面的sh start.sh需要用本地的docker,而不是让他去自己下载呢?

答:因为默认的docker镜像仓库地址是https://hub.docker.com/,我们国内下载超级慢,所以我们如果直接该软件获取本地仓库地址在哪里,我们可以把我么下载的docker镜像放进去,并断网,这样该软件会优先去取我们的本地仓库镜像,而不是去网上下载,大大缩短我们的时间。

4:下一章:docker下拉(pull)镜像和生成容器。
5:本章的docker toolbox下载地址

https://download.csdn.net/download/weixin_36667844/88804108

相关文章:

windows下docker的使用

目录 1:docker是什么,能干什么? 2:docker下初始化一个容器 1:工具支持 2:运行装载docker镜像 a:在docker toolbox底下有个start.sh,我们进去里面修改里面路径配置: …...

C语言——R/预处理详解

一、预定义符号 C语⾔设置了⼀些预定义符号,可以直接使⽤,预定义符号也是在预处理期间处理的。 __FILE__ //进⾏编译的源⽂件 __LINE__ //⽂件当前的⾏号 __DATE__ //⽂件被编译的⽇期 __TIME__ //⽂件被编译的时间 __STDC__ //如果编译器遵循ANSI C&a…...

Unity_PackageManager缺失

Unity_PackageManager缺失 Unity早期版本不带PakageManager,或是人为因素造成PakageManager缺失。 关闭Unity工程,在项目文件下Packages文件夹里打开manifest.json,修改添加一行: "com.unity.package-manager-ui": &q…...

Megatron-LM源码系列(七):Distributed-Optimizer分布式优化器实现Part2

1. 使用入口 DistributedOptimizer类定义在megatron/optimizer/distrib_optimizer.py文件中。创建的入口是在megatron/optimizer/__init__.py文件中的get_megatron_optimizer函数中。根据传入的args.use_distributed_optimizer参数来判断是用DistributedOptimizer还是Float16O…...

[SWPUCTF 2021 新生赛]ez_unserialize

根据下面的user_agent和Disallow可以判断这个是在robots.txt 我们看的出来这是一个反序列化需要我们adminadmin passwdctf construct 构造方法,当一个对象被创建时调用此方法,不过unserialize()时却不会被调用 destruct 析构方法,PHP将在对象…...

android tv开发-1,leanback 2

目录 presenter太多,如何理清关系 动画与点击 tv的登录与设置 搜索功能 带二级菜单的页面 presenter太多,如何理清关系 leanback里面已经定义好了adapter与presenter,直接继承它就可以了 private DefaultObjectAdapter mVideoAdapter; private VideoCardPresenter mCardP…...

Spring Boot注解

Spring Boot提供了许多常用的注解,用于简化开发过程和配置管理。以下是一些常用的Spring Boot注解: SpringBootApplication: 标记一个类为Spring Boot应用程序的入口点,同时也是一个组合注解,包括了Configuration、EnableAutoConf…...

JavaWeb中的Filter(过滤器)和 Listener(监听器)

提示:这两个东西听起来似乎很难,实际上是非常简单的,按照要求写就行了,一定不要被新名词给吓到了。 JavaWeb中的Filter(过滤器) 一、Filter(过滤器)1.如何编写 Filter2.Filter 中的细…...

mybatis查询修改mysql的json字段

前言: mysql5.7版本之后支持json字段类型,推荐mysql8版本,适用于属性不确定的个性化字段,比如: 身份信息{“职业”,“学生”,“兴趣”:“打乒乓球”,“特长”:“跳高,书法”}; 图片信息{“日期”:“2023-12-12 22:12”…...

实时聊天系统

这个系统可以用于网站的即时通讯,比如客服系统、在线社区等。这个功能不仅对用户友好,而且也是检验技术实现能力的一个很好的案例。 ### 功能概述 该系统允许用户在网站上实时发送和接收消息。为了保持实时性,我们将使用PHP进行服务器端的逻…...

Spring-mvc、Spring-boot中如何在调用同类方法时触发AOP

1. 问题描述 Spring-mvc和Spring-boot中aop可以实现代理的功能,我们可以借此实现事务和日志记录或者限流等多种操作。但是,如果你在一个方法中调用其同类下的其他方法的时候不会触发AOP。本文主要说明其原因及解决办法和实现原理。 2. 原因 AIOP的本质是…...

幻兽帕鲁服务器自动重启备份-python

幻兽帕鲁服务器自动重启备份-python 1. 前置知识点2. 目录结构3. 代码内容4. 原理解释5. 额外备注 基于python编写的服务器全自动管理工具,能够实现自动定时备份存档,以及在检测到服务器崩溃之后自动重新启动,并且整合了对于frp端口转发工具的…...

C# Onnx yolov8 水表读数检测

目录 效果 模型信息 项目 代码 训练数据 下载 C# Onnx yolov8 水表读数检测 效果 模型信息 Model Properties ------------------------- date:2024-01-31T10:18:10.141465 author:Ultralytics task:detect license:AGPL-…...

负载均衡下webshell连接

目录 一、什么是负载均衡 分类 负载均衡算法 分类介绍 分类 均衡技术 主要应用 安装docker-compose 2.1上传的文件丢失 2.2 命令执行时的漂移 2.3 大工具投放失败 2.4 内网穿透工具失效 3.一些解决方案 总结 一、什么是负载均衡 负载均衡(Load Balanc…...

Spring面试大全-基础知识01

1.什么是Spring Spring框架是用于构建企业级Java的开源框架,他通过依赖注入和IOC容器帮我我们管理对象;支持AOP,将非业务功能(日志,事务等)从我们业务代码中分离出来,提高了代码的可维护性&…...

Transformer实战-系列教程4:Vision Transformer 源码解读2

🚩🚩🚩Transformer实战-系列教程总目录 有任何问题欢迎在下面留言 本篇文章的代码运行界面均在Pycharm中进行 本篇文章配套的代码资源已经上传 4、Embbeding类 self.embeddings Embeddings(config, img_sizeimg_size) class Embeddings(nn.…...

cesium-水平测距

cesium测量两点间的距离 <template><div id"cesiumContainer" style"height: 100vh;"></div><div id"toolbar" style"position: fixed;top:20px;left:220px;"><el-breadcrumb><el-breadcrumb-item&…...

【Android-Compose】手势检测实现按下、单击、双击、长按事件,以及避免频繁单击事件的简单方法

目录&#xff1a; 1 不需要双击事件 规避频繁单击事件2 需要双击事件&#xff08;常规写法&#xff09;3 后记&#xff1a;不建议使用上面的代码自定义按钮 1 不需要双击事件 规避频繁单击事件 var firstClickTime by remember { mutableStateOf(System.currentTimeMillis()…...

AUTOSAR汽车电子嵌入式编程精讲300篇-基于神经网络的CAN总线负载率优化(续)

目录 3.3 SA 算法 3.3.1 SA 算法原理 3.3.2 基于 SA 算法 CAN 总线负载率优化分析...

python爬虫6—高性能异步爬虫

如果有多个URL等待我们爬取&#xff0c;我们通常是一次只能爬取一个&#xff0c;爬取效率低&#xff0c;异步爬虫可以提高爬取效率&#xff0c;可以一次多多个URL同时同时发起请求 异步爬虫方式&#xff1a; 一、多线程、多进程&#xff08;不建议&#xff09;&#xff1a;可以…...

提升英雄联盟游戏体验:基于LCU API的智能客户端工具集实战指南

提升英雄联盟游戏体验&#xff1a;基于LCU API的智能客户端工具集实战指南 【免费下载链接】League-Toolkit An all-in-one toolkit for LeagueClient. Gathering power &#x1f680;. 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit LeagueAkari是一款基…...

别再手动导入了!用Pinia + bpmn-js 实现Flowable流程设计的草稿自动恢复与状态管理

基于Pinia与bpmn-js的流程设计器草稿自动恢复方案 在流程设计器的开发过程中&#xff0c;用户最担心的莫过于编辑到一半的流程图因页面刷新或意外关闭而丢失。这种体验问题会直接影响产品的专业性和用户信任度。本文将详细介绍如何利用Vue3生态中的Pinia状态管理库&#xff0c;…...

塞尔达传说旷野之息存档编辑器:终极免费工具使用指南 [特殊字符]

塞尔达传说旷野之息存档编辑器&#xff1a;终极免费工具使用指南 &#x1f3ae; 【免费下载链接】BOTW-Save-Editor-GUI A Work in Progress Save Editor for BOTW 项目地址: https://gitcode.com/gh_mirrors/bo/BOTW-Save-Editor-GUI 还在为海拉鲁大陆的冒险资源不足而…...

番茄小说下载器技术指南:从需求分析到高效应用

番茄小说下载器技术指南&#xff1a;从需求分析到高效应用 【免费下载链接】Tomato-Novel-Downloader 番茄小说下载器不精简版 项目地址: https://gitcode.com/gh_mirrors/to/Tomato-Novel-Downloader 在数字阅读日益普及的今天&#xff0c;离线获取和管理小说内容成为许…...

Listen1音乐聚合工具:打破平台壁垒的无缝听歌解决方案

Listen1音乐聚合工具&#xff1a;打破平台壁垒的无缝听歌解决方案 【免费下载链接】listen1_chrome_extension one for all free music in china (chrome extension, also works for firefox) 项目地址: https://gitcode.com/gh_mirrors/li/listen1_chrome_extension 你…...

Linux使用详解(进阶篇)

文章目录Linux使用详解(进阶篇)1.Linux目录说明2.操作防火墙3.ulimit命令和history命令4.RPM和Yum的使用5.设置系统字符集6.vi & vim编辑器7.文件同步、复制8.利用SCP命令进行文件传输Linux使用详解(进阶篇) 1.Linux目录说明 bin -> usr/bin 这个目录存放的是&#xff…...

WeKnora知识沉淀方法论:构建企业数字资产的完整流程

WeKnora知识沉淀方法论&#xff1a;构建企业数字资产的完整流程 1. 引言 在信息爆炸的时代&#xff0c;企业每天产生大量文档、报告、邮件等知识资产&#xff0c;但这些宝贵资源往往散落在各个角落&#xff0c;难以有效利用。传统的关键词搜索已经无法满足企业对知识管理的需…...

Kandinsky-5.0-I2V-Lite-5s惊艳案例分享:宠物/人像/产品图5秒动态化成果集

Kandinsky-5.0-I2V-Lite-5s惊艳案例分享&#xff1a;宠物/人像/产品图5秒动态化成果集 1. 开篇&#xff1a;让静态图片动起来的魔法 你有没有想过&#xff0c;随手拍的照片能自己动起来&#xff1f;Kandinsky-5.0-I2V-Lite-5s就是这样一个神奇的AI工具。它能把你的宠物照片、…...

用Docker三分钟部署MetaGPT开发环境(附LLM本地化方案)

三分钟容器化部署MetaGPT全栈开发环境实战指南 容器化部署的价值与优势 在当今快速迭代的AI开发领域&#xff0c;环境配置一直是困扰开发者的首要难题。传统部署方式需要处理Python版本管理、依赖冲突、CUDA驱动兼容等复杂问题&#xff0c;而容器化技术为这一痛点提供了优雅的解…...

GeekDoc

GeekDoc 中文系列教程是一个庞大且组织良好的技术文档集合&#xff0c;它并非单一教程&#xff0c;而是一个开源文档翻译与整理项目&#xff0c;旨在将优秀的技术文档和教程翻译成中文&#xff0c;并按技术领域进行分类。其内容广泛覆盖了信息技术领域的多个核心方向&#xff0…...