做建筑看那些网站,设计品牌网站,好网站页面,怎么仿制别人的网站Docker的Image结构是怎样的#xff1f;
镜像是将应用程序 及其需要的 系统函数库、环境、配置、依赖 打包而成。
镜像结构
入口#xff08; Entrypoint #xff09; 镜像运行入口#xff0c;一般是程序启动的脚本和参数 层#xff08; Layer #xff09; 在BaseImage基…Docker的Image结构是怎样的
镜像是将应用程序 及其需要的 系统函数库、环境、配置、依赖 打包而成。
镜像结构
入口 Entrypoint 镜像运行入口一般是程序启动的脚本和参数 层 Layer 在BaseImage基础上添加安装包、依赖、配置等每次操作都形成新的一层。 基础镜像 BaseImage 应用依赖的系统函数库、环境、配置、文件等
镜像是分层结构每一层称为一个Layer
Dockerfile
Dockerfile 就是一个文本文件其中包含一个个的 指令Instruction用指令来说明要执行什么操作来构建镜像。每一个指令都会形成一层Layer。
指令说明示例FROM指定基础镜像FROM centos:6ENV设置环境变量可在后面指令使用ENV key valueCOPY拷贝本地文件到镜像的指定目录COPY 。/mysql-5.7.rpm /tmpRUN执行Linux的shell命令一般是安装过程的命令Run yum install gccEXPOSE指定容器运行时监听的端口是给镜像使用者看的EXPOSE 8080ENTRYPOINT镜像中应用的启动命令容器运行时调用ENTRYPOINT java -jar xx.jar更新详细语法说明请参考官网文档https://docs.docker.com/engine/reference/buider
示例基于Ubantu镜像构建一个新镜像运行一个java项目
步骤1:新建一个空文件夹docker-demo步骤2: 拷贝课前资料中的docker-demojar文件到docker-demo这个目录步骤3:拷贝课前资料中的jdk8.tar.gz文件到docker-demo这个目录步骤4:拷贝课前资料提供的Dockerfile到docker-demo这个目录步骤5:进入docker-demo步骤6: 运行构建镜像命令: docker build -t javaweb:1.0 .-t 指的是tag 名称:版本号最后的 “.” 是指Dockerfile文件的所在目录当前在此目录所以用 “.”
Dockerfile
#指定基础镜像
FROM ubuntu:16.04#配置环境变量JDK的安装目录
ENV JAVA DIR/usr/local#拷贝jdk和java项目的包6
COPY ./jdk8.tar.gz $JAVA_DIR/
COPY ./docker-demo.jar /tmp/app.jar#安装JDK
RUN cd $JAVA DIRtar -xf ./jdk8.tar.gz mv ./jdk1.8._144 ./java8#配置环境变量
ENV JAVA_HOME$JAVA DIR/java8ENV PATH$PATH:$JAVA HOME/bin#暴露端口
EXPOSE 8099#入口java项目的启动命令
ENTRYPOINT java -jar /tmp/app.jarDockerCompose
Docker Compose可以基于Compose文件帮我们快速的部署分布式应用而无需手动一个个创建和运行容器Compose文件是一个文本文件通过指令定义集群中的每个容器如何运行。相当于多个run命令的集合
Compose文件语法示例两种方式
version:3.8
services:mysql: #相当于 --nameimage: mysql:5.7.25 environment: #相当于 -eMYSQL_ROOT_PASSWORD: 123volumes: #相当于 -v- /tmp/mysql/data:/var/lib/mysql- /tmp/mysql/conf/hmy.cnf:/etc/mysql/conf.d/hmy.cnfRuoyi : # --name 临时构建build: . #镜像构建目录ports: #相当于 -p8090: 8090DockerCompose的详细语法参考官网: https://docs.docker.com/compose/compose-file/
下载配置DockerCompose
下载
curl -L
https://github.com/docker/compose/releases/download/1.29.1/docker-
compose-uname -s-uname -m /usr/1ocal/bin/docker-compose或者直接下载上传到 /usr/local/bin/
修改文件权限
chmod x /usr/local/bin/docker-composeBase自动补全命令
curl -L
https://raw.githubusercontent.com/docker/compose/1.29.1/contrib/completion/bash/docker-compose /etc/bash_completion.d/docker-compose如果这里出现访问GitHub错误需要修改自己的hosts文件
echo 199.232.68.133 raw.githubusercontent.com /etc/hostsdocker-compose构建镜像并运行命令
# cd 要构建的文件目录内
docker-compose up -d #up 构建并运行 down 停止并删除更多命令 执行 --help查看