項(xiàng)目背景:springboot + dubbo項(xiàng)目
Linux: CentOS 和 Ubuntu通用(已測(cè)試)
1、配置項(xiàng)目需要的基礎(chǔ)鏡像:jdk、zookeeper、redis
docker pull openjdk:8-jre
docker pull zookeeper
docker pull redis
2、編寫(xiě)Dockerfile文件,注意copy后的路徑問(wèn)題
FROM openjdk:8-jre #運(yùn)行環(huán)境
MAINTAINER xxx xxx@imooc.com #包名 com.imooc.xxx.xxx
COPY user-service.jar /user-service.jar # user-service.jar #springboot項(xiàng)目打包好的jar包名
ENTRYPOINT ["java","-jar","/user-service.jar"]
注意copy的路徑是jar相對(duì)Dockerfile的;路徑,保證Dockerfile能通過(guò)該路徑找到j(luò)ar,我這里是放在同一目錄下,所以直接寫(xiě)jar名
完成將jar和Dockerfile傳輸?shù)絃inux里(dubbo項(xiàng)目注意先修改提供者和消費(fèi)者的ip路徑)
3、在Dockerfile所在的目錄下執(zhí)行build命令
docker build -t user-service:lastest .
(.表示用當(dāng)前路徑下的Dockerfile,前面必須有一個(gè)空格)
Build成功后可以通過(guò) docker images查看已有鏡像及其id
4、Run
冒號(hào)前面是REPOSITORY,冒號(hào)后面可以是TAG,也可以是IMAGE ID
docker run -p 6379:6379 redis:latest
Docker run -p 2181:2181 zookeeper:latest
docker run -p 7911:7911 user-service:latest
docker run -p 8082:8082 user-client:latest
-p表示指定運(yùn)行端口,第一個(gè)端口表示對(duì)外暴露的端口,第二個(gè)端口表示當(dāng)前虛機(jī)運(yùn)行的端口,外部訪問(wèn)時(shí)訪問(wèn)第一個(gè)端口
其他常用的docker命令:
常看正在運(yùn)行的容器:docker ps
停止運(yùn)行容器:docker stop + CONTAINER ID
刪除鏡像:docker rmi + IMAGE ID
刪除鏡像時(shí)如遇到該鏡像正被已停止運(yùn)行的容器使用,則使用docker rm + CONTAINER ID
先刪除容器(鏡像在容器中運(yùn)行時(shí)需要先停止運(yùn)行)