赞
踩
# 1、修改docker配置文件
vim /lib/systemd/system/docker.service
在ExecStart=后面加上:
-H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
修改后的配置如下:
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
# 2、刷新配置重启服务
systemctl daemon-reload
systemctl restart docker
如图:
# 开放防火墙2375端口
firewall-cmd --zone=public --add-port=2375/tcp --permanent
# 更新配置信息(这样就不需要重启防火墙了)
firewall-cmd --reload
# 查看服务器开放端口
netstat -tlun
按需引入即可
<build> <!-- install后的jar包名称 --> <finalName>${project.artifactId}</finalName> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin> <plugin> <groupId>com.spotify</groupId> <artifactId>docker-maven-plugin</artifactId> <version>1.2.2</version> <configuration> <!-- 镜像名称,相当于执行docker build -t 命令后面跟的镜像名称 --> <imageName>shr/${project.artifactId}</imageName> <!-- Dockerfile文件存放目录 --> <dockerDirectory>src/main/docker</dockerDirectory> <!-- docker远程服务器地址 --> <dockerHost>http://192.168.68.68:2375</dockerHost> <!-- 指定tag版本 --> <!--<imageTags> <imageTag>1.0</imageTag> </imageTags>--> <!-- build 时强制覆盖 tag,配合 imageTags 使用--> <!--<forceTags>true</forceTags>--> <!-- 这里是复制 jar 包到 docker 容器指定目录配置 --> <resources> <resource> <targetPath>/</targetPath> <directory>${project.build.directory}</directory> <include>${project.build.finalName}.jar</include> </resource> </resources> </configuration> <executions> <!-- 执行mvn install时,执行 build、tag 操作--> <execution> <id>build-image</id> <phase>install</phase> <goals> <goal>build</goal> </goals> </execution> <!-- tag 用于给镜像打标签--> <!--<execution> <id>tag-image</id> <phase>package</phase> <goals> <goal>tag</goal> </goals> <configuration> <image>${project.artifactId}:latest</image> <newName>${project.artifactId}:${project.version}</newName> </configuration> </execution>--> <!-- maven执行deploy时push镜像 --> <!--<execution> <id>push-image</id> <phase>deploy</phase> <goals> <goal>push</goal> </goals> <configuration> <imageName>${project.artifactId}:${project.version}</imageName> </configuration> </execution>--> </executions> </plugin> </plugins> </build>
# 拉取amazoncorretto:8作为基础镜像
FROM amazoncorretto:8
# 作者
MAINTAINER orange <orangeHaven@163.com>
# 将本地文件夹挂在到当前容器
VOLUME /tmp
# 复制文件到容器
ADD shr-middle.jar shr-middle.jar
# 时区设置
ENV TZ="Asia/Shanghai"
# 声明需要暴露的端口
EXPOSE 9000
# 配置容器启动后执行的命令
ENTRYPOINT ["sh", "-c", "java -jar $PARAMS -Djava.security.egd=file:/dev/urandom -jar shr-middle.jar $JAR_PARAMS"]
等待执行结束后,去服务器查看镜像 docker images
,可以看到已经生成好的镜像
生产环境因为不止单独一个应用,所以尽量使用自定义网络,来保证各个容器间可以通过容器名来访问,保证数据互通
docker network create orange_network
# 运行容器
docker run -d \
-p 9000:9000 \
--privileged=true \
-v /data/logs:/logs \
--restart always \
--network orange_network \
-e PARAMS='-Xms256m -Xmx512m' \
-e JAR_PARAMS='--server.port=9000' \
--name shr-middle-dev \
shr/shr-middle
参考:https://blog.csdn.net/hengheng__/article/details/126475608
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。