首页 > 其他分享 >docker部署服务

docker部署服务

时间:2022-09-02 14:33:24浏览次数:81  
标签:容器 compose 服务 部署 构建 ENV 镜像 docker

数据卷挂载

启动时进行挂载数据卷同步:对共享目录进行拷贝,每个容器都有数据

docker run -it --name 启动的容器名 --volumes-from 父容器名称  镜像名

dockerFile

dockerFile : 构建文件,源代码

  1. 每个保留关键字(指令)必须是大写

  2. 执行顺序从上到下

  3. (#)表示注释

  4. 每一个指令都会创建提交一个新的镜像层

FROM     基础镜像,一切从这里开始构建

MAINTAINER		镜像作者

RUN		镜像构建的时候需要运行的命令

ADD		添加内容

WORKDIR		镜像的工作目录

VOLUME		挂载目录

EXPOST		暴露端口配置

CMD		指定容器启动的时候运行的命令,只有最后一个生效

ENTRYPOINT		指定容器启动的时候运行的命令,可以追加命令

ONBUILD		当构建一个被继承的dockerFile时会运行,出发指令

COPY		类似add,将文件拷贝到镜像中

ENV			构建时设置环境变量

构建镜像

docker build -f dockerFile文件路径 -t 镜像名:版本号   .(当前目录)

如果构建文件命名为 DockerFile -f 可以不用加

样例:

# 基础镜像
FROM openjdk:8

# 系统编码
ENV LANG=C.UTF-8 LC_ALL=C.UTF-8

# 设置时区
ENV TZ=RPC
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

ENV PARAMS="-XX:+HeapDumpOnOutOfMemoryError -Xms512m -Xmx512m "

ENV SERVER_IP=""

ENV SERVER_PORT=""

ENV  EN=""


# 声明一个挂载点,容器内此路径会对应宿主机的某个文件夹
VOLUME /tmp
# 应用构建成功后的jar文件被复制到镜像内,名字也改成了app.jar
COPY ./app.jar /tmp/app.jar
# 启动容器时的进程
ENTRYPOINT ["sh","-c","java -jar -Dspring.profiles.active=$EN  /tmp/app.jar --eureka.instance.ip-address=$SERVER_IP -server.port=$SERVER_PORT  $PARAMS"]

微服务部署是需要手动指定服务实例ip , 不然feign会调用失败,参考如上

运行容器时如果出现如下错误
image

重启doker service docker restart

docker 网络

查看所有的docker 网络

docker network ls

image

docker-compose

安装:

curl -L https://get.daocloud.io/docker/compose/releases/download/2.3.3/docker-compose-`uname -s`-`uname -m` >  /usr/local/bin

安装得版本需要根据docker 版本来决定,使用docker-compose出现命令找不到是版本不对应 , 重新安装docker 对应的docker-compose版本即可

重新安装:

在 /usr/local/bin操作

1. 删除刚下载的:

rm -rf docker-compose 

2. 安装扩展源:

yum -y install epel-release

3. 安装python-pip模块:

yum install python-pip

4. 手动下载 docker-compose 到本地,然后上传到 linux 服务器的 /usr/local/bin 路径下

下载地址:
https://github.com/docker/compose/releases

5. 重命名:

mv docker-compose-linux-x86_64 docker-compose

6. 授权:

 chmod +x ./docker-compose 

7. 查看版本:

docker-compose --version

docker-compose.yml 格式:

version: 指定当前文件所对应的compsoe版本,主要有1、2.x和3.x
service: 服务列表
	<service-name>: 服务名
		image: 指定运行的镜像,可直接拉取已有镜像进行处理
		build: 设置Dockerfile所在的文件夹,可处理需要用Dockerfile构建的镜像
			content: 存放Dockerfile的路径
			dockerfile: 指定构建的Dockerfile文件名
			args: 构建参数,只能在构建过程中访问
		container_name: 设置容器名称
		restart: 重启策略,有no、always、no-failure、unless-stoped
		ports: 暴露容器的端口,格式为宿主机端口:容器端口
			- 8080:8080
		hostname: 设置容器的主机名
		volumns: 设置容器的挂载点,可以挂载到宿主机上,主要格式为宿主机路径:容器路径[:访问模式]
			- /opt/data:/opt/data
			- /var/lib/mysql:/var/lib/mysql:rw
		volumns_from: 挂载另一个服务或容器的所有数据卷
			- service_name
			- container_name
		environment: 设置环境变量
			 - RACK_ENV=development
networks: 配置网络
	app_netwotk:

官网地址:https://docs.docker.com/compose/compose-file/

使用样例:

version: "3"
services:
  payment:
	build: .
	container_name: factor
	ports:
	  - 8084:8084
	environment:
	  SERVER_IP: *************
	  SERVER_PORT: 8084
	  EN: test

标签:容器,compose,服务,部署,构建,ENV,镜像,docker
From: https://www.cnblogs.com/tanglianjie/p/16117514.html

相关文章

  • pm2部署node项目
    1、pm2简介pm2(processmanager)是一个进程管理工具,维护一个进程列表,可以用它来管理你的node进程,负责所有正在运行的进程,并查看node进程的状态,也支持性能监控,负载均衡等功......
  • 后端部署
    uwsgi.py中设置settings文件位置。设置uwsgi.ini启动在服务器上新建一个uwsgi.ini文件viuwsgi.ini在uwsgi.ini文件里配置以下相关配置信息#IP和端口,IP......
  • 如何将docker swarm的manager节点降级为worker节点?
    将manager降级为worker 这个问题,说来挺有意思的,我在集群里面创建了2个manager,然后,模拟将第2个manager节点,从集群中移出去,结果发现报错了: [root@nccztsjb-node-07......
  • 基于函数计算自定义运行时快速部署一个 springboot 项目 什么是函数计算?
    什么是函数计算?函数计算是事件驱动的全托管计算服务。使用函数计算,您无需采购与管理服务器等基础设施,只需编写并上传代码。函数计算为您准备好计算资源,弹性地可靠地运行任......
  • 10.业务功能实现---商品服务三级分类树形API
    1.商品服务三级分类树形API实体类,添加属性@Data@TableName("pms_category")publicclassCategoryEntityimplementsSerializable{privatestaticfinallong......
  • SpringCloud 使用 OpenFeign 声明式服务调用
    Feign组件最初由Netflix公司提供,由于不支持SpringMVC注解,所以SpringCloud对其封装并进行支持,因此产生了OpenFeign组件。Feign是一个声明式的REST客户端,它采用......
  • Spire.Cloud 私有化部署教程(三) - Windows 系统
    本教程主要介绍如何在Windows系统上实现Spire.Cloud私有化部署。详细步骤如下:一、安装依赖我们的私有部署的依赖有Nodejs、MySQL、Redis和RabbitMQ。请确认服务......
  • Windows wsl2 Alpine安装docker
    apkadd--no-cachedockeropenrclxcmusl-devopenrcmkdir-p/run/openrc/touch/run/openrc/softlevelservicedockerstartdockerps-a搞定!  参考:wsl2Alpin......
  • Dubbo 3 StateRouter:下一代微服务高效流量路由
    作者:十眠目前的微服务架构中,通常包含服务消费者、服务提供者、注册中心、服务治理四元素,其中服务消费者会向注册中心获取服务提供者的地址列表,并根据路由策略选出需要调用......
  • 什么是微服务以及它们如何工作?
    什么是微服务以及它们如何工作?微服务是您从未听说过的云计算世界中最大的一次革命。但是,为了理解它们,我们需要了解过去构建大型应用程序的方式。应用程序,尤其是二十年前......