Windows下Docker安装与镜像制作教程
创始人
2024-12-29 19:04:11
0 次浏览
0 评论
docker镜像制作教程windows下安装docker详细步骤
前言:作为开发者,每次换电脑或者重装系统,都需要重新安装开发工具,搭建开发环境。所以有人会把系统(这里是windows)打包,把自己平时使用的环境和工具都安装在里面,然后修改为OEM。
以后换电脑的时候直接安装打包的系统会更方便。
类似但又不同,当开发的应用需要更换为IDC或者分布式使用时。
对于应用程序来说,需要重建环境、安装软件依赖等。
因此,此时应用软件和环境依赖都可以作为docker镜像使用时,直接拉取镜像启动后,容器就可以正常运行了。
Docker简介:Docker是一个开源应用容器引擎,基于Go语言并开源,符合Apache2.0协议。
Docker允许开发人员将他们的应用程序和依赖项打包到轻量级、可移植的容器中,然后将它们发布到任何流行的Linux机器上,这些机器也可以虚拟化。
容器充分利用沙箱机制,相互之间没有任何接口(类似于iPhone应用程序。
更重要的是,容器的性能开销非常低)。
Docker和虚拟机的区别:正如我上面所说,系统封装和镜像制作有相似之处,但并非完全不同。
那么我就根据我的理解简单介绍一下Docker和虚拟机的区别。
网上也有很多关于这两种架构的原理和原理图的详细介绍,这里我就跳过原理,直接说区别。
使用场景:Docker非常适合隔离应用程序虚拟机可以隔离用户(甚至应用程序),因为它们拥有独立完整的操作系统。
技术方面:虚拟机使用虚拟硬件,CPU必须支持虚拟化技术Docker容器只开启宿主机操作系统上的Docker引擎例如CentOS镜像是一组文件系统,引擎将容器放入一个进程中,彼此隔离。
每个容器共享同一组操作系统资源,不需要虚拟化硬件,启动速度快。
Docker安装:Windows下有两个工具Dockertoolbox是针对win7和win8的,这个工具集成了VirtualBox(虚拟机软件)、Kitematic(docker图形软件)以及其他一些命令终端工具。
对于win10是DockerforWindowsInstaller。
安装完成后,单击DockerQuickstart启动DockerToolbox终端。
运行该命令将首先在Virtualbox中创建一个默认名为CentOS的虚拟机并安装Docker。
CentOS默认的账号端口、密码tcuser、IP在启动工具箱时的命令面板上显示,可以通过Xshell连接。
下载镜像并使用容器最简单的方法是打开Kitematic工具,当网络正常时,就会显示主流镜像选择其中之一,然后单击“创建”以下载并启动左栏中的容器。
在图形界面中启动、停止和重新启动容器也非常容易。
现在下载PHP和Nginx并在浏览器中运行它们。
1.nginx、php容器设置并使用server{listen80;server_namelocalhost;#charsetkoi8-r;#access_loglogs/host.access.logmain;location/{root/var/www;index.htmlphpindex.htmlindex.htm;if(!-e$request_filename){重写^/(.*)$/index.php?/$1last;}}位置~\.php{root/var/www;fastcgi_pass192.168.99。
100:9000;fastcgi_index.php;fastcgi_split_path_info^(.+\.php)(.*)$;fastcgi_paramPATH_INFO$fastcgi_path_info;fastcgi_paramSCRIPT_FILENAME$文档t_root$fastcgi_script_name;includefastcgi_params;}#error_page404/404.html;#redirectservererrorpagestothestaticpage/50x.html#error_page500502503504/50x.html;location=/var/www/index.html{roothtml;}#proxythePHPscriptstoApachelisteningon127.0.0.1:80##location~\.php${#proxy_passhttp://127.0.0.1;#}#将PHP脚本传递到FastCGI服务器监听127.0.0.1:9000##location~\.php${#roothtml;#fastcgi_pass192.168.99.100:9000;#fastcgi_indexindex.php;#fastcgi_paramSCRIPT_FILENAME/scripts$fastcgi_script_name;#includefastcgi_params;#}#denyaccessto.htaccessfiles,ifApache'sdocumentroot#concurswithnginx'sone##location~/\.ht{#denyall;#}}2.镜像制作需要使用Dockerfile,它类似于PHP项目中的composer.json来构建镜像。
内容文本包含构建映像所需的说明和命令。
这里我们只讲解如何运行一个Dockerfile来定制一个镜像,具体的Dockerfile中的详细说明将在下一节介绍,这里您只需要了解构建过程即可。
(1).让我们自定义nginx镜像(在空目录中构建的镜像中会有一个/usr/share/nginx/html/index.html文件,创建一个名为Dockerfile的新文件并将其放入该文件中。
添加以下内容:FROMnginxRUnecho'这是本地构建的nginx镜像'>/usr/share/nginx/html/index.html(2)、FROM和RUNFROM命令的作用:定义镜像是基于FROM镜像的,这里的nginx就是自定义需要的基础镜像,接下来的操作是基于nginx的:用于执行以下命令行命令,有两种格式:shell格式:RUN#相当于终端中运行的shell命令:RUN[“可执行文件”,“参数2”]#例如:#。
RUN["./test.php","dev","offline"]相当于RUN./test.phpdevoffline注意:每次执行Dockerfile命令时,都会在docker上创建一个新的层,太多无意义的层会导致图像放大太多很多。
例如:FROMcentosRUNyuminstallwgetRUNwget-Oredis.tar.gz"http://download.redis.io/releases/redis-5.0.3.tar.gz"RUNtar-xvfredis.tar.gz上面的执行会创建一个3层镜像。
可以简化为以下格式:FROMcentosRUNyuminstallwget\&&wget-Oredis.tar.gz"http://download.redis.io/releases/redis-5.0.3.tar.gz"\&&tar-xvfredis.tar.gzas上面,带有&&符号链接命令,执行后只会创建第1层镜像。
在存储Dockerfile的目录中执行构建操作。
以下示例通过目录中的Dockerfile构建nginx:test(镜像名称:镜像标签)。
注:后者代表本实现的上下文路径,下一节将介绍。
$dockerbuild-tnginx:test如上显示说明构建成功。
$dockerbuild-tnginx:test上传镜像到远程镜像库1、首先在dockerhub官网注册一个账号,然后登录。
您还可以登录Kitematic进行尝试。
2、打开dockercli命令面板,输入dockerlogin,输入dockerhub账号密码,显示loginsuccess后,就可以准备自己的本地镜像文件了。
3.Dockerimages检查本地所有镜像文件,记住镜像全名,然后标记要提交的镜像,会生成两个镜像ID相同的镜像文件。
然后使用dockerpush完成镜像文件:包含标签名称,最后push到自己的镜像库中。
上传到阿里云镜像库1、首先有一个阿里云账号,登录成功后,激活“容器镜像服务”,设置账号密码,创建空间和
docker使用教程
Docker安装教程:1.要设置Docker开机启动,可以使用命令`systemctlenabledocker`。在此过程中,可能会出现启动错误。
在某些情况下,我们的机器可能无法满足安装要求,此时就需要检查系统环境。
2、安装`vim`,方便后续查看操作。
编辑“sources.list”文件并配置完整地址。
3、安装`lsb-core`安装完成后,可以使用`lsb_release-a`查看系统版本。
检查Docker版本:配置Docker镜像:由于众所周知的原因,需要配置镜像加速器。
注意:每次执行Dockerfile命令时,都会在Docker上创建一个新层。
层数太多并不意味着会导致图像太大。
因此,可以使用“&&”符号扩展命令,这样执行后只会创建一个镜像层。
思源笔记是一款支持完全离线使用的个人知识管理系统,可以基于Docker通过Docker镜像搭建在服务器上,实现自定义云笔记,并通过授权码控制访问权限,方便多人协作。
。
网上最详细的Docker-Compose教程:Docker-Compose使用YAML文件定义多服务应用程序。
YAML是JSON的子集,因此也可以使用JSON。
Docker-Compose默认使用文件名“docker-compose.yml”。
当然,你也可以使用`-f`参数来指定特定的文件。
内容如下:app.pyDockerfiledocker-compose.yml运行流程:以上命令会根据配置自动构建镜像并启动容器组。
只需按照新步骤并使用yum来安装即可。
常用说明如下图方便使用请点击这里官方介绍请点击这里。
注意:-“RUN”命令在镜像文件构建阶段执行,执行结果将打包到镜像文件中。
-容器启动后执行`CMD`命令。
登录Docker命令:`dockerlogin`,如果显示`LoginSucceeded`则表示成功,否则需要输入用户名和密码。
Docker入门教程:1、Docker并不是LXC的替代品Docker底层是利用Linux进程沙箱LXC实现的,使得进程之间相互隔离,并且可以为每个进程分配资源。
Docker基于LXC,提供了一系列更强大的功能。
2、容器网络是Docker用来解决相互隔离的容器之间通信问题的技术。
3.通过“dockernetworkcreate”创建并配置用户定义的桥接网络。
如果不同的应用程序组有不同的网络要求,则可以在创建时单独配置每个用户定义的网桥。
默认网桥网络上的连接容器共享环境变量。
4、Docker的概念与此类似。
云计算现在流行云计算就像一艘大货轮,而Docker就是一个容器。
5、要了解Docker,首先要了解数百万跨开发、测试和运维的程序员经常面临的MatrixfromHell问题,即开发人员、测试人员和运维人员从头开始构建应用程序开发环境并运行。
时间和环境。
Docker教程:Docker使用桥接网络1.使用桥接`docker0``docker0`默认网段为170,网关地址为171。
对于启动的容器在`bridge`模式下,进入容器,使用`iprouteshow`命令可以看到使用的网关是`docker0`网关地址。
2、建议使用自定义网桥来控制容器之间的相互通信,同时也可以通过DNS自动将容器名称解析为IP地址。
3、在此模式下,Docker为容器创建独立的网络覆盖层,保证容器内的进程使用独立的网络环境,实现容器之间、容器与主机之间的网络覆盖层的隔离。
同时,通过主机上的“Docker0”桥,容器可以与主机以及外界进行通信。
Docker教程:Docker存储写时复制(CoW)策略1.使用`docker-compose`同时启动多个容器,并且`compose`文件可以定义共享变量。
您可以使用服务组而不是独立容器,并利用共享密钥和配置。
连接到同一用户定义的桥接网络的容器有效地向彼此公开所有端口。
2、Docker的运行原理如下:客户端可以向服务器端的Dockerdaemon发送Docker命令,然后Dockerdaemon根据命令从Docker仓库中创建、选择或拉取(pulls)镜像。
然后客户可以通过镜像创建容器。
3.首先在当前目录(即`/home/hellodocker`目录)下创建一个`test.txt`文件。
4.当需要修改文件时,AUFS会创建该文件的副本。
使用CoW(Copy-on-Write)将文件从只读层复制到可写层进行修改,结果也保留在可写层中。
5、Docker存储引擎的核心思想是“层”的概念。
明白了这一层,就基本能明白设计思想了。
6、在云计算领域,开发者需要具备的基本技能之一就是Docker。
相关文章
C语言整型转字符串:itoa()函数详解...
2024-12-17 02:30:14C语言scanf函数详解:格式化输入与注...
2024-12-22 16:17:13Excel字符串截取技巧:LEFT、RI...
2024-12-15 10:22:45C语言与Python:深入剖析二者的工作...
2024-12-28 19:36:00C语言数组应用:求n个数平均值、最大值、...
2024-12-27 01:36:36PHP5 MD5加密处理技巧及Excel...
2024-12-14 18:51:00C语言中t的含义及多种用法详解
2024-12-23 17:08:38C语言输入多个字符串方法详解及代码示例
2024-12-14 21:06:47C语言:高级编程语言,跨平台开发利器
2024-12-18 05:28:25Java读取文本与字符串操作:提取与删除...
2024-12-15 08:59:52最新文章
12
2025-01
12
2025-01
12
2025-01
12
2025-01
12
2025-01
12
2025-01
12
2025-01
12
2025-01
12
2025-01
12
2025-01
热门文章
1
JSF架构解析与Java学习资源分享:J...
JavaServerFacesJSF体系结构JavaServerFaces(JS...
2
数据结构C语言版深度解析与C语言入门很简...
《数据结构(C语言版)》.严蔚敏吴伟民著.pdf在《数据结构(C语言版)》一书中...
3
C语言字符串常量解析:区别、用途及存储方...
什么是字符串常量字符串常量是C语言中的一种数据类型,它是由一对双引号括起来的字符...
4
C语言printf函数:格式字符串与输出...
printf函数中的格式与输出项有什么关系?在C语言中,printf函数中的格式...
5
Excel技巧:计算字符串起始位置与合并...
如何计算字符串在特定文本中的起始位置,怎么计算字符串在特定文本中的起始位置您可以...
6
Python发音全解:掌握正确的发音方法...
python怎么读我的很多学习编程的朋友可能都知道Python这个词,但是他们中...
7
字符与字符串:编程中的基础文本类型解析
字符串什么意思字符串是由数字、字母和下划线组成的字符串,表示为s=“a1a2…a...
8
Python编程语言:多领域应用与开发优...
Python的作用是什么?Python是一种跨平台计算机编程语言,是ABC语言的...
9
深度解析:C语言编程特点与应用领域
什么叫c语言C语言是一种编程语言。C编程语言应用广泛,具有以下特点和特点:1.语...
10
Java全解析:跨平台编程语言的魅力与多...
java是什么Java是一种功能强大的编程语言,被称为“一次编写,随处运行”模型...