IT其它Docker

怎么用docker封装应用?

参与12

3同行回答

yinxinyinxin项目经理某金融机构
给你一个参考:docker封装一个apache的应用1.自定义镜像模版:[root@coker1 ~]# docker rm $(docker ps -qa)[root@coker1 ~]# mkdir  king[root@coker1 ~]# cd king[root@coker1 king]# touch  Dockerfile[root@coker1 king]# vim Dockerfile FROM centosRUN  rm -f /et...显示全部

给你一个参考:

docker封装一个apache的应用

1.自定义镜像模版:

[root@coker1 ~]# docker rm $(docker ps -qa)
[root@coker1 ~]# mkdir  king

[root@coker1 ~]# cd king
[root@coker1 king]# touch  Dockerfile

[root@coker1 king]# vim Dockerfile 

FROM centos

RUN  rm -f /etc/yum.repos.d/*.repo

ADD  local.repo
/etc/yum.repos.d/local.repo

RUN  yum install net-tools vim-enhanced
psmisc iproute -y

:wq

[root@coker1 king]# cp /etc/yum.repos.d/dvd.repo
  local.repo

[root@coker1 king]# docker  build
 -t  myos:latest
 .

Successfully built 912024d5da2e

封装http服务:

[root@coker1 xo]# vim Dockerfile

FROM myos

RUN  yum install -y httpd

RUN echo "hello nsd1804"  >
/var/www/html/index.html  
 

WORKDIR /var/www/html    
     
     
     
   //永远保持在当前目录
 RUN 是执行完命令就会退回上一级命令
RUN  echo "hello nsd1804" >
 index.html
ENV
 EnvironmentFile=/etc/sysconfig/httpd

EXPOSE 80

CMD  ["/usr/sbin/httpd",
"-DFOREGROUND"]

:wq

停止和删除当前的所有容器:删除以前久的容器:

[root@coker1 xo]# docker  stop
 $(docker ps -q)

[root@coker1 xo]# docker rm $(docker ps -aq)

[root@coker1 xo]# docker  rmi
myos:httpd

编排容器的命令(当前目录下运行)

[root@coker1 xo]# docker build -t myos:httpd
 .

后台运行容器:

[root@coker1 xo]# docker run -d myos:httpd

查看容器的IP
[root@coker1 xo]# docker inspect
 9ca33ba7ad74a15f299ebd463e2c3f1ec4f1db1a59b5900527da5

查看http的测试:

[root@coker1 xo]# curl  -i
http://172.17.0.2
HTTP/1.1 200 OK
Date: Wed, 22 Aug 2018 04:35:18 GMT
Server: Apache/2.4.6 (CentOS)
Last-Modified: Wed, 22 Aug 2018 04:33:50 GMT
ETag: "e-573fea626c780"
Accept-Ranges: bytes
Content-Length: 14
Content-Type: text/html; charset=UTF-8

hello nsd1804

收起
银行 · 2018-10-08
浏览1974
bryanbryan软件架构设计师金融研发
不要想的那么复杂,一般就是参考dockerfile写就可以,把所有需要手动配置程序的过程都写入到dockerfile里面显示全部

不要想的那么复杂,一般就是参考dockerfile写就可以,把所有需要手动配置程序的过程都写入到dockerfile里面

收起
银行 · 2018-10-10
edwin1986edwin1986系统架构师上汽通用汽车
1.确认应用是有状态还是无状态2.针对有状态的应用需要通过存储卷进行挂载,不然容器销毁后持久化的东西将不再存在。具体参考https://docs.docker.com/storage/#next-stepsdocker应用打包推荐使用docker file,具体参考https://docs.docker.com/get-started/part2/#dockerfil...显示全部

1.确认应用是有状态还是无状态
2.针对有状态的应用需要通过存储卷进行挂载,不然容器销毁后持久化的东西将不再存在。具体参考https://docs.docker.com/storage/#next-steps

docker应用打包推荐使用docker file,具体参考https://docs.docker.com/get-started/part2/#dockerfile
针对基础镜像,推荐使用(企业)精简版而非自己基于原始镜像进行安装,避免镜像过大及安全性问题

收起
汽车 · 2018-10-09

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2018-10-08
  • 关注会员:4 人
  • 问题浏览:2611
  • 最近回答:2018-10-10
  • X社区推广