1.开发测试程序
设置开发机器环境变量
LOCAL_IP=开发机器ip
LOCAL_IP
编写springcloud程序 添加nacos和测试代码
# application.yml
spring:
cloud:
nacos:
server-addr: 192.168.0.103:8848 # nacos的信息
discovery: # 容器化后nacos不能找到,需要配置宿主机的ip 和服务的端口,
ip: ${LOCAL_IP} # 宿主机的ip就是设置的环境变量中的key
port: ${server.port}
测试代码
# Demo11Application.java
/**
*/
@SpringBootApplication
@EnableDiscoveryClient
@RestController
@RequestMapping("/test")
public class Demo11Application {
private static final Logger logger = LoggerFactory.getLogger(Demo11Application.class);
public static void main(String[] args) {
SpringApplication.run(Demo11Application.class, args);
}
@RequestMapping(value = "/{str}", method = RequestMethod.GET)
public String test(@PathVariable("str") String str) {
logger.info("**************path={}*******************", str);
return str;
}
}
本地打包
执行 java -jar demo11-0.0.1-SNAPSHOT.jar
访问浏览器
image.png
提交到服务器上
编写
Dockerfile
设置环境变量 ENV LOCAL_IP=宿主机ip
FROM java:8
#VOLUME ["/home/java"]
# 设置环境变量 url
#ENV url /home/java/demo11
# 读取 url 中的目录,并切换工作空间到对应目录
#WORKDIR ${url}
add demo11-0.0.1-SNAPSHOT.jar demo11-0.0.1-SNAPSHOT.jar
EXPOSE 8118
ENV LOCAL_IP=192.168.0.105
ENV LANG C.UTF-8
#设置时区
RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone
ENTRYPOINT [ "java", "-jar", "demo11-0.0.1-SNAPSHOT.jar" ]
执行docker 命令
cd /home/java/demo11/
docker build -t demo-server .
docker run -d -p 8118:8118 --network my-net --restart=always --name demo-server demo-server
docker save 和docker load
docker images
docker save -o demo.tar demo-server
ls
image.png
复制文件到其他机器上启动
ls
docker load -i demo.tar
image.png
启动新的容器,-e 传递一个参数来覆盖默认值
docker run -d -p 8118:8118 --network my-net -e LOCAL_IP=192.168.0.103 --restart=always --name demo-server demo-server
image.png
网友评论