眾所周知,docker可以將應用自動部署到容器,這就看看一個例子,我們自己的應用怎么部署到容器中,基于上次docker入門,docker已經安裝完成,我寫了一個很簡單的spring boot的Demo,代碼如下:代碼在 https://github.com/11078334334/docker.git
package com.songlj;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@SpringBootApplication
@RestController
public class DockerApplication {
@RequestMapping("/")
public String home() {
return "Hello Docker!!看到這句話沒有?";
}
public static void main(String[] args) {
SpringApplication.run(DockerApplication.class, args);
}
}
①,打包
②,上傳
將jar包放到服務器上,并且將Dockerfile文件和jar放到一級,Dockerfile內容
FROM java:8
MAINTAINER songlj
ADD docker-0.0.1-SNAPSHOT.jar app.jar
EXPOSE 8088
ENTRYPOINT ["java","-jar","/app.jar"]
解釋:1,基礎鏡像java 版本是8
2,作者songlj
3,重命名位app.jar
4,監聽8088
5,啟動運行 java -jar app.jar
結構如下圖
③,編譯鏡像
docker build -t songlj/docker .
其中songlj/docker為鏡像名,注意最后的.是指明Dockerfile就在當前路徑下
成功如圖
通過docker images查看一下鏡像
[root@my10 dockertest]# docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
songlj/docker latest d285e92231ae 2 minutes ago 656.2 MB
④,運行
[root@my10 dockertest]# docker run -d --name docker -p 8088:8088 songlj/docker
705401d3ae29cdd7ad1cc9f82621399b8af66bc7d6eb867fe428c32eb3896113
常用命令:
刪除容器id
docker rm 容器id
刪除鏡像 鏡像id
docker rmi image-id
查看容器日志
docker logs container-name /container-id
導入導出容器
docker export CONTAINER(容器) > 地址文件名
[root@my10 songlj]# docker save d11c3799fa6a > /home/songlj/java8.tar
docker import - 地址文件名
docker import - /home/songlj/java8.tar
保存/加載
docker save IMAGE(鏡像) > 地址文件名
docker save 9610cfc68e8d > /home/songlj/java8.tar
docker load < 地址文件名
docker load < /home/songlj/java8.tar
停止容器
$ docker ps // 查看所有正在運行容器
$ docker stop containerId // containerId 是容器的ID
$ docker ps -a // 查看所有容器
$ docker ps -a -q // 查看所有容器ID
$ docker stop $(docker ps -a -q) // stop停止所有容器
$ docker rm $(docker ps -a -q) // remove刪除所有容器