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

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

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

相关文章

vulhub中Adminer远程文件读取漏洞复现(CVE-2021-43008)

Adminer是一个PHP编写的开源数据库管理工具,支持MySQL、MariaDB、PostgreSQL、SQLite、MS SQL、Oracle、Elasticsearch、MongoDB等数据库。 在其版本1.12.0到4.6.2之间存在一处因为MySQL LOAD DATA LOCAL导致的文件读取漏洞。 参考链接: https://gith…

JAVA Studynote(7-8)

JAVA Studynote(7-8) 1.DOS系统 ​ *接受指令 *解析指令 *执行指令 2.相对路径和绝对路径 *相对路径 ​ *从当前目录开始定位,形成的一个路径 *绝对路径 ​ *从顶级目录d,开始定位,形成的路径 ​ *示例: 3.常用DOS指令 …

arch linux python venv

0x00 前言 直接使用全局pip安装库的,会有如下error error: externally-managed-environment This environment is externally managed ╰─> To install Python packages system-wide, try pacman -Spython-xyz, where xyz is the package you are trying toin…

12种算法优化CNN-BiLSTM-Attention多特征输入单步预测,机器学习预测全家桶,持续更新,MATLAB代码...

截止到本期,一共发了12篇关于机器学习预测全家桶MATLAB代码的文章。参考文章如下: 1.五花八门的机器学习预测?一篇搞定不行吗? 2.机器学习预测全家桶,多步预测之BiGRU、BiLSTM、GRU、LSTM,LSSVM、TCN、CNN&…

【lesson8】高并发内存池Central Cache层释放内存的实现

文章目录 Central Cache层释放内存的流程Central Cache层释放内存的实现 Central Cache层释放内存的流程 当thread_cache过长或者线程销毁,则会将内存释放回central cache中的,释放回来时–use_count。当use_count减到0时则表示所有对象都回到了span&am…

备战蓝桥杯---数据结构与STL应用(进阶4)

今天主要围绕并查集的一些今典题目展开: 在这里,我们把逻辑真的组合,用并查集即可。一开始,我觉得把a,b,c等价,把第一个赋a,接下来推即可,但这样在判断矛盾时还需要选择合适的点find,于是我们把…

【使用 Python 进行 NLP】 第 2 部分 NLTK

一、说明 Python 有一些非常强大的 NLP 库,NLTK — 自然语言工具包 — NLTK 是一个强大的开源库,用于 NLP 的研究和开发。它内置了 50 多个文本语料库和词汇资源。它支持文本标记化、词性标记、词干提取、词形还原、命名实体提取、分割、分类、语义推理。…

Ubuntu-Docker下的MySQL服务搭建与外联(持续更新)

部署背景:手边频繁变换的linux操作环境导致需要不停的配置基本的MySQL等开发/技术探索环境,docker自身强大的可移植性很好的解决了这个问题! Deployment background: The frequently changing linux operating environment at hand leads to the need to constantly config…

深度学习(10)-Keras项目详解(递归神经网络)

一.递归神经网络基础概念 递归神经网络(Recursive Neural Network, RNN)可以解决有时间序列的问题,处理诸如树、图这样的递归结构。 CNN主要应用在计算机视觉CV中,RNN主要应用在自然语言处理NLP中。 1.h0,h1.....ht对应的是不同输入得到的中…

debian12 解决 github 访问难的问题

可以在 /etc/hosts 文件中添加几个域名与IP对应关系,从而提高 github.com 的访问速度。 据搜索了解(不太确定),可以添加这几个域名:github.com,github.global.ssl.fastly.net,github.global.fa…

银河麒麟 aarch64 Mysql环境安装

一、操作系统版本信息 组件版本操作系统Kylin V10 (SP3) /(Lance)-aarch64-Build23/20230324Kernel4.19.90-52.22.v2207.ky10.aarch64MySQLmysql-8.3.0JDK1.8.0_312 二、MySQL下载 官网下载地址:https://dev.mysql.com/downloads/mysql/ 三、MySQL 安装 3.1 删…

年终奖,还得是腾讯。。。

腾讯年终奖 什么是真正的好公司? 一年到头,出不了几次裁员等劳务纠纷的吃瓜新闻。 只有到年底了,才因为年终奖远高于行业水平,实在没法低调了,"被迫"上热搜。 最近网友爆料了腾讯头牌部门的年终奖&#xff1…

JavaSE——流程控制-循环结构(for循环、while循环、小案例、do-while循环、死循环、循环嵌套)

目录 for循环 while循环 小案例 do-while循环 死循环 循环嵌套 for循环 for(int i 0; i < 5; i) {System.out.println("Hello world"); } 执行的流程&#xff1a; 循环一开始&#xff0c;执行int i0 一次。此时 i 0&#xff0c;接着计算机执行循环条件…

下载RTSP播放器

1.网站1 2.海康播放器 在海康官网上选择【服务支持】【工具软件】&#xff0c;往下滚动&#xff0c;打开VSPlayer_x64

陪女朋友学习计算机二级之栈和队列

栈 栈(堆栈)的定义 堆栈又名栈(stack),它是一种线性表。限定仅在表尾进行插入和删除操作的线性表。是一种后进先出的线性表. 空栈:不含任何元素的空表。 栈顶和栈底 进行插入和删除的这一端(表尾)被称为栈顶&#xff0c;相对地&#xff0c;把另一端称为栈底。 入栈和出栈 …

大小姐驾到!高德地图联合《王者荣耀》推出孙尚香导航语音包

“大小姐驾到&#xff01;统统闪开&#xff01;”如果你是一个手游爱好者&#xff0c;多半会对这句话耳熟能详&#xff0c;来自于国内手游界顶流《王者荣耀》中的高人气角色——孙尚香&#xff0c;并成为一代玩家们的记忆。 如今&#xff0c;随着高德地图与《王者荣耀》达成合…

Alias许可常见问题

在数字化时代&#xff0c;软件许可管理成为企业关注的焦点。然而&#xff0c;许多企业在使用软件过程中&#xff0c;经常会遇到一些关于许可的常见问题&#xff0c;导致软件使用受到限制或产生法律风险。作为业界领先的许可管理解决方案提供商&#xff0c;Alias致力于为企业提供…

java之ReentrantLock

在讲RentrantLock之前需要先讲一下AQS和LockSupport&#xff0c;因为rentrantLock底层是用AQS实现的&#xff0c;而AQS中获取阻塞和唤醒底使用LockSupport实现的。 1、LockSupport实现 下面代码中&#xff0c;LockSupport.park方法是当前线程等待&#xff0c;直到获得许可&am…

Istio-解决Zipkin对项目的侵入性问题

Istio采用SideCar模式注入的Enovy代理在某些情况下不能完全解决对项目的无侵入性&#xff0c;比如需要用到Istio的链路追踪功能的时候。需要在代码中手动注入链路追踪需要的header&#xff0c;这样就出现了Istio对业务功能的侵入性。 istio服务网格的调用链跟踪需要依赖在服务之…

大数据环境搭建(一)-Hive

1 hive介绍 由Facebook开源的,用于解决海量结构化日志的数据统计的项目 本质上是将HQL转化为MapReduce、Tez、Spark等程序 Hive表的数据是HDFS上的目录和文件 Hive元数据 metastore&#xff0c;包含Hive表的数据库、表名、列、分区、表类型、表所在目录等。 根据Hive部署模…