Docker构建镜像

140 阅读3分钟

Docker基本指令说明

From XXX(基于什么镜像)
WORKDIR(指定shell语句运行在那个路径下)
COPY(将宿主机的文件拷贝到某路径下)
RUN(运行shell语句,只要构建就会运行,如echo 321 >> 1.txt)
CMD (指定镜像启动运行的脚本,只有容器真正运行的时候才会运行的脚本,执行后容器的生命周期即结束,且一般为阻塞式语句,如tail语句)

一般语句为:
FROM WORKDIR COPY-ADD RUN CMD-ENTRYPOINT
ENTRYPOINT非json则以ENTRYPOT为准,如果ENTRYPOINT和CMD都是JSON则ENTRYPOINT+CMD拼接成shell

EXPOSE---暴露镜像的指定端口
VOLUME---指定映射文件
ENV---指定doker的环境变量,运行时一直生效
ARG---构建参数,运行时无效,可以构建时候临时修改变量
LABEL---指定元数据,便于找到docker
ONBUILD---当前镜像构建的时候不会执行,基于当前镜像的镜像去构建的时候才会执行
STOPSIGNAL---指定容器使用什么信号,一般指定信号名
HEALTHCHECK---检查容器的健康状态
SHELL---指定linux为/bin/sh,windows为cmd

构建

需要将所需要构建的文件与Dockerfile放至同一目录,不放置在同一目录可通过如下命令

docker build -f .\Dockerfile.dockerfile . -t hello

构建命令

docker build -t image:image_tag .

运行

执行如下命令

创建并运行container容器的命令:

docker run --name containerName -p 80:80 -d container

命令解读:

  • docker run :创建并运行一个容器

  • --name : 给容器起一个名字,比如叫做mn

  • -p :将宿主机端口与容器端口映射,冒号左侧是宿主机端口,右侧是容器端口

  • -d:后台运行容器

  • container:镜像名称,例如container

其他命令

  • docker run:创建并运行一个容器,处于运行状态

  • docker pause:让一个运行的容器暂停

  • docker unpause:让一个容器从暂停状态恢复运行

  • docker stop:停止一个运行的容器

  • docker start:让一个停止的容器再次运行

  • docker rm:删除一个容器

  • docker rmi 删除一个镜像

  • docker cp [容器id]:docker容器中配置文件路径 主机路径: 拷贝容器内的文件

  • docker cp 主机文件路径 容器id:docker容器中配置文件路径: 拷贝到容器里(完成后重启容器)

docker查看容器日志

  • 查看容器启动时的日志
docker logs 容器id
  • 只看最新的日志
docker logs --tail 0 -f 容器id

docekr进入容器

docker exec -it 容器id /bin/bas

docker复制容器内的文件

docker cp [容器id]:docker容器中配置文件路径  主机路径
# 更改回去
docker cp 主机文件路径 容器id:docker容器中配置文件路径

样例:构建springboot镜像

# jdk环境,这里是从docker镜像拉取jdk17,构建镜像
FROM openjdk:17 
# 暴露端口
EXPOSE 8082
# 声明env 
ENV tag 1.2 # 项目版本号
# 工作目录
WORKDIR /app
ADD PortableForTheElderlyBackground-$tag-SNAPSHOT.jar /app/back.jar
# 执行命令
ENTRYPOINT [ "java","-jar", "/app/back.jar"]

IDEA:构建Docker镜像

通过IDEA的docker插件可实现一键生成镜像和部署容器服务,

docker开启配置

修改docker的配置文件:vim /usr/lib/systemd/system/docker.service

#修改ExecStart这行,可将原先的注释,防火墙或者安全组开发2375端口
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
# 修改完成后保存
# 重新加载系统文件
systemctl daemon-reload
# 重启docker
systemctl restart docker

IDEA设置

docker连接配置

1.配置docker.exe

docker镜像在IDEA进行构建需要用到,这里需要去下载docker-windows本机才会有exe文件 image.png

2.docker连接信息配置

image.png

3.编写Dockerfile

编写好的Dockerfile放到项目的根路径下,方便查找

image.png

4.右击Dockerfile选择运行配置

最后点击绿色的run按钮即可,将会自动进行制作镜像和启动容器 image.png image.png image.png

image.png

运行Dockerfile可能会出现无法制作镜像等情况

尝试重启docker或者检查防火墙,以及考虑docker下载镜像源等情况