docker及docker-compose配置示例
1.docker及docker-compose配置示例
一、docker-file
1. Docker执行Dockerfile的大致流程
1. docker从基础镜像运行一个容器 2. 执行一条指令并对容器作出修改 3. 执行类似docker commit的操作提交一个新的镜像层 4. docker再基于刚提交的镜像运行一个新容器 5. 执行dockerfile中的下一条指令直到所有指令都执行完成
2. docker-file例子
# ----------------------------------Dockerfile-config--------------------------------------------
# 基础镜像,当前新镜像是基于哪个镜像的
FROM centos-jdk
# 挂载点,容器数据卷,用于数据保存和持久化工作 VOLUME /tmp
# 复制文件,将宿主机目录下的文件拷贝进镜像且ADD命令会自动处理URL和解压tar压缩包(tar包) ADD ./dfWeiji/package/weiji-config-0.0.1.jar app.jar
# 复制文件,将宿主机目录下的文件拷贝进镜像且ADD命令会自动处理URL和解压tar压缩包(延迟插件启动) ADD ./dfWeiji/package/entrypoint.sh ./
# 类似ADD,拷贝文件和目录到镜像中。【区别是不会进行解压tar包!】
# COPY src dest
# 容器构建时需要运行的命令 RUN chmod +x ./entrypoint.sh
# 执行后面命令 RUN sh -c 'touch /app.jar'
# 一个容器启动时要运行的命令,和ENTRYPOINT一样,但只有最后一个生效,CMD 会被 docker run 之后的参数替换
# CMD ["executable","param1","param2"]
# 指定一个容器启动时要运行的命令
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
# 当前容器对外暴露出的端口 EXPOSE 6501
3. docker-file编译执行
docker build -t <image-name> .
docker run <image-name>
二、docker-compose
1. docker-compose例子
version: '3.0'
services:
config: #自定义服务名
image: weiji-config-0.0.1 #镜像名称
ports:
- "6501:6501" #映射的端口
# links:
# - eureka-server1:eureka6001.com
networks:
eureka-net: #网络模式
aliases:
- config6501.com
#extra_hosts:
# - eureka6001.com:47.103.28.119
# environment: #环境变量配置
# REGISTER_URL: "http://114.115.185.152:8761/eureka/"
# SERVER_PORT: "8091"
eureka-server1: #自定义服务名
image: weiji-eureka-0.0.1 #镜像名称
ports:
- "6001:6001" #映射的端口
#depends_on:
# - config
networks:
eureka-net: #网络模式
aliases:
- eureka6001.com
# volumes: - "./entrypoint.sh:/entrypoint.sh"
# environment: SLEEP_SECOND: 4
tty: true
entrypoint: /entrypoint.sh -d config6501.com:6501 -c 'java -Djava.security.egd=file:/dev/./urandom -jar /app.jar';
# command: ./wait-for-it.sh config6501.com:6501 -t 10
# command: ./wait-for-it.sh config6501.com:6501/config/weiji-eureka-dev.yml -t 10 -- java -jar /app.jar
# command: ["./wait-for-it.sh", "-t", "10", "config6501.com:6501/config/weiji-eureka-dev.yml", "--", "java", "-jar", "/app.jar"]
# command: ["./wait-for-it.sh", "-t", "30", "config6501.com:6501/config/weiji-eureka-dev.yml", "--", "catalina.sh", "run"]
# http://config6501.com:6501/config/weiji-eureka-dev.yml 试着判断config是否可以访问
# test: ["CMD-SHELL", "curl -f http://localhost/ && echo 'cool, it works'"]
#restart: always
# environment: #环境变量
# SERVER_PORT: "8761" #自定义参数用于给服务的配置文件传递参数
nginx-server1:
image: nginx
ports:
- "80:80"
networks:
eureka-net: #网络模式
aliases:
- nnnnnnnnnnnnnnnn
volumes:
- /etc/yum.repos.d/:/etc/yum.repos.d/
networks:
eureka-net:
# driver: bridge
2. 手动启动
docker run -d --name config -p 6501:6501 --network eureka-net --network-alias config6501.com 7d3a880c29cb
docker ps
docker logs --since 2020-07-17T10:58 69
3. docker-compose
docker-compose -f docker-compose.yml build weiji-service
docker-compose -f docker-compose.yml up -d
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
2018-07-13 JDBC事务和JTA (XA)事务区别
2018-07-13 XA两阶段提交协议