dockerfile的使用

dockerfile 可以帮助我们构建docker镜像的规则。我们以上节的hello-world为例子,简述dockerfile的使用。

容器启动时自动启动业务

刚刚我们的hello.py是进入容器中手动启动的,实际情况肯定不是这样,这里使用使用dockerfile在原来的镜像基础上再构建一个新的镜像

查看镜像:

fanuxdeMacBook-Air:~ fanux$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
hello-world         v1.0                395d614063e1        18 minutes ago      293.4 MB
ubuntu              my                  b2e21aa53afb        2 days ago          124.8 MB
centos              7                   970633036444        11 days ago         196.7 MB
ubuntu              latest              42118e3df429        2 weeks ago         124.8 MB

创建一个目录,用于构建镜像

fanuxdeMacBook-Air:~ fanux$ mkdir new-hello-world
fanuxdeMacBook-Air:~ fanux$ cd new-hello-world/ && touch Dockerfile
fanuxdeMacBook-Air:new-hello-world fanux$ ls
Dockerfile

在Dockerfile中输入以下内容:

FROM hello-world:v1.0
CMD python hello.py

build镜像

fanuxdeMacBook-Air:new-hello-world fanux$ docker build -t hello-world:v2.0 .
Sending build context to Docker daemon 2.048 kB
Step 1 : FROM hello-world:v1.0
 ---> 395d614063e1
Step 2 : CMD python hello.py
 ---> Running in 24c452ce519f
 ---> db94932f1d0e
Removing intermediate container 24c452ce519f
Successfully built db94932f1d0e

查看新镜像:

fanuxdeMacBook-Air:new-hello-world fanux$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
hello-world         v2.0                db94932f1d0e        7 seconds ago       293.4 MB
hello-world         v1.0                395d614063e1        24 minutes ago      293.4 MB
ubuntu              my                  b2e21aa53afb        2 days ago          124.8 MB
centos              7                   970633036444        11 days ago         196.7 MB
ubuntu              latest              42118e3df429        2 weeks ago         124.8 MB

启动新容器

fanuxdeMacBook-Air:new-hello-world fanux$ docker run --rm -p 8888:8888 hello-world:v2.0

参数说明:

  • --rm 容器执行完自动删除容器,启动一个零时容器常用。 这时在浏览器中可以访问到我们的业务了。和上面的区别就是在构建镜像时我们使用了CMD命令,这样在启动容器时就会执行python hello.py也就是我们的业务。

results matching ""

    No results matching ""