Linux下安裝docker,更改鏡像倉庫地址,並部署springboot應用


今天做不成的事,明天也不會做好。


各位同學大家好,隨着docker的快速發展,越來越多的人開始使用,一方面隨着容器化這個趨勢越來越火,docker成為了其中的佼佼者;二來容器化確實降低了運維的門檻,讓我們開發更容易的在服務器上面部署項目。這篇文章記錄了docker的安裝,同時也教大家如何更改dockers鏡像倉庫地址和部署springboot應用!


1.什么是docker?

1.1 核心概念

我們先不提復雜的概念,我們先講docker的三個核心概念,這有助於我們更好的理解docker和他的生命周期:

  • 鏡像(image)
  • 容器(container)
  • 倉庫(repository)

以下是他們的簡單說明:

鏡像Image

image文件是容器的模板
Docker根據image文件生成容器的實例
同一個image文件可以生成多個同時運行的容器實例
Docker把應用程序及其依賴打包在image文件里面

容器Container

Docker 利用容器來運行應用。
容器是從鏡像創建的運行實例。它可以被啟動、開始、停止、刪除。每個容器都是相互隔離的、保證安全的平台。
可以把容器看做是一個簡易版的 Linux 環境(包括root用戶權限、進程空間、用戶空間和網絡空間等)和運行在其中的應用程序。
*注:鏡像是只讀的,容器在啟動的時候創建一層可寫層作為最上層。

倉庫Repository

倉庫是集中存放鏡像文件的場所。

我們可以拿docker和虛擬機類比,虛擬機要安裝操作系統才可以下載各類軟件,而docker則不需要操作系統,節省了我們很多的內存和大小。同時操作系統也可以作為一個鏡像在docker運行。

2.Docker 安裝

Mac、Windows安裝Docker
Mac、Windows安裝很簡單,到官網下載最新的Docker安裝包,Mac電腦直接拖拽到Application中即可。Windows直接雙擊,一直點擊下一步即可。

2.1 Linux下的安裝步驟

1.檢查是否安裝

docker -v
   
   
  
  
          
  
  
 
 
         
  • 1

提示找不到命令即未安裝,如有殘留使用命令:

sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-selinux \
                  docker-engine-selinux \
                  docker-engine
   
   
  
  
          
  
  
 
 
         
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

2.使用yum安裝

#安裝
yum -y install docker-io
#運行docker服務
service docker start 或 systemctl start docker
#再運行查看版本
docker -v
   
   
  
  
          
  
  
 
 
         
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

這里寫圖片描述

3.運行容器

按照國際慣例,程序員的第一步都要用hello world來表示,docker也不例外。
docker里用docker run命令來把一個鏡像啟動成容器。

#運行容器
docker run hello-world
   
   
  
  
          
  
  
 
 
         
  • 1
  • 2

這里寫圖片描述

可以看到第一個紅框的提示說本地沒有hello-world鏡像,嘗試去倉庫拉取。第二個紅框是運行的內容。
拉取的命令是 docker pull
所以剛其實運行了兩句命令:

docker pull hello-world
docker run hello-world
   
   
  
  
          
  
  
 
 
         
  • 1
  • 2

因此我們本地就下載了hello-world鏡像,同時也啟動了hello-world容器,我們可以用命令查看:

#查看運行中的容器
docker ps
#查看所有容器
docker ps -a
#查看鏡像
docker images
   
   
  
  
          
  
  
 
 
         
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

這里寫圖片描述
這里寫圖片描述

#停止運行容器:docker stop containerId
docker stop b173c56ba6be
#刪除容器
docker rm b173c56ba6be
#刪除鏡像:docker rmi imageId
docker rmi 4ab4c602aa5e
   
   
  
  
          
  
  
 
 
         
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

這里寫圖片描述

3.docker修改鏡像倉庫地址

上面講了docker基礎,docker倉庫提供了許許多多有用的鏡像,我們可以用命令來查詢

docker search mysql
   
   
  
  
          
  
  
 
 
         
  • 1

查詢到需要的鏡像並拉取時,我們會發現:有的鏡像很大,速度很慢。怎么辦呢?我們回想一下,這像不像maven中央倉庫,我們從maven倉庫下載jar包也很慢,因為節點在國外。這個時候我們可以自己搭建私服,也可以用一些”好事者”提供的地址,例如阿里的鏡像倉庫地址來加速。

3.1 獲取倉庫地址

首先我們要有阿里雲的賬號,然后登陸鏡像管理頁:容器鏡像服務

這里寫圖片描述

3.2 修改配置文件

#編輯文件
vim /etc/docker/daemon.json
   
   
  
  
          
  
  
 
 
         
  • 1
  • 2

添加如下內容:

{
  "registry-mirrors": ["加速地址"] }
   
   
  
  
          
  
  
 
 
         
  • 1
  • 2
  • 3

這里寫圖片描述

#使生效
sudo systemctl daemon-reload
#重啟docker服務
sudo systemctl restart docker
   
   
  
  
          
  
  
 
 
         
  • 1
  • 2
  • 3
  • 4

4.通過docker運行springboot項目

4.1 步驟簡介

使用 Dockerfile 創建自定義的鏡像。
具體的原理暫時不多說,簡單點就是在jar文件目錄下創建Dockerfile文件,運行docker build命令生成依賴於jdk環境的鏡像,鏡像運行時自動部署jar包。廢話不多說,實際操作!

4.2 部署springboot項目

4.2.1.上傳jar文件

通過maven/gradle工具把項目打成jar文件,並上傳到服務器。

4.2.2.創建Dockerfile文件

首先進入jar所在的目錄:,然后創建Dockerfile

#創建Dockerfile文件
vim Dockerfile
   
   
  
  
          
  
  
 
 
         
  • 1
  • 2

輸入如下內容

FROM java:8
VOLUME /tmp
ADD 你jar包的名字 app.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
EXPOSE 你的項目部署端口

   
   
  
  
          
  
  
 
 
         
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

這里寫圖片描述
這里寫圖片描述

在這個自定義鏡像文件里,我們依賴了jdk的鏡像;具體的Dockerfile命令語句大家可以自己去學習。

4.2.3 創建鏡像

語法:docker build -t 生成鏡像名 .

docker build -t spring/test .
   
   
  
  
          
  
  
 
 
         
  • 1

記住,最后的”.”不要忘記加上,表示當前目錄。
創建完畢,docker images 查看
這里寫圖片描述

4.2.4 運行鏡像

docker run -d -p 8080:8080 --name spring-test spring/test
   
   
  
  
          
  
  
 
 
         
  • 1
參數說明:

-d 后台啟動
-p 8080:8080 把鏡像啟動的端口(右)映射到linux機的端口(左)
–name spring-test 給你的容器命名
spring/test 你的鏡像名

#查看運行中的容器
docker ps
   
   
  
  
          
  
  
 
 
         
  • 1
  • 2

這里寫圖片描述

#查看對應容器的啟動日志:docker logs containerId
docker logs 792265ab2a38
   
   
  
  
          
  
  
 
 
         
  • 1
  • 2

這里寫圖片描述
出現以上日志表示啟動成功。(運行需要時間,可以多看幾次)

4.2.5 訪問網頁

接下來只需要在地址欄輸入:服務器IP:端口號
進行項目的訪問就好。
這里寫圖片描述

5.后記

docker的功能很強大,很多特性和功能這里都沒說到;例如鏡像的導入導出,私倉的配置,docker-compose的使用。大家可以自己去總結一下docker的命令和功能用法。在往后可以對kubernetes進階學習。kubernetes+docker可以給我們的項目部署帶來極大的方便。

原文地址:https://blog.csdn.net/qq_35992900/article/details/81110140


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM