7.dockerfile自动构建docker镜像

编程

目录

  • 1.手动docker镜像的缺点
  • 2.dockerfile常用指令
  • 3.dockerfile实战1
    • 3.1.手动制作docker镜像步骤
      • 3.1.1.启动容器安装软件服务
      • 3.1.2.将安装好服务的容器commit提交为镜像
      • 3.1.3.启动新容器来测试新提交的镜像
    • 3.2.dockerfile制作docker镜像步骤
      • 3.2.1.编写dockerfile
      • 3.2.2.docker build构建镜像
      • 3.2.3.启动新容器来测试新构建的镜像
  • 4.dockerfile实战2
    • 4.1.手动制作支持ssh-http双服务的docker镜像
      • 4.1.1.启动容器安装软件服务
      • 4.1.2.将安装好服务的容器commit提交为镜像
      • 4.1.3.启动新容器来测试新提交的镜像
    • 4.2.dockerfile制作docker镜像步骤
      • 4.2.1.编写dockerfile
      • 4.2.2.docker build构建镜像
      • 4.2.3.启动新容器来测试新提交的镜像

1.手动docker镜像的缺点

相对于手动制作的docker镜像,使用dockerfile构建的镜像有以下优点:

1:dockerfile只有几kb,便于传输

2:使用dockerfile构建出来的镜像,在运行容器的时候,不用指定容器的初始命令

3:支持更多的自定义操作

2.dockerfile常用指令

dockerfile常用指令:

FROM 这个镜像的妈妈是谁?(指定基础镜像)

MAINTAINER 告诉别人,谁负责养它?(指定维护者信息,可以没有)

RUN 你想让它干啥(在命令前面加上RUN即可)

ADD 给它点创业资金(COPY文件,会自动解压)

WORKDIR 我是cd,今天刚化了妆(设置当前工作目录)

VOLUME 给它一个存放行李的地方(设置卷,挂载主机目录)

EXPOSE 它要打开的门是啥(指定对外的端口)(-P 随机端口)

CMD 奔跑吧,兄弟!(指定容器启动后的要干的事情)(容易被替换)

dockerfile其他指令:

COPY 复制文件

ENV 环境变量

ENTRYPOINT 容器启动后执行的命令(无法被替换,启容器的时候指定的命令,会被当成参数)

3.dockerfile实战1

3.1.手动制作docker镜像步骤

3.1.1.启动容器安装软件服务

docker run -it -p 1022:22 --name oldboy centos:6.9 

######

yum install openssh-server -y

/etc/init.d/sshd start

echo 123456|passwd --stdin root

######

3.1.2.将安装好服务的容器commit提交为镜像

docker commit oldboy centos6-ssh:v1

3.1.3.启动新容器来测试新提交的镜像

docker run -d -p 2022:22 centos6-ssh:v1  /usr/sbin/sshd -D

3.2.dockerfile制作docker镜像步骤

3.2.1.编写dockerfile

vi  Dockerfile

FROM centos:6.9

RUN yum install openssh-server -y

RUN /etc/init.d/sshd start

RUN echo 123456|passwd --stdin root

CMD ["/usr/sbin/sshd","-D"]

3.2.2.docker build构建镜像

docker build -t centos6-ssh:v2  .

3.2.3.启动新容器来测试新构建的镜像

docker run -d -p 1322:22 centos6-ssh:v2

4.dockerfile实战2

4.1.手动制作支持ssh-http双服务的docker镜像

4.1.1.启动容器安装软件服务

docker run -it --name oldgirl centos:6.9 

yum install httpd -y

yum install openssh-server -y

/etc/init.d/sshd start

echo 123456|passwd --stdin root

###容器启动脚本

vi /init.sh

#!/bin/bash

/etc/init.d/httpd start

/usr/sbin/sshd -D

4.1.2.将安装好服务的容器commit提交为镜像

docker commit oldgirl centos6-ssh-httpd:v1

4.1.3.启动新容器来测试新提交的镜像

docker run -d -p 8080:80 -p 1122:22 centos6-ssh-httpd:v1 /bin/bash /init.sh

4.2.dockerfile制作docker镜像步骤

4.2.1.编写dockerfile

vi  Dockerfile

FROM centos:6.9

RUN yum install openssh-server httpd -y

RUN /etc/init.d/sshd start

RUN echo 123456|passwd --stdin root

ADD init.sh /init.sh

CMD [“/bin/bash",“/init.sh"]

###容器启动脚本

vi /init.sh

#!/bin/bash

/etc/init.d/httpd start

/usr/sbin/sshd -D

4.2.2.docker build构建镜像

docker build -t centos6-ssh-httpd:v2

4.2.3.启动新容器来测试新提交的镜像

docker run -d -p 8080:80 -p 2122:22 centos6-ssh-httpd:v2

以上是 7.dockerfile自动构建docker镜像 的全部内容, 来源链接: utcz.com/z/515828.html

回到顶部