Ubuntu下部署springboot項目

Ubuntu下安裝docker

安裝

安裝命令:html

sudo apt-get update
sudo apt-get install docker.io

(若是安裝失敗,也可參考以下網站進行安裝:連接java

啓動

啓動命令:nginx

sudo service docker start

測試

測試運行hello-world:web

sudo docker run hello-world

運行效果:spring

運行效果圖

設置docker鏡像加速

添加鏡像加速地址

編輯daemon.json文件:docker

sudo vim/etc/docker/daemon.json

添加阿里雲加速鏡像地址內容:json

{
"registry-mirrors": ["https://alzgoonw.mirror.aliyuncs.com"]
}

重啓服務

sudo systemctl daemon-reload
sudo systemctl restart docker
sudo systemctl status docker

下載基礎鏡像

搜索鏡像

進入阿里雲的鏡像倉庫搜索本身想要的鏡像,連接vim

阿里雲鏡像倉庫

找到想要的java基礎鏡像:bash

java基礎鏡像

右邊有相應的版本,下載本身想要的版本(注:這裏的java所有是openjdk,不是oracle jdk)。服務器

下載鏡像

語法:

docker pull [OPTIONS] NAME[:TAG|[@DIGEST](https://my.oschina.net/u/3392911)]

說明:

OPTIONS:參數,例如 ‘-a’,下載全部版本的鏡像。
NAME:鏡像名稱,例如 ‘java’。
TAG:爲版本,例如 ‘java:8u111’,java的8u111版本。

實例:

sudo docker pull java:8u111

(注:若是不指定相應的版本,docker則會自動下載最新的版本。)

查看本地鏡像

運行命令:

sudo docker images

編寫Dockerfile

FROM java #基礎的鏡像
ADD application.yml application.yml #添加配置文件
ADD FaceWeb-1.0.2-SNAPSHOT.jar app.jar #添加項目的jar包,並重命名
EXPOSE 80 #聲明端口
VOLUME /tmp #定義匿名卷
#程序的入口點
ENTRYPOINT ["java", "-Djava.security.egd=file:/dev/./urandom", "-jar","/app.jar", "--Dspring.config.location=application.yml"]
# Ubuntu 時區
RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

(詳情請參考:連接

修改項目配置application.yml

略。

編譯鏡像

上傳文件

在服務器上創建一個文件夾,用於存放docker文件,將文件經過工具所有發送到服務器上。

編譯

語法:

docker build [OPTIONS] PATH | URL | -

OPTIONS說明:

-f :指定要使用的Dockerfile路徑;
-m :設置內存最大值;
--tag, -t:鏡像的名字及標籤,一般 name:tag 或者 name格式;能夠在一次構建中爲一個鏡像設置多個標籤。

實例:

sudo docker build -t faceweb .

(注:詳細語法,請查看:連接

編譯完成後運行查看鏡像,就能夠看到剛剛編譯好的鏡像了。

啓動容器

運行命令

語法:

sudo docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

OPTIONS說明:

-d:後臺運行容器,並返回容器ID;
-p: 端口映射,格式爲:主機(宿主)端口:容器端口;
--name:"nginx-lb":爲容器指定一個名稱;
-e username="ritchie":設置環境變量;
-P:隨機端口映射。

(注:詳細語法,請查看:連接

實例:

sudo docker run –name faceweb -d -p 80:80 faceweb
  1. 查看運行的容器

語法:

sudo docker ps [OPTIONS]

OPTIONS說明:

-a :顯示全部的容器,包括未運行的;
-l :顯示最近建立的容器。

(注:詳細語法,請查看:連接

實例:

sudo docker ps -a

能夠清楚的看到端口的映射狀況和容器的一些詳細信息。

到目前爲止,docker容器的下載,編譯和部署已經完成,下面是容器的一些經常使用操做介紹。

容器經常使用操做命令

查看運行的容器

查看容器,複製容器的CONTAINER ID。

中止容器

sudo docker stop CONTAINER

啓動容器

sudo docker start CONTAINER

重啓容器

sudo docker restart CONTAINER

刪除容器

sudo docker rm CONTAINER

(注:刪除容器前須要先中止這個容器,刪除是不可逆的,謹慎操做。)

查看容器的日誌

sudo docker logs [OPTIONS] CONTAINER

OPTIONS說明:

-f : 跟蹤日誌輸出;
-t : 顯示時間戳;
--since :顯示某個開始時間的全部日誌;
--tail :僅列出最新N條容器日誌。

實例:

sudo docker logs -f cd4c9b023c46

進入容器

語法:

sudo docker exec [OPTIONS] CONTAINER COMMAND [ARG...]

OPTIONS說明:

-i :即便沒有附加也保持STDIN 打開;
-t :分配一個僞終端。

實例:

sudo docker exec -it faceweb /bin/bash

鏡像的經常使用操做

刪除鏡像

語法

sudo docker rmi [OPTIONS] IMAGE [IMAGE...]

OPTIONS說明:

-f :強制刪除;
--no-prune :不移除該鏡像的過程鏡像,默認移除。

實例:

sudo docker rmi faceweb

(注:全部的刪除是不可逆的,請請謹慎操做。)

全部的docker命令請參考:連接