Dockerfile,2024最新Linux运维面试笔试

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Linux运维全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上运维知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip1024b (备注运维)
img

正文

基础指令

在这里插入图片描述

FORM		  #基础镜像
MAINTAINER    #镜像是谁写的 邮箱+姓名
RUN 		  #镜像构建时要运行的命令
ADD    		  #要添加的内容
WORKDIR  	  #设置工作目录
VOLUME 		  #挂载的目录
EXPOSE 		  #保留端口的配置
CMD			  #指定容器要运行时执行的命令 , 只有最后一个会生效,可以被替代
ENTRYPOINT 	  #指定容器运行时要执行的命令 可以追加
ONBUILD 	  #当构建一个被继承的Dokcerfile这是时候会运行该指令
COPY  		  #类似ADD指令,将文件copy到镜像中
ENV			  #构建的时候设置环境变量

Dockerfile测试

创建自己的centos

[root@iZf8zhsqf64x47n1tpdy6oZ dockerfile]# cat Dockerfile-centos 
#编写Dockerfile文件
#基础镜像

FROM centos:7
#谁写的
MAINTAINER  packet<123456@qq.com>
#环境
ENV MYPATH /usr/local
#工作目录
WORKDIR $MYPATH

#添加一些信息
RUN yum -y install vim
RUN yum -y install net-tools
#暴露端口
EXPOSE 80
#echo 输出信息
CMD echo $MYPATH
CMD echo "----end----"
CMD /bin/bash

#构建镜像
docker build -f /home/dockerfile/Dockerfile-centos -t mycentos:1.0 .

#运行镜像
[root@iZf8zhsqf64x47n1tpdy6oZ dockerfile]# docker run -it 4aa49c58348a /bin/bash
#发现进来就是local目录,这是工作目录的作用
[root@d7a0ad39c58c local]# pwd
/usr/local
[root@d7a0ad39c58c local]# ls
bin  etc  games  include  lib  lib64  libexec  sbin  share  src
[root@d7a0ad39c58c local]# cd /
[root@d7a0ad39c58c /]# ls

anaconda-post.log  dev  home  lib64  mnt  proc  run   srv  tmp  var
bin                etc  lib   media  opt  root  sbin  sys  usr

#现在可以执行这些命令了,之前时执行不了的
[root@d7a0ad39c58c /]# ifconfig
[root@d7a0ad39c58c /]# vim anaconda-post.log



遇到的坑

  • 注意centos:7要写版本,不然执行不了, 好像8也不太行
  • docker build 最后有一个空格有一个点,需要注意

docker history 查看历史

[root@iZf8zhsqf64x47n1tpdy6oZ dockerfile]# docker history 4aa49c58348a
IMAGE               CREATED             CREATED BY                                      SIZE                COMMENT
4aa49c58348a        16 minutes ago      /bin/sh -c #(nop) CMD ["/bin/sh" "-c" "/b... 0 B 
d02ae184f173        16 minutes ago      /bin/sh -c #(nop) CMD ["/bin/sh" "-c" "ec... 0 B 
1070345e548d        16 minutes ago      /bin/sh -c #(nop) CMD ["/bin/sh" "-c" "ec... 0 B 
d66d848f1711        16 minutes ago      /bin/sh -c #(nop) EXPOSE 80/tcp 0 B 
0a5b48f4a277        16 minutes ago      /bin/sh -c yum -y install net-tools             241 MB              
bcf1338f8c9a        17 minutes ago      /bin/sh -c yum -y install vim                   296 MB              
7ad444664b62        17 minutes ago      /bin/sh -c #(nop) WORKDIR /usr/local 0 B 
c048257c88b1        17 minutes ago      /bin/sh -c #(nop) ENV MYPATH=/usr/local 0 B 
a6651ce8816d        17 minutes ago      /bin/sh -c #(nop) MAINTAINER packet<12345... 0 B 
eeb6ee3f44bd        2 years ago         /bin/sh -c #(nop) CMD ["/bin/bash"] 0 B 
<missing>           2 years ago         /bin/sh -c #(nop) LABEL org.label-schema.... 0 B 
<missing>           2 years ago         /bin/sh -c #(nop) ADD file:b3ebbe8bd304723... 204 MB 

CMD 与 ENTRYPOINT

#创建两个dockerfile分别是dockerfile-cmd 与dockerfile-entrypoint-test
[root@iZf8zhsqf64x47n1tpdy6oZ dockerfile]# vim dockerfile-cmd-test
[root@iZf8zhsqf64x47n1tpdy6oZ dockerfile]# cat dockerfile-cmd-test 
FROM centos
CMD ["ls","-a"]
[root@iZf8zhsqf64x47n1tpdy6oZ dockerfile]# vim dockerfile-entrypoint-test
[root@iZf8zhsqf64x47n1tpdy6oZ dockerfile]# cat dockerfile-entrypoint-test 
FROM centos
ENTRYPOINT ["ls","-a"]

#构建镜像
[root@iZf8zhsqf64x47n1tpdy6oZ dockerfile]# docker build -f dockerfile-cmd-test -t dockerfile-cmd-test:1.0 .
Sending build context to Docker daemon 3.072 kB
Step 1/2 : FROM centos
 ---> 5d0da3dc9764
Step 2/2 : CMD ls -a
 ---> Running in 5eb2172a757f
 ---> 849d49cb4672
Removing intermediate container 5eb2172a757f
Successfully built 849d49cb4672

#构建镜像
[root@iZf8zhsqf64x47n1tpdy6oZ dockerfile]# docker build -f dockerfile-entrypoint-test -t dockerfile-entrypoint-test:1.0 .
Sending build context to Docker daemon 4.096 kB
Step 1/2 : FROM centos
 ---> 5d0da3dc9764
Step 2/2 : ENTRYPOINT ls -a
 ---> Running in 8554e0a5ab49
 ---> 5c40e329e0be
Removing intermediate container 8554e0a5ab49
Successfully built 5c40e329e0be



[root@iZf8zhsqf64x47n1tpdy6oZ dockerfile]# docker images
REPOSITORY                      TAG                 IMAGE ID            CREATED             SIZE
dockerfile-entrypoint-test      1.0                 5c40e329e0be        14 seconds ago      231 MB
dockerfile-cmd-test             1.0                 849d49cb4672        2 minutes ago       231 MB
mycentos                        1.0                 4aa49c58348a        36 minutes ago      742 MB
<none>                          <none>              0146ba7c38c0        39 minutes ago      231 MB
tomcat01                        1.0                 0c109a855b95        3 days ago          684 MB
docker.io/portainer/portainer   latest              5f11582196a4        15 months ago       287 MB
docker.io/nginx                 latest              605c77e624dd        2 years ago         141 MB
docker.io/tomcat                9.0                 b8e65a4d736d        2 years ago         680 MB
docker.io/tomcat                latest              fb5657adc892        2 years ago         680 MB
docker.io/mysql                 5.7                 c20987f18b13        2 years ago         448 MB
docker.io/centos                7                   eeb6ee3f44bd        2 years ago         204 MB
docker.io/centos                latest              5d0da3dc9764        2 years ago         231 MB
docker.io/elasticsearch         7.6.2               f29a1ee41030        3 years ago         791 MB



#dockerfile-cmd-test 1.0 849d49cb4672 2 minutes ago 231 MB
[root@iZf8zhsqf64x47n1tpdy6oZ dockerfile]# docker run 849d49cb4672
.
..
.dockerenv
bin
dev
etc
home
lib
lib64
lost+found
media
mnt
opt
proc
root
run
sbin
srv
sys
tmp
usr
var
#却不能追加
[root@iZf8zhsqf64x47n1tpdy6oZ dockerfile]# docker run 849d49cb4672 -l
container_linux.go:290: starting container process caused "exec: \"-l\": executable file not found in $PATH"
/usr/bin/docker-current: Error response from daemon: oci runtime error: container_linux.go:290: starting container process caused "exec: \"-l\": executable file not found in $PATH".

#dockerfile-entrypoint-test 1.0 5c40e329e0be 14 seconds ago 231 MB
#可以追加
[root@iZf8zhsqf64x47n1tpdy6oZ dockerfile]# docker run 5c40e329e0be -l
total 56
drwxr-xr-x   1 root root 4096 Mar  9 02:39 .
drwxr-xr-x   1 root root 4096 Mar  9 02:39 ..
-rwxr-xr-x   1 root root    0 Mar  9 02:39 .dockerenv
lrwxrwxrwx   1 root root    7 Nov  3  2020 bin -> usr/bin
drwxr-xr-x   5 root root  340 Mar  9 02:39 dev
drwxr-xr-x   1 root root 4096 Mar  9 02:39 etc
drwxr-xr-x   2 root root 4096 Nov  3  2020 home
lrwxrwxrwx   1 root root    7 Nov  3  2020 lib -> usr/lib
lrwxrwxrwx   1 root root    9 Nov  3  2020 lib64 -> usr/lib64
drwx------   2 root root 4096 Sep 15  2021 lost+found
drwxr-xr-x   2 root root 4096 Nov  3  2020 media
drwxr-xr-x   2 root root 4096 Nov  3  2020 mnt
drwxr-xr-x   2 root root 4096 Nov  3  2020 opt
dr-xr-xr-x 114 root root    0 Mar  9 02:39 proc
dr-xr-x---   2 root root 4096 Sep 15  2021 root
drwxr-xr-x   1 root root 4096 Mar  9 02:39 run
lrwxrwxrwx   1 root root    8 Nov  3  2020 sbin -> usr/sbin
drwxr-xr-x   2 root root 4096 Nov  3  2020 srv
dr-xr-xr-x  13 root root    0 Mar  9 02:39 sys
drwxrwxrwt   7 root root 4096 Sep 15  2021 tmp
drwxr-xr-x  12 root root 4096 Sep 15  2021 usr
drwxr-xr-x  20 root root 4096 Sep 15  2021 var
[root@iZf8zhsqf64x47n1tpdy6oZ dockerfile]# 


在这里插入图片描述

制作Tomcat镜像

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注运维)
img

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
制作Tomcat镜像

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注运维)
[外链图片转存中…(img-TvnwnrIq-1713318137490)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值