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
也就是我们的业务。