千家信息网

如何通过Dockerfile创建镜像

发表于:2025-02-01 作者:千家信息网编辑
千家信息网最后更新 2025年02月01日,这篇文章主要讲解了"如何通过Dockerfile创建镜像",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"如何通过Dockerfile创建镜像"吧!//列
千家信息网最后更新 2025年02月01日如何通过Dockerfile创建镜像

这篇文章主要讲解了"如何通过Dockerfile创建镜像",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"如何通过Dockerfile创建镜像"吧!

//列出本地所有容器镜像

$ docker imagesREPOSITORY       TAG      IMAGE ID      CREATED      VIRTUAL SIZEtraining/webapp  latest   fc77f57ad303  3 weeks ago  280.5 MBubuntu           14.04    5e019ab7bf6d  4 weeks ago  180 MBubuntu           latest   5e019ab7bf6d  4 weeks ago  180 MBubuntu           12.04    74fe38d11401  4 weeks ago  209.6 MBubuntu           precise  74fe38d11401  4 weeks ago  209.6 MB

//一个镜像可能有多个TAG

//通过docker run -t -i REPOSITORY:TAG /bin/bash 运行一个容器,譬如ubuntu:14.04和ubuntu:latest是运行同一个镜像

//获取一个新的容器镜像

$ docker pull centosPulling repository centosb7de3133ff98: Pulling dependent layers5cc9e91966f7: Pulling fs layer511136ea3c5a: Download completeef52fb1fe610: Download complete. . .Status: Downloaded newer image for centos
$ docker run -t -i centos /bin/bashbash-4.1#

//从Docker Hub上搜索想要的容器镜像
$ sudo docker search sinatraNAME                                   DESCRIPTION                                     STARS     OFFICIAL   AUTOMATEDtraining/sinatra                       Sinatra training image                          0                    [OK]marceldegraaf/sinatra                  Sinatra test app                                0mattwarren/docker-sinatra-demo                                                         0                    [OK]luisbebop/docker-sinatra-hello-world                                                   0                    [OK]bmorearty/handson-sinatra              handson-ruby + Sinatra for Hands on with D...   0subwiz/sinatra                                                                         0bmorearty/sinatra                                                                      0. . .
//然后可以下载相应的容器镜像


//创建自定义的容器镜像
$ docker run -t -i training/sinatra /bin/bashroot@0b2616b0e5a8:/# gem install json

//-a标识创建作者
$ docker commit -m "Added json gem" -a "Kate Smith" 0b2616b0e5a8 ouruser/sinatra:v24f177bd27a9ff0f6dc2a830403925b5360bfe0b93d476f7fc3231110e7f71b1c

//查看创建的容器镜像
$ docker imagesREPOSITORY          TAG     IMAGE ID       CREATED       VIRTUAL SIZEtraining/sinatra    latest  5bc342fa0b91   10 hours ago  446.7 MBouruser/sinatra     v2      3c59e02ddd1a   10 hours ago  446.7 MBouruser/sinatra     latest  5db5f8471261   10 hours ago  446.7 MB

//通过Dockerfile创建镜像
$ mkdir sinatra$ cd sinatra$ touch Dockerfile
# This is a commentFROM ubuntu:14.04MAINTAINER Kate Smith RUN apt-get update && apt-get install -y ruby ruby-devRUN gem install sinatra

//利用Dockerfile和docker build命令创建一个镜像
$ docker build -t ouruser/sinatra:v2 .Sending build context to Docker daemon 2.048 kBSending build context to Docker daemon Step 0 : FROM ubuntu:14.04 ---> e54ca5efa2e9Step 1 : MAINTAINER Kate Smith  ---> Using cache ---> 851baf55332bStep 2 : RUN apt-get update && apt-get install -y ruby ruby-dev ---> Running in 3a2558904e9bSelecting previously unselected package libasan0:amd64.
...
Installing RDoc documentation for rack-protection-1.5.3...Installing RDoc documentation for sinatra-1.4.5... ---> 97feabe5d2edRemoving intermediate container 6b81cb6313e5Successfully built 97feabe5d2ed
//利用-t来识别新镜像属于ouruser,v2是TAG



//给ouruser/sinatra镜像设置TAG
$ docker tag 5db5f8471261 ouruser/sinatra:devel
//查看ouruser/sinatra的TAG
$ docker images ouruser/sinatraREPOSITORY          TAG     IMAGE ID      CREATED        VIRTUAL SIZEouruser/sinatra     latest  5db5f8471261  11 hours ago   446.7 MBouruser/sinatra     devel   5db5f8471261  11 hours ago   446.7 MBouruser/sinatra     v2      5db5f8471261  11 hours ago   446.7 MB

//将镜像PUSH到Docker Hub
$ docker push ouruser/sinatraThe push refers to a repository [ouruser/sinatra] (len: 1)Sending image listPushing repository ouruser/sinatra (3 tags). . .

//从本地删除镜像
$ docker rmi training/sinatraUntagged: training/sinatra:latestDeleted: 5bc342fa0b91cabf65246837015197eecfa24b2213ed6a51a8974ae250fedd8dDeleted: ed0fffdcdae5eb2c3a55549857a8be7fc8bc4241fb19ad714364cbfd7a56b22fDeleted: 5c58979d73ae448df5af1d8142436d81116187a7633082650549c52c3a2418f0

感谢各位的阅读,以上就是"如何通过Dockerfile创建镜像"的内容了,经过本文的学习后,相信大家对如何通过Dockerfile创建镜像这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!

0