1.開發(fā)測試程序
設置開發(fā)機器環(huán)境變量
LOCAL_IP=開發(fā)機器ip
編寫springcloud程序 添加nacos和測試代碼
# application.yml
spring:
cloud:
nacos:
server-addr: 192.168.0.103:8848 # nacos的信息
discovery: # 容器化后nacos不能找到,需要配置宿主機的ip 和服務的端口碳想,
ip: ${LOCAL_IP} # 宿主機的ip就是設置的環(huán)境變量中的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;
}
}
本地打包
執(zhí)行 java -jar demo11-0.0.1-SNAPSHOT.jar
訪問瀏覽器
提交到服務器上
編寫
Dockerfile
設置環(huán)境變量 ENV LOCAL_IP=宿主機ip
FROM java:8
#VOLUME ["/home/java"]
# 設置環(huán)境變量 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
#設置時區(qū)
RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone
ENTRYPOINT [ "java", "-jar", "demo11-0.0.1-SNAPSHOT.jar" ]
執(zhí)行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
復制文件到其他機器上啟動
ls
docker load -i demo.tar
啟動新的容器醒串,-e 傳遞一個參數(shù)來覆蓋默認值
docker run -d -p 8118:8118 --network my-net -e LOCAL_IP=192.168.0.103 --restart=always --name demo-server demo-server