源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

Docker镜像制作详解介绍

  • 时间:2021-12-16 14:49 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:Docker镜像制作详解介绍
最近由于工作原因,需要对Docker镜像进行制作,这里记录下,也许对大家也有一定帮助!     写在前面:本文docker镜像制作方法更适用于基于已有docker镜像一次性修改。 [b]推荐用Docker File制作docker镜像。 [/b] 原理是一样的,但是用docker file制作docker镜像能够记录下操作步骤,方便以后更改或者镜像丢失后重新创建。 本文以Ubuntu为基础镜像,预启动一个django项目和ssh服务,制作一个新的镜像。 [b]1、基础镜像[/b] 我选用的是从Docker官网下载的ubuntu镜像。 docker run ubuntu 或者 docker pull ubuntu [b]2、安装ssh服务[/b] docker run -i -t ubuntu /bin/bash #创建一个容器,-t是临时终端。 进入ubuntu后,安装openssh apt-get install openssh-server #安装ssh #需要修改/etc/sshd/sshd_config文件中内容 PermitRootLogin yes UsePAM no 修改ubuntu的root用户密码,以便以后ssh登陆: sudo passwd root [b]3、制作新的镜像[/b] 到此,我们需要把这个带有ssh服务的容器提交成一个镜像,方便以后在这个基础上各种改造: docker commit <container id> <image name> [b]4、基于现有ssh服务的Ubuntu镜像,加入django项目,并设置随容器自启动[/b] ok,经过以上步骤,doker images可以查看,新提交的doker镜像已经在里面了,例如image name为ssh-ubuntu的新镜像。 最基础的Ubuntu容器已经没有作用了 利用 doker stop <container id> doker rm <Container id> 清楚刚刚启动的最基础的Ubuntu容器 下面,要基于我们新的ssh-ubuntu进行个性化定制,首先,要将这个镜像运行起来 docker run -d -p 5001:22 ssh-ubuntu /usr/sbin/sshd -D (-p为端口映射 容器中22端口应射程主机5001端口  ||   /usr/sbin/sshd -D是指定容器启动后要运行的command,本处是启动ssh服务) 容器启动后,我们可以通过ssh的方式,登陆到容器中 ssh root@doker0_ip -p 5001(22映射端口) 进入到容器后,就可以进行下一步个性化定制了。例如我要把我的django项目放到镜像中,并随着容器启动而启动。 (1)把django项目拷贝到容器中,用scp命令即可。 (2)比较通用的开机启动进程方法: 安装supervisor! apt-get update && apt-get install supervisor (如果apt-get install找不到包,先update一下) 然后编辑配置文件,vi /etc/supervisord.conf
[supervisord]
nodaemon=true
[program:sshd]
command=/usr/sbin/sshd -D

[program:tomcat]
command=python ~/manager.py runserver 0.0.0.0:9999

然后保存退出即可。 用3小节方法重新制作新的镜像,清除当前容器即可。 [b]5、运行新镜像[/b] docker run -d -p 5001:22 -p 5000:9999 <image-name> /etc/supervisord 此时,可以访问主机5000端口,看看能不能访问到容器里面的django项目。 镜像制作大体过程至此完成。 ***************************************************************************************************************************************************** docker 本身是有push 来上传的 index.docker.io 的,使用是用pull拉取。但是没有条件搭建本地docker仓库或者需要将应用导出到另外一个Docker环境中,我们可以将docker镜像导出到一个文件,具体做法如下:  sudo docker export <容器id>  >  docker_app.tar 完成后我们刚才制作的容器就导出成了 docker_app.tar 文件, 以后在其他机器部署的时候执行导入 cat docker_app.tar | sudo docker import - docker_app 管道后面的 docker_app 为导入后image命名,自己指定 感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部