DockerFile

DockerFile练习

root@Desktop:~# pwd
/root
root@Desktop:~# mkdir test
root@Desktop:~# cd test/

1.FROM

我们创建基于centos的镜像

root@Desktop:~/test# docker pull centos
root@Desktop:~/test# vim Dockerfile
#FROM练习
FROM centos
#构建
root@Desktop:~/test# docker build  -t centos:v1 .
Sending build context to Docker daemon  2.048kB
Step 1/1 : FROM centos
 ---> 300e315adb2f
Successfully built 300e315adb2f
Successfully tagged centos:v1

#查看镜像
root@Desktop:~/test# docker images
REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
centos       latest    300e315adb2f   4 weeks ago   209MB
centos       v1        300e315adb2f   4 weeks ago   209MB	#新构建镜像

#创建容器
root@Desktop:~/test# docker run -itd centos:v1  /bin/bash
1d3ae663f2f6d1b8d2c36f1783b4ab23ebefc21b944267b94a5632c6b40078d9
root@Desktop:~/test# docker ps -a
CONTAINER ID   IMAGE       COMMAND                  CREATED              STATUS          PORTS     NAMES
1d3ae663f2f6   centos:v1   "/bin/bash"              15 seconds ago       Up 14 seconds             suspicious_mcclintock

#进入查看容器
root@Desktop:~/test# docker exec -it 1d3ae663f2f6 /bin/bash
[root@1d3ae663f2f6 /]# ls
bin  dev  etc  home  lib  lib64  lost+found  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var

#停止、删除容器
root@Desktop:~/test# docker stop 1d3ae663f2f6
1d3ae663f2f6
root@Desktop:~/test# docker rm 1d3ae663f2f6
1d3ae663f2f6

2.RUN

centos基础镜像是没有vim命令的,可以使用RUN在构建时安装

root@Desktop:~/test# vim Dockerfile 
#FROM练习
FROM centos

#RUN练习
RUN yum install vim -y

root@Desktop:~/test# docker build -t centos:v2 .
root@Desktop:~/test# docker images
REPOSITORY   TAG       IMAGE ID       CREATED          SIZE
centos       v2        95a4459cd11f   19 seconds ago   267MB
centos       latest    300e315adb2f   4 weeks ago      209MB
centos       v1        300e315adb2f   4 weeks ago      209MB

root@Desktop:~/test# docker run -itd centos:v2 /bin/bash
31013f84e8747b0a70b822c593fc9f80358637e71bd25885f14bef5a57e856f0
root@Desktop:~/test# docker ps -a
CONTAINER ID   IMAGE       COMMAND       CREATED          STATUS          PORTS     NAMES
31013f84e874   centos:v2   "/bin/bash"   32 seconds ago   Up 30 seconds             intelligent_shtern
root@Desktop:~/test# docker exec -it 31013f84e874 /bin/bash
[root@31013f84e874 /]# vim

root@Desktop:~/test# docker stop 31013f84e874 
31013f84e874
root@Desktop:~/test# docker rm 31013f84e874 
31013f84e874

3.COPY

root@Desktop:~/test# echo "COPY测试" >> readme.txt
root@Desktop:~/test# vim Dockerfile 
#FROM练习
FROM centos

#RUN练习
RUN yum install vim -y

#COPY练习
COPY readme.txt /usr/local/readme.txt

root@Desktop:~/test# docker build -t centos:v3 .
Sending build context to Docker daemon  3.072kB
Step 1/3 : FROM centos
 ---> 300e315adb2f
Step 2/3 : RUN yum install vim -y
 ---> Using cache
 ---> 95a4459cd11f
Step 3/3 : COPY readme.txt /usr/local/readme.txt
 ---> 402d5da1250d
Successfully built 402d5da1250d
Successfully tagged centos:v3

root@Desktop:~/test# docker images
REPOSITORY   TAG       IMAGE ID       CREATED          SIZE
centos       v3        402d5da1250d   50 seconds ago   267MB
centos       v2        95a4459cd11f   25 minutes ago   267MB
centos       latest    300e315adb2f   4 weeks ago      209MB
centos       v1        300e315adb2f   4 weeks ago      209MB

root@Desktop:~/test# docker run -itd centos:v3 /bin/bash
0fd152743c816294da0bdb8eb170cef30ee46f09de2745d83bb1476ec86fed70
root@Desktop:~/test# docker ps -a
CONTAINER ID   IMAGE       COMMAND       CREATED          STATUS          PORTS     NAMES
0fd152743c81   centos:v3   "/bin/bash"   55 seconds ago   Up 52 seconds             suspicious_babbage

root@Desktop:~/test# docker exec -it 0fd152743c81 /bin/bash
[root@0fd152743c81 /]# ls /usr/local/
bin  etc  games  include  lib  lib64  libexec  readme.txt  sbin  share	src

root@Desktop:~/test# docker stop 0fd152743c81
0fd152743c81
root@Desktop:~/test# docker rm 0fd152743c81
0fd152743c81

4.ADD

#下载jdk到这个目录
root@Desktop:~/test# ls
Dockerfile  jdk-8u271-linux-x64.tar.gz  readme.txt

root@Desktop:~/test# vim Dockerfile 

#FROM练习
FROM centos

#RUN练习
RUN yum install vim -y

#COPY练习
COPY readme.txt /usr/local/readme.txt

#ADD练习
ADD jdk-8u271-linux-x64.tar.gz /usr/local/

root@Desktop:~/test# docker build -t centos:v4 .
Sending build context to Docker daemon  143.1MB
Step 1/4 : FROM centos
 ---> 300e315adb2f
Step 2/4 : RUN yum install vim -y
 ---> Using cache
 ---> 95a4459cd11f
Step 3/4 : COPY readme.txt /usr/local/readme.txt
 ---> Using cache
 ---> 402d5da1250d
Step 4/4 : ADD jdk-8u271-linux-x64.tar.gz /usr/local/
 ---> 4edbfd7b01b7
Successfully built 4edbfd7b01b7
Successfully tagged centos:v4

root@Desktop:~/test# docker run -itd centos:v4 /bin/bash0da589dae68907c2d70fbb5350e90cc571d41329492a9b3082aced18da1d3659root@Desktop:~/test# docker ps -aCONTAINER ID   IMAGE       COMMAND       CREATED          STATUS          PORTS     NAMES0da589dae689   centos:v4   "/bin/bash"   24 seconds ago   Up 22 seconds             sharp_buckroot@Desktop:~/test# docker exec -it 0da589dae689 /bin/bash[root@0da589dae689 /]# ls /usr/local/bin  etc  games  include  jdk1.8.0_271	lib  lib64  libexec  readme.txt  sbin  share  srcroot@Desktop:~/test# docker  stop 0da589dae6890da589dae689root@Desktop:~/test# docker  rm  0da589dae6890da589dae689

5.VOLUME

root@Desktop:~/test# vim Dockerfile 
#FROM练习FROM centos#RUN练习RUN yum install vim -y#COPY练习COPY readme.txt /usr/local/readme.txt#ADD练习ADD jdk-8u271-linux-x64.tar.gz /usr/local/RUN mv /usr/local/jdk1.8.0_271 /usr/local/jdk1.8#VOLUME练习VOLUME ["/data1","/data2"]
root@Desktop:~/test# docker build -t centos:v5 .Sending build context to Docker daemon  143.2MBStep 1/6 : FROM centos ---> 300e315adb2fStep 2/6 : RUN yum install vim -y ---> Using cache ---> 95a4459cd11fStep 3/6 : COPY readme.txt /usr/local/readme.txt ---> Using cache ---> 402d5da1250dStep 4/6 : ADD jdk-8u271-linux-x64.tar.gz /usr/local/ ---> Using cache ---> 4edbfd7b01b7Step 5/6 : RUN mv /usr/local/jdk1.8.0_271 /usr/local/jdk1.8 ---> Running in 188d7fee415fRemoving intermediate container 188d7fee415f ---> 772c2cf7fecaStep 6/6 : VOLUME ["/data1","/data2"] ---> Running in d3fbf40b000fRemoving intermediate container d3fbf40b000f ---> ce71f6b3da9fSuccessfully built ce71f6b3da9fSuccessfully tagged centos:v5root@Desktop:~/test# docker run -itd  centos:v5 /bin/bashaf43c31ab541e7ba742b9cad12f6652852114d1e83ffaaaaeadd1d8c881bd3d6root@Desktop:~/test# docker ps -aCONTAINER ID   IMAGE       COMMAND       CREATED          STATUS          PORTS     NAMESaf43c31ab541   centos:v5   "/bin/bash"   16 seconds ago   Up 14 seconds             nervous_hermannroot@Desktop:~/test# docker exec -it af43c31ab541 /bin/bash[root@af43c31ab541 /]# ls bin  data1  data2  dev	etc  home  lib	lib64  lost+found  media  mnt  opt  proc  root	run  sbin  srv	sys  tmp  usr  varroot@Desktop:~/test# docker stop af43c31ab541
  root@Desktop:~/test# docker inspect af43c31ab541    #宿主机的目录  "Mounts": [            {                "Type": "volume",                "Name": "0f7334729587e617b8f5ca0746ff28fab40cd8050f683ad67a4311e0b8789881",                "Source": "/var/lib/docker/volumes/0f7334729587e617b8f5ca0746ff28fab40cd8050f683ad67a4311e0b8789881/_data",                "Destination": "/data1",                "Driver": "local",                "Mode": "",                "RW": true,                "Propagation": ""            },            {                "Type": "volume",                "Name": "d49e7eed24193610e43a30b41f0d8d2513ae10c2d62d3aa0635b7f80c521f1e0",                "Source": "/var/lib/docker/volumes/d49e7eed24193610e43a30b41f0d8d2513ae10c2d62d3aa0635b7f80c521f1e0/_data",                "Destination": "/data2",                "Driver": "local",                "Mode": "",                "RW": true,                "Propagation": ""            }        ],        #容器目录        "Volumes": {        "/data1": {},        "/data2": {}        },

6.EXPOSE

#下载好redisroot@Desktop:~/test# lsDockerfile  jdk-8u271-linux-x64.tar.gz  readme.txt  redis-6.0.9.tar.gz
#FROM练习FROM centos#RUN练习RUN yum install vim -y#COPY练习COPY readme.txt /usr/local/readme.txt#ADD练习ADD jdk-8u271-linux-x64.tar.gz /usr/local/RUN mv /usr/local/jdk1.8.0_271 /usr/local/jdk1.8#VOLUME练习VOLUME ["/data1","/data2"]#EXPOSE练习ADD redis-6.0.9.tar.gz /usr/local/RUN cp /usr/local/redis-6.0.9/redis.conf /usr/local/redis-6.0.9/redis2.confEXPOSE 6379
ADD redis-6.0.9.tar.gz /usr/local/RUN cp /usr/local/redis-6.0.9/redis.conf /usr/local/redis-6.0.9/redis2.confEXPOSE 6379
root@Desktop:~/test# docker build -t centos:v6 .root@Desktop:~/test# docker run -it -p 6389:6379 centos:v6

6.EXPOSE

#FROM练习FROM centos#RUN练习RUN yum install vim -y#COPY练习COPY readme.txt /usr/local/readme.txt#ADD练习ADD jdk-8u271-linux-x64.tar.gz /usr/local/RUN mv /usr/local/jdk1.8.0_271 /usr/local/jdk1.8#VOLUME练习VOLUME ["/data1","/data2"]#EXPOSE练习RUN yum install nginx -yEXPOSE 80
root@Desktop:~/test# docker build -t centos:v6 .root@Desktop:~/test# docker run -it -p 8080:80 centos:v6#进入容器,启动nginx[root@08014f22b7f0 /]# nginx

在浏览器访问http://127.0.0.1:8080/ 看到nginx欢迎页面

7.CMD

root@Desktop:~/test# docker build -t centos:v7 .
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值