編譯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工程
開啟https://start.spring.io/,下載一個最基礎帶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
@SpringBootApplication
public 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-jdk
ENV AB_OFF true
EXPOSE 8001
COPY 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