1 部署環(huán)境檢查
1 是否安裝docker
2 是否安裝docker-compose
3 docker默認鏡像存放地址在/var/lib/docker 目錄下,查看此目錄下是否有足夠的空間
df -h 目錄名 查看所在目錄 掛載目錄及使用情況
4 查看機器,生成數(shù)據(jù)的存儲空間
dh -h
5 檢查是否系統(tǒng)是否為x86系統(tǒng)內核,( 部署包內的 java8鏡像,smb軟件 只支持x86系統(tǒng))
uname -a
2 相關知識點
2.1 docker默認鏡像存放地址
在Linux系統(tǒng)上,Docker默認將鏡像存儲在/var/lib/docker
目錄下。這個目錄包含了Docker的運行時數(shù)據(jù),包括鏡像、容器、卷等。
在/var/lib/docker
目錄下,鏡像的具體存放位置如下:
- 鏡像層(Image Layers):
/var/lib/docker/image/overlay2
目錄下存放了鏡像的各個層。 - 鏡像元數(shù)據(jù)(Image Metadata):
/var/lib/docker/image/overlay2/repositories.json
文件包含了鏡像的元數(shù)據(jù)信息,如鏡像的名稱、標簽等。
請注意,/var/lib/docker
目錄下的文件和目錄屬于Docker的運行時數(shù)據(jù),對其進行修改或刪除可能會導致Docker的不穩(wěn)定或數(shù)據(jù)丟失。如果你需要備份或遷移Docker的鏡像數(shù)據(jù),建議使用Docker提供的相關命令或工具來操作。
此外,值得一提的是,Docker的存儲驅動可以根據(jù)不同的配置進行更改,因此實際的鏡像存放位置可能會因配置而異。但對于大多數(shù)默認安裝的Docker環(huán)境來說,/var/lib/docker
是默認的鏡像存放地址。
2.2 docker 的鏡像都是tar 包?
是的,Docker的鏡像實際上是以tar包的形式存儲的。每個Docker鏡像都由多個層(layers)組成,這些層以文件系統(tǒng)的形式存儲在Docker宿主機上。
每個鏡像層都是一個只讀的文件系統(tǒng),它包含了文件和目錄的快照。當你使用Docker構建鏡像時,每一條指令都會創(chuàng)建一個新的鏡像層。這種分層的結構使得鏡像的構建和共享變得高效,因為多個鏡像可以共享相同的層。
當你從Docker Hub或其他鏡像倉庫拉取鏡像時,實際上是將這些鏡像層以tar包的形式下載到本地。這些tar包會被Docker存儲在宿主機的文件系統(tǒng)中,供后續(xù)的容器創(chuàng)建和運行使用。
你可以使用docker save
命令將鏡像保存為tar包,使用docker load
命令將tar包加載為鏡像。這些命令可以讓你在不同的Docker環(huán)境之間備份、遷移和共享鏡像。
總結起來,Docker鏡像實際上是由多個層組成的,以tar包的形式存儲在宿主機上。這種分層結構和使用tar包的方式使得Docker鏡像的構建、共享和管理變得更加靈活和高效。
2.3 Docker-compose 是直接使用鏡像創(chuàng)建容器?
是的,Docker Compose是一個用于定義和運行多容器Docker應用程序的工具。使用Docker Compose,你可以使用一個單獨的YAML文件來定義多個容器、它們之間的關聯(lián)關系以及其他配置選項。然后,通過運行docker-compose up
命令,Docker Compose將根據(jù)定義的配置創(chuàng)建并啟動所有的容器。
在Docker Compose配置文件中,你可以指定要使用的鏡像名稱、容器的名稱、端口映射、環(huán)境變量、卷掛載等等。當你運行docker-compose up
命令時,Docker Compose會自動下載所需的鏡像(如果本地不存在)并創(chuàng)建相應的容器。
下面是一個簡單的Docker Compose配置文件示例,用于創(chuàng)建一個包含PostgreSQL和Redis兩個容器的應用程序:
version: '3'
services:
db:
image: postgres
environment:
POSTGRES_PASSWORD: mysecretpassword
redis:
image: redis
在這個示例中,我們定義了兩個服務(即容器):db
和redis
。db
服務使用了postgres
鏡像,并設置了PostgreSQL的密碼為mysecretpassword
。redis
服務使用了redis
鏡像。
要運行這個配置文件,你可以在包含該文件的目錄中打開終端或命令提示符,并運行以下命令:
docker-compose up
Docker Compose將會根據(jù)配置文件創(chuàng)建并啟動db
和redis
兩個容器。你可以通過docker-compose ps
命令來查看容器的狀態(tài)。
總結來說,Docker Compose是通過配置文件來創(chuàng)建和管理多個容器的工具,它簡化了多容器應用程序的部署和管理過程。
2.4 Docker Compose down 就是將容器刪除?
是的,docker-compose down
命令用于停止并刪除由Docker Compose啟動的容器。當你運行docker-compose down
命令時,Docker Compose將會停止并刪除在配置文件中定義的所有服務(容器),同時還會刪除相關的網(wǎng)絡和卷(如果有定義)。這個命令可以用來清理整個應用程序的運行環(huán)境。
需要注意的是,docker-compose down
命令會刪除容器及其相關資源,包括數(shù)據(jù)卷中的數(shù)據(jù)。如果你希望保留數(shù)據(jù),可以使用docker-compose stop
命令來停止容器,而不是使用docker-compose down
命令。
確保在運行docker-compose down
命令之前,你已經(jīng)進入到包含docker-compose.yml
文件的目錄,并且已經(jīng)安裝并正確配置了Docker Compose。
2.5 刪除,會刪除掛載嘛
是的,當你使用docker-compose down
命令刪除容器時,它會刪除與容器相關聯(lián)的掛載卷(如果有定義)。掛載卷是將容器內的路徑與宿主機上的路徑進行關聯(lián),以便在容器重啟或刪除后保留數(shù)據(jù)。
如果你希望保留掛載卷中的數(shù)據(jù),可以使用docker-compose down -v
命令。這個命令會在刪除容器的同時,也刪除掛載卷。如果你想要保留掛載卷中的數(shù)據(jù),可以備份或遷移掛載卷的數(shù)據(jù)到其他位置,然后再運行docker-compose down -v
命令來刪除容器和掛載卷。
需要注意的是,刪除掛載卷會永久刪除其中的數(shù)據(jù),因此在執(zhí)行刪除操作之前,請確保備份了重要的數(shù)據(jù)。
yml 里面寫了 volumes:
- /home/docker/nginx/data:/web/ 之后down 之后,宿主機里面的數(shù)據(jù)會刪除嘛
如果你在docker-compose.yml
文件中使用了以下的掛載卷定義:
volumes:
- /home/docker/nginx/data:/web/
然后執(zhí)行docker-compose down
命令來刪除容器,那么默認情況下,這個掛載卷/home/docker/nginx/data
上的數(shù)據(jù)將會被保留在宿主機上。
docker-compose down
命令默認會刪除容器實例,但不會刪除掛載卷。只有在使用docker-compose down -v
命令時,才會刪除與容器關聯(lián)的掛載卷。
因此,如果你只執(zhí)行了docker-compose down
命令,宿主機上的數(shù)據(jù)將會保留在/home/docker/nginx/data
目錄中。如果你想要刪除掛載卷以及宿主機上的數(shù)據(jù),可以使用docker-compose down -v
命令。在執(zhí)行刪除操作之前,請確保備份了重要的數(shù)據(jù)。
2.6 DockerFile 和 docker compose 區(qū)別
Dockerfile 和 Docker Compose 是 Docker 中兩個不同的概念和工具,它們用于不同的目的。
Dockerfile 是一個文本文件,用于定義和構建 Docker 鏡像。它包含了一系列的指令,用于描述如何構建一個 Docker 鏡像的步驟,包括基礎鏡像選擇、安裝軟件包、復制文件、設置環(huán)境變量等。通過 Dockerfile,你可以自定義和管理你的鏡像構建過程,以滿足你的應用程序的需求。
Docker Compose 是一個工具,用于定義和管理多個 Docker 容器的應用程序。它使用一個 YAML 文件(通常稱為 docker-compose.yml)來描述應用程序的不同服務、網(wǎng)絡設置、卷掛載等配置。通過 Docker Compose,你可以定義一個多容器的應用程序,并使用一個命令來啟動、停止、重啟整個應用程序。它簡化了多容器應用程序的部署和管理。
總結一下:
- Dockerfile 用于構建 Docker 鏡像,描述了如何構建一個鏡像的步驟。
- Docker Compose 用于定義和管理多個 Docker 容器的應用程序,描述了應用程序的不同服務和配置。
在實際使用中,你可以使用 Dockerfile 構建一個鏡像,然后使用 Docker Compose 來定義和管理多個使用這個鏡像的容器。這樣可以方便地管理容器之間的關系、網(wǎng)絡設置等,并實現(xiàn)整個應用程序的部署和管理。
3 部署nginx
將nginx 的 tar 包上傳到服務器
輸入docker images,發(fā)現(xiàn)目前是沒有鏡像的,現(xiàn)在將tar 包變成鏡像
docker load -i nginx.tar
以上就將tar 包變成鏡像了
因為需要容器里面目錄和宿主機目錄要一一掛載,容器卷,所以我們在宿主機上面創(chuàng)建要和容器一一對應的目錄
以上是ngixn 的目錄,以后修改這個宿主機目錄下的東西,nginx 容器里面就會修改。
這個conf 目錄文件夾下,有一個nginx 配置
這個就是ngixn 的配置文件,以后我們就是修改這個配置文件
因為我們要使用 Docker-compose 去管理容器,所以要使用Docker-compose 的東西;
我們需要找一個位置,專門放各個yml 文件
現(xiàn)在有一個關于nginx 的yml 編排文件,就是使用他去管理
里面內容是:
version: "2"
services:
nginx:
image: nginx
hostname: nginx
container_name: nginx
ports:
- "18080:8080"
- "18082:8081"
- "18088:8087"
volumes:
- /home/docker/nginx/data:/web/
- /home/docker/nginx/html:/usr/share/nginx/html
- /home/docker/nginx/conf/nginx.conf:/etc/nginx/nginx.conf
- /home/docker/nginx/logs:/var/log/nginx
- /home/metefont/hongt-data-center/hkdata:/HKONG/hkdata
- /home/metefont/mapdata:/home/metefont/mapdata
environment:
- TZ=Asia/Shanghai
這個文件是一個Docker Compose的配置文件,用于創(chuàng)建和管理一個Nginx容器。
讓我逐行解釋每一行代碼的意思:
version: "2"
這是Docker Compose配置文件的版本號。在這個示例中,使用的是版本號為2的配置文件格式。
version: "2"
services:
nginx:
image: nginx
hostname: nginx
container_name: nginx
ports:
- "18080:8080"
- "18082:8081"
- "18088:8087"
volumes:
- /home/softinstall/docker/nginx/data:/web/
- /home/softinstall/docker/nginx/html:/usr/share/nginx/html
- /home/softinstall/docker/nginx/conf/nginx.conf:/etc/nginx/nginx.conf
- /home/softinstall/docker/nginx/logs:/var/log/nginx
- /home/metefont/hongt-data-center/hkdata:/HKONG/hkdata
- /home/metefont/mapdata:/home/metefont/mapdata
environment:
- TZ=Asia/Shanghai
這部分定義了一個名為nginx
的服務(即Nginx容器)。以下是每個配置項的含義:
-
image: nginx
:指定使用的鏡像為nginx
,這將從Docker Hub上下載Nginx鏡像。 -
hostname: nginx
:設置容器的主機名為nginx
。 -
container_name: nginx
:指定容器的名稱為nginx
。 -
ports
:定義端口映射,將主機的端口與容器的端口進行綁定。在這個示例中,將主機的18080端口映射到容器的8080端口,將主機的18082端口映射到容器的8081端口,將主機的18088端口映射到容器的8087端口。 -
volumes
:定義卷掛載,將主機的目錄與容器的目錄進行映射。在這個示例中,將主機的/home/docker/nginx/data
目錄映射到容器的/web/
目錄,將主機的/home/docker/nginx/html
目錄映射到容器的/usr/share/nginx/html
目錄,將主機的/home/docker/nginx/conf/nginx.conf
文件映射到容器的/etc/nginx/nginx.conf
文件,將主機的/home/docker/nginx/logs
目錄映射到容器的/var/log/nginx
目錄,將主機的/home/metefont/hongt-data-center/hkdata
目錄映射到容器的/HKONG/hkdata
目錄,將主機的/home/metefont/mapdata
目錄映射到容器的/home/metefont/mapdata
目錄。 -
environment
:設置環(huán)境變量。在這個示例中,設置時區(qū)為Asia/Shanghai
。
這個配置文件的作用是創(chuàng)建一個名為nginx
的Nginx容器,并指定了端口映射、卷掛載和環(huán)境變量等配置。通過運行docker-compose up
命令,Docker Compose將會根據(jù)這個配置文件創(chuàng)建并啟動該容器。
在這個nginx.yml 文件夾下,執(zhí)行下面就啟動了
docker-compose -f nginx.yml up -d
查看日志
docker logs -f nginx
確保nginx.conf 沒問題,才可以啟動成功
關閉容器
docker-compose -f nginx.yml down
如果第一次啟動失敗,要修改完配置文件之后,關閉之后重新啟動
先執(zhí)行
docker-compose -f nginx.yml down
后執(zhí)行
docker-compose -f nginx.yml up -d
進入容器內部:
docker exec -it 容器id /bin/bash
放一個圖片,瀏覽器訪問
4 部署前端項目
這個nginx 是使用docker-compose 進行創(chuàng)建容器并且啟動的。
已經(jīng)將容器內部東西和 外部東西已經(jīng) 實現(xiàn)了掛載
我們看nginx 配置,是在
進入看配置里面關于前端包的配置
發(fā)現(xiàn)在容器內部的 /web/059web/ 這個文件夾下就是前端的項目
這個是容器內部的文件夾,那么外部的就是在yml 里面對應的
我們更新前端項目就是在宿主機路徑
/home/softinstall/docker/nginx/data/
里面
在/home/softinstall/docker/nginx/data/ 這個路徑下創(chuàng)建一個059web 目錄,直接將項目拉進去
Linux系統(tǒng)下rar軟件的安裝以及如何解壓文件文章來源:http://www.zghlxwxcb.cn/news/detail-806868.html
直接瀏覽器訪問就可以文章來源地址http://www.zghlxwxcb.cn/news/detail-806868.html
5 部署后端項目
到了這里,關于docker 部署項目的操作文檔,安裝nginx的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!