主要是看一下如何在linux及mac上安裝docker,創建docker鏡像,部署SpringBoot項目到docker,并借助于DaoCloud進行docker鏡像下載加速等。 我用的電腦是mac,本身并不支持docker,需要安裝Docker ToolBox才能使用Docker。由于大部分情況下線上服務器都是linux,所以這里先以linux下Docker的使用為例,后面再講在mac上部署Docker。我購買了一個阿里云的云服務器CentOS7.2,以此為例,如果在購買時就在阿里云鏡像市場選擇了帶Docker的系統版本,就可以不用看安裝Docker的步驟了。 Linux使用Docker1 下載安裝Docker首先通過SSH連接云服務器,使用yum install docker即可,安裝完成后啟動service docker start,可以將docker加入開機啟動chkconfig docker on。然后就可以使用docker了,首先試試docker version吧。 (推薦)如果下載docker很慢,我們可以使用DaoCloud提供的鏡像站點加速。http://get./ 安裝docker: curl -sSL https://get./docker | sh
如果是正常聯網的云服務器或PC,執行完上面命令后就會開始下載安裝了,過一段時間后成功會顯示如下界面 使用下面的方式,它會自動配置一些信息,比手工下載docker并配置來的更方便。
2 配置docker加速器由于很多鏡像在國內下載起來很慢,DaoCloud提供了鏡像加速器來進行加速  配置 Docker 加速器curl -sSL https://get./daotools/set_mirror.sh | sh -s http://cc4f263c.m. Copy該腳本可以將 --registry-mirror 加入到你的 Docker 配置文件 /etc/default/docker 中。適用于 Ubuntu14.04、Debian、CentOS6 、CentOS7、Fedora、Arch Linux、openSUSE Leap 42.1,其他版本可能有細微不同。
我們將上面的命令粘貼到云服務器命令行,執行后重啟docker即可。
3 下載個鏡像試試docker官方有很多鏡像,譬如Ubuntu、mysql、Tomcat之類的,國內也有很多鏡像市場提供了各種各樣的鏡像。譬如DaoCloud鏡像市場,網易蜂巢等,國內的鏡像市場下載速度相對快一些。 我們下載個鏡像來試試。
通過docker images可以看到已經下載完了Tomcat鏡像,下面啟動它。 - docker run -d -p 8080:8080 tomcat
基礎命令網上多的是,就不解釋了。 然后用ip:8080訪問Tomcat看看效果,如果訪問不到請先看看服務器的安全組策略,是否開放了相應端口。因為默認只開啟了22端口,別的端口可能需要手工開啟。  
4 Springboot部署到docker及運行DaoCloud也有個例子可供參考:http://guide./dcs/docker-java-spring-boot-9153934.html 由于我們要演示SpringBoot部署到docker,所以我們需要一個包含了maven和java的鏡像,當然也可以選擇直接安裝一個Ubuntu之類的系統再安裝java。 這樣的鏡像有很多,官方的有maven:3-jdk-8 maven:3.3.3 這些都是帶著maven和Java的,已經可以用來跑Springboot項目了。不過我后來找到了一個速度更快的,而且maven依賴的是阿里云maven的,眾所周知,官方maven速度極慢,一般用阿里云的maven。
- docker pull hub.c.163.com/wuxukun/maven-aliyun:3-jdk-8
這個是maven+java8的鏡像,而且來自網易蜂巢,速度快。改自maven官方鏡像,里面的maven更改為了阿里云的,下載maven更快。 平時大家需要什么鏡像時,最好先到國內的這些鏡像市場看看,常用的基本都有人配好了,下載快很多。
下載完上面的鏡像后,我們就來構建一個Springboot項目,添加Dockerfile文件到根目錄。我直接在本地創建項目,添加一個簡單的Controller。
- @RestController
- public class DockerDemoSpringBootApplication {
-
- public static void main(String[] args) {
- SpringApplication.run(DockerDemoSpringBootApplication.class, args);
- }
-
- @RequestMapping("")
- public String hello(){
- return "Hello! Docker!";
- }
- }
-
Dockerfile: - FROM hub.c.163.com/wuxukun/maven-aliyun:3-jdk-8
-
- ADD pom.xml /tmp/build/
-
- ADD src /tmp/build/src
- #構建應用
- RUN cd /tmp/build && mvn clean package \
- #拷貝編譯結果到指定目錄
- && mv target/*.jar /app.jar \
- #清理編譯痕跡
- && cd / && rm -rf /tmp/build
-
- VOLUME /tmp
- EXPOSE 8080
- ENTRYPOINT ["java","-jar","/app.jar"]
然后通過ftp工具上傳到云服務器,我使用的filezilla,主機填寫服務器ip,用戶名root,密碼是服務器密碼,連接后即可傳文件給云服務器了
我們把本地創建好的項目上傳上去。然后在服務器命令行,進入項目根目錄,并執行docker build命令,docker就會根據Dockerfile里你定義好的命令進行構建新的鏡像。 -t代表要構建的鏡像的tag,.代表當前目錄,也就是Dockerfile所在的目錄。 然后就可以看到在下載各種依賴的maven、各種jar,構建完畢后,啟動項目。
我們可以看到構建完畢的鏡像testdocker,啟動它,使用8088端口映射程序里默認的8080。 在外部瀏覽器訪問: 這樣我們就成功部署了一個Springboot項目了。如果要說,怎么連接數據庫,redis之類的,我建議使用云端服務,云redis、云數據庫,不建議在docker內安裝這些,因為用了docker,多數情況下會啟動多個實例,如果每個實例都有自己的數據庫、redis,那么數據就無法同步了。
至于如何在mac上和Windows尚搭建本地的docker環境,可以去DaoCloud下載相應的包,http://get./,安裝完后,就有了docker環境了,后續的操作就和上面一樣了。 后面我們學習使用Rancher來管理部署docker,就不用手工在命令行去敲命令管理docker了。
|