Docker 是什么

Docker 属于 Linux 容器的一种封装,提供简单易用的容器使用接口。它是目前最流行的 Linux 容器解决方案。Docker 将应用程序与该程序的依赖,打包在一个文件里面。运行这个文件,就会生成一个虚拟容器。程序在这个虚拟容器里运行,就好像在真实的物理机上运行一样。有了 Docker,就不用担心环境问题。总体来说,Docker 的接口相当简单,用户可以方便地创建和使用容器,把自己的应用放入容器。容器还可以进行版本管理、复制、分享、修改,就像管理普通的代码一样。

  • Docker 需要用户具有 sudo 权限

Docker的重要文件

  • image(镜像)

Docker 把应用程序及其依赖,打包在 image 文件里面。只有通过这个文件,才能生成 Docker 容器。image 文件可以看作是容器的模板。Docker 根据 image 文件生成容器的实例。同一个 image 文件,可以生成多个同时运行的容器实例。

  • container(容器)

mage 文件生成的容器实例,本身也是一个文件,称为容器文件。也就是说,一旦容器生成,就会同时存在两个文件: image 文件和容器文件。而且关闭容器并不会删除容器文件,只是容器停止运行而已。

  • Dockerfile(配置文件)

它是一个文本文件,用来配置 image。Docker 根据 该文件生成二进制的 image 文件。

Dockerfile详细写法,单独写一篇记录!

Docker基本操作

  • 在项目根目录创建Dockerfile文件并配置
FROM java:8
EXPOSE 8080
ENV TIME_ZONE Asia/Shanghai
#RUN apk add --no-cache tzdata && echo "${TIME_ZONE}" > /etc/timezone && ln -sf /usr/share/zoneinfo/${TIME_ZONE} /etc/localtime
ADD target/zh-1.0.0-SNAPSHOT.jar /opt/zh-1.0.0-SNAPSHOT.jar
ENTRYPOINT [  "java", "-jar", "/opt/zh-1.0.0-SNAPSHOT.jar","--spring.profiles.active=pro"]
  • 代码下载至服务器,注意打好jar包,参照上述代码第5行含义
  • 执行docker的打包镜像命令
#指定标签
docker image build -t zh_vip:1.0.0 .
#或者 默认last标签
docker image build -t zh_vip .
  • docker images/docker image ls 查看镜像
  • 生成容器并运行
docker run -d -p 8080:8080 --rm -it zh_vip /bin/bash
#解释
#-d 后台运行
#-p 将容器内端口映射到服务器端口 
#--rm 容器关闭后删除容器  
#-it 容器的 Shell 映射到当前的 Shell,然后你在本机窗口输入的命令,就会传入容器。 
#/bin/bash 容器启动以后,内部第一个执行的命令。这里是启动 Bash,保证用户可以使用 Shell
  • 进入正在运行的容器
docker exec -it <容器id> /bin/bash
  • 关闭容器
docker stop 容器id
  • 删除容器
docker container rm 容器id
  • 删除镜像
docker image rm 镜像id
Last modification:September 17th, 2020 at 03:34 pm
如果觉得我的文章对你有用,请随意赞赏