docker镜像制作教程windows下安装docker详细步骤docker部署windows镜像




docker镜像制作教程windows下安装docker详细步骤docker部署windows镜像

2022-07-20 21:25:12 网络知识 官方管理员

前言:

作为一个开发人员,每每在更换电脑或重装系统时,要重新安装开发工具搭建开发环境。所以有的人会封装一下系统(这里指windows),将平时用到的环境和工具全安装在里面,改改OEM,以后换了电脑就直接拿封装的系统安装就方便很多。同样但也不一样的,在开发完的应用程序在需要更换IDC或者部署分布式时。针对应用又要重新搭建环境,安装软件依赖等等。所以这时候可以将应用软件以及环境依赖一并作为docker镜像,部署的时候直接拉取镜像,启动后为容器就可以正常运行了。

Docker简介:

Docker是一个开源的应用容器引擎,基于Go语言并遵从Apache2.0协议开源。Docker可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似iPhone的app),更重要的是容器性能开销极低。

Docker与虚拟机的区别:

上面系统封装与镜像制作,我说过两者有相同但也一点不同。所以就以我的理解简单介绍一下Docker与虚拟机的区别。网上也有很多详细介绍两者架构的原理及原理图,这里就略过原理直接说差异。

使用场景:Docker适合隔离应用,虚拟机能隔离用户(更能隔离应用),因为有独立完整的操作系统。

技术方面:虚拟机是通过虚拟化硬件并CPU要支持虚拟化技术,Docker容器只是在宿主操作系统上开启了Docker引擎,比如一个CentOS镜像是一套文件系统,引擎将容器放入到一个进程中并相互隔离。各个容器共用同一套操作系统资源,不需要虚拟化硬件,启动快速。

docker镜像制作教程(windows下安装docker详细步骤)(1)

Docker的安装:

在windows下有两个工具,dockertoolbox针对win7,win8,工具集合了VirtualBox(虚拟机软件),Kitematic(docker图形化软件),和其他几个命令终端工具。针对win10的是DockerforWindowsInstaller。

docker镜像制作教程(windows下安装docker详细步骤)(2)

安装完毕后点击DockerQuickstart启动DockerToolbox终端。命令执行会先在Virtualbox创建一个名字为default的CentOS虚拟机并安装了Docker。CentOS默认账号docker,密码tcuser,Ip在启动toolbox时在命令板上显示,可以通过Xshell连接。

docker镜像制作教程(windows下安装docker详细步骤)(3)

镜像下载&容器使用

最简单的就是打开Kitematic工具,网络正常时会展示主流的镜像,选择其中一个点击“create”就会下载并在左侧栏启动容器。容器的启动和停止重启在图形化界面中也很方便地操作。下面就下载PHP和Nginx并运行在浏览器打开。

docker镜像制作教程(windows下安装docker详细步骤)(4)

docker镜像制作教程(windows下安装docker详细步骤)(5)

1.nginx,php容器设置与使用

server{listen80;server_namelocalhost;#charsetkoi8-r;#access_loglogs/host.access.logmain;location/{root/var/www;indexindex.phpindex.htmlindex.htm;if(!-e$request_filename){rewrite^/(.*)$/index.php?/$1last;}}location~\.php{root/var/www;fastcgi_pass192.168.99.100:9000;fastcgi_indexindex.php;fastcgi_split_path_info^(.+\.php)(.*)$;fastcgi_paramPATH_INFO$fastcgi_path_info;fastcgi_paramSCRIPT_FILENAME$document_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;#}#passthePHPscriptstoFastCGIserverlisteningon127.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;#}}

docker镜像制作教程(windows下安装docker详细步骤)(6)

docker镜像制作教程(windows下安装docker详细步骤)(7)

2.镜像的制作

镜像制作就需要使用Dockerfile,类似PHP项目中的composer.json,用于构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明。

这里仅讲解如何运行Dockerfile文件来定制一个镜像,具体Dockerfile文件内指令详解,将在下一节中介绍,这里你只要知道构建的流程即可。

(1)、下面以定制一个nginx镜像(构建好的镜像内会有一个/usr/share/nginx/html/index.html文件)

在一个空目录下,新建一个名为Dockerfile文件,并在文件内添加以下内容:

FROMnginxRUNecho'这是一个本地构建的nginx镜像'>/usr/share/nginx/html/index.html

docker镜像制作教程(windows下安装docker详细步骤)(8)

(2)、FROM和RUN指令的作用

FROM:定制的镜像都是基于FROM的镜像,这里的nginx就是定制需要的基础镜像。后续的操作都是基于nginx。

RUN:用于执行后面跟着的命令行命令。有以下俩种格式:

shell格式:

RUN<命令行命令>#<命令行命令>等同于,在终端操作的shell命令。

exec格式:

RUN["可执行文件","参数1","参数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.gz如上,以&&符号连接命令,这样执行后,只会创建1层镜像。

在Dockerfile文件的存放目录下,执行构建动作。

以下示例,通过目录下的Dockerfile构建一个nginx:test(镜像名称:镜像标签)。

:最后的.代表本次执行的上下文路径,下一节会介绍。

$dockerbuild-tnginx:test.

docker镜像制作教程(windows下安装docker详细步骤)(9)

以上显示,说明已经构建成功。

$dockerbuild-tnginx:test.

镜像上传到远程镜像库

1.首先在dockerhub官网注册一个账号,然后可以正在登陆,Kitematic也可以登陆试试。

docker镜像制作教程(windows下安装docker详细步骤)(10)

2.打开dockercli命令面板,输入dockerlogin,输入dockerhub账号密码后,显示loginsuccess后,就可以准备自己本地的镜像文件了。

docker镜像制作教程(windows下安装docker详细步骤)(11)

3.dockerimages查看本地的所有镜像文件,记住镜像完整名称,然后给要提交的镜像加标签,这时会生成两个镜像ID一样的镜像文件。然后通过dockerpush完整的镜像文件:包括标签名,最后就可以推送到自己的镜像库了。

docker镜像制作教程(windows下安装docker详细步骤)(12)

docker镜像制作教程(windows下安装docker详细步骤)(13)

docker镜像制作教程(windows下安装docker详细步骤)(14)

上传至阿里云镜像库

1.首先有阿里云账户,登录成功后开通"容器镜像服务",设置账号密码,并建立空间和仓库,点击管理可以看到登录,拉取,推送的命令。

docker镜像制作教程(windows下安装docker详细步骤)(15)

2.同样的方式打开dockercli命令面板或者xshell连接docker中登录阿里镜像账号,同样的方式找到本地做好的镜像然后推送。

docker镜像制作教程(windows下安装docker详细步骤)(16)

docker镜像制作教程(windows下安装docker详细步骤)(17)

3.拉取dockerhub和阿里镜像都通过dockerpull完整的镜像名,就可以拉取到本地,然后通过dockerimages查看。

发表评论:

最近发表
网站分类
标签列表