1、构建服务jar包
eureka-server-0.0.1-SNAPSHOT.jar
2、编写Dockerfile
- FROM openjdk:8
MAINTAINER hoscen@qq.com
LABEL app="eureka-server" version="0.0.1" by="Hoscen"
COPY eureka-server-*.jar app.jar
EXPOSE 8501 8502 8503
CMD java -jar app.jar --spring.profiles.active=${spring_profiles_active}
3、上传jar和Dockerfile到服务器
4、构建docker镜像
docker环境安装可以看我上一篇文章《Linux Centos7上安装Docker》
1)构建镜像
docker build -t hscms.demo/eureka-server:20210422 .
注意最后有个点,默认使用 “上下文目录(Context)下的名为Dockerfile 的文件作为 Dockerfile”,在此,即用当前路径的 Dockerfile 进行构建
2)查看镜像
docker images
5、启动docker镜像服务集群
- docker run -e "spring_profiles_active=eureka1" --name eureka-server1 --network host -d hscms.demo/eureka-server:20210422
- docker run -e "spring_profiles_active=eureka2" --name eureka-server2 --network host -d hscms.demo/eureka-server:20210422
- docker run -e "spring_profiles_active=eureka3" --name eureka-server3 --network host -d hscms.demo/eureka-server:20210422
--network host指直接用主机host网络,不用映射端口。容器里的应用启动后直接占用主机的端口。
或者指定端口号的方式,如下
docker run --name=eureka-client1 -p 8601:8601 -d hscms.demo/eureka-client:20210422
查看启动的docker容器
docker ps
容器为Up状态代表启动。
6、查看服务日志
- docker logs eureka-server1
- docker logs eureka-server2
- docker logs eureka-server3
7、访问应用服务
http://127.0.0.1:8501/(ip换成自己能访问的服务器)
http://127.0.0.1:8502/
http://127.0.0.1:8503/
部署我们的eureka服务集群时,需要在服务器上hosts文件里添加映射。否则启动会失败。
8、其他docker命令
1)停止容器
docker stop 容器ID或容器名
docker kill 容器ID或容器名
2)重启容器
docker restart 容器ID或容器名
3)查看当前运行的所有容器
docker ps -a
4)停止所有容器(container),这样才能够删除其中的images:
docker stop $(docker ps -a -q)
5)如果想要删除所有容器(container)的话再加一个指令:
docker rm $(docker ps -a -q)
6)删除镜像(images),通过镜像(images)的id来指定删除谁
docker rmi image-id
7)想要删除镜像(images)id为的image的话可以用
docker rmi $(docker images | grep "^
8)要删除全部镜像(images)的话
docker rmi $(docker images -q)