编译docker镜像
1.加速docker镜像下载速度
取决于网络速度,如果不慢的话,可以先不装
https://www.daocloud.io/mirror#accelerator-doc执行下面的命令配置加速器curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://4f7a7e6e.m.daocloud.io
[注]
使用了加速器这个脚本以后,发现第二天重启电脑后,docker引擎无法启动。unable to configure the Docker daemon with file /etc/docker/daemon.json: invalid character '}'我们可以看到多了一个,号cat /etc/docker/daemon.json{"registry-mirrors": ["http://4f7a7e6e.m.daocloud.io"],}打开文件,去掉那个多余的,号即可{"registry-mirrors": ["http://4f7a7e6e.m.daocloud.io"]}重新启动docker引擎systemctl start docker
2.下载springboot基础web工程
打开 加入helloworld
import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.ResponseBody;@Controller@SpringBootApplicationpublic class HelloApplication { @RequestMapping("/") @ResponseBody String home() { return "Hello World!"; } public static void main(String[] args) { SpringApplication.run(HelloApplication.class, args); }}
配置application.yml
server: port: 8001
maven编译打包,重命名为hello.jar
3. 编写Dockerfile
FROM docker.io/fabric8/java-alpine-openjdk8-jdkENV AB_OFF trueEXPOSE 8001COPY hello.jar /opt/CMD java -jar /opt/hello.jar
FROM表示基础镜像是哪一个,我们这里使用fabric8提供的java基础镜像EVN AB_OFF 是这个镜像中提供的环境变量,可以在docker hub里面查看含义EXPOSE 8001 表示开放8001这个端口COPY命令表示拷贝hello.jar这个文件到/opt/目录下CMD表示启动以后执行这条命令,一般一个docker就放一个应用,然后可以把这些应用通过link命令连接起来。所以这里一般就是执行启动我们应用的那条命令。
4. 编译Dockerfile
docker build -t "camus/java" .
运行编译好的镜像
docker run -d -p8001:8001 camus/java