DockerFile和基础命令总结

2,541 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路

DockerFile

用来构建docker镜像文件,实质就是命令参数脚本

介绍

Docker构建的步骤:

  1. 编写一个dockerfile文件
  2. docker build 构建一个镜像
  3. docker run 运行一个镜像
  4. docker push 发布镜像(dockerhub,腾讯云仓库,阿里云仓库)

官方制作镜像:

1644830399(1).jpg

DockerFile构建

基本知识

  • 每个保留关键字必须是大写
  • #用来注释
  • 脚本语言,所以是从上到下执行的
  • 每一行指令都是创建一层镜像

1644830631(1).jpg

  • **DockerFile:**构建文件,定义了一切步骤,是源代码
  • **Dockerimages:**由DockerFile构建的镜像,最终发布并被使用的产品
  • **Docker容器:**镜像运行起来提供的服务

DockerFile的指令

FROM              #基础镜像,一切从这里开始扣减
MAINTAINER        #镜像的作者信息
RUN               #镜像构建时要运行的命令
ADD               #添加内容 (比如构建centos+tomcat,我们在这里反tomcat压缩包)
WORKDIR           #镜像的工作目录
VOLUME            #镜像的挂载目录
EXPOSE            #镜像端口配置
CMD               #指定容器启动时要运行的命令,可以替换命令
ENTRYPOINT        #指定容器启动时要运行的命令,可以追加命令
ONBUILD           #触发指令
COPY              #类似于ADD 将我们的文件拷贝到镜像中
ENV               #构建的时候设置环境变量

1644832257(1).jpg

CMD和ENTRYPOINT的区别

  • 如果使用CMD,那么后面运行镜像时再加命令,此时后加的命令会将前面的DockerFile内的CMD命令替换
  • 如果使用ENTRYPOINT,那么不会想CMD那样,它会以追加的形式追加命令(直接拼接到后面)

小结

1644647074(1).jpg

#镜像:
docker images #查看本地主机上的镜像
	-a        #列出所有镜像
	-q        #列出镜像的id
docker search #搜索镜像
    --filter=过滤参数=数值  #过滤相应的数值参数
docker pull 镜像名     #下载镜像(默认下载最新本)
	:版本号    #下载指定版本
docker rmi -f 镜像id   #删除指定镜像
	多个镜像id #同时删除多个指定镜像
	$(docker images -aq)   #将所有的镜像全部删除
#容器:
docker run 镜像名      #新建了一个容器
	--name=“Name”     #给容器命名
	-it       #使用交互式运行,进入容器查看内容
	-p        #指定容器端口
	-p ip:主机端口:容器端口 
	-p 主机端口:容器端口  #主机端口映射到容器端口 (最常用的)
	-p 容器端口
	容器端口
	-P        #随机指定容器端口
docker ps     #当前运行的容器
	-a        #列出曾经的运行的和现在运行的容器
	-n=?     #显示最近创建的容器
	-q        #只显示容器的编号
exit  		  #容器停止并退出
ctrl + P + Q  #容器不停止退出
docker rm 容器id  #删除指定容器,不能删除正在运行的容器
	-f 容器id #强制删除
	-f $(docker ps -aq)  #删除所有的容器
docker ps -a -q|xargs docker rm -f #删除所用容器
docker start   容器id    #启动容器
docker restart 容器id    #重启容器
docker stop    容器id    #停止当前正在运行的容器
docker kill    容器id    #强制停止当前容器
docker logs -t -f      #显示全部日志(包括时间戳)
docker -tf --tail number #指定要显示多少条的日志
docker top 容器id        #显示容器运行信息
docker inspect 容器id    #显示容器元数据
docker exec -it 容器id bsahShell #进入容器开启另一个终端
docker attach 容器id     #进入容器并上次退出的终端页面
docker cp 容器id:容器内路径 目的主机路径 #将容器内的文件拷贝到本地主机上
docker stats   #查看doker的cup状态