Docker、Docker?Compose部署實(shí)踐過程
一、Docker在線部署
1.1 安裝軟件包
yum install -y yum-utils
1.2 配置docker yum源
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
1.3 查看倉庫中所有docker版本
yum list docker-ce --showduplicates | sort -r

1.4 安裝docker
# 指定版本安裝 yum install -y docker-ce-3:26.1.4-1.el7.x86_64 # 安裝最新版本docker yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
1.5 啟動(dòng)并設(shè)置開機(jī)自啟
systemctl start docker && systemctl enable docker
1.6 驗(yàn)證安裝是否成功
docker version

1.7 配置鏡像加速器
配置其他鏡像加速器
docker鏡像狀態(tài)監(jiān)控網(wǎng)站:https://status.anye.xyz/
tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": [
"https://docker.1ms.run",
"https://docker.aityp.com",
"https://mirrors.tencent.com",
"https://hub.rat.dev",
"https://docker.actima.top",
"https://docker.m.daocloud.io",
"https://docker.imgdb.de",
"https://docker.xuanyuan.me",
"https://mirror.azure.cn"
]
}
EOF
# 重新加載daemon.json文件以及重啟docker
systemctl daemon-reload
systemctl restart docker
1.8 docker常用命令
# 啟動(dòng)docker systemctl start docker # 停止docker systemctl stop docker # 查詢docker狀態(tài) systemctl status docker # 查詢鏡像容器占用的空間 docker system df # 查看運(yùn)行中的容器 docker ps # 查看所有容器 docker ps -a # 搜索鏡像 docker search nginx # 下載鏡像 docker pull nginx # 下載指定版本鏡像 docker pull nginx:1.26.0 # 查看所有鏡像 docker images # 刪除指定id的鏡像 docker rmi e784f4560448 # 運(yùn)行一個(gè)新容器 docker run nginx # 停止容器 docker stop nginx # 啟動(dòng)容器 docker start 592 # 重啟容器 docker restart 592 # 查看容器資源占用情況 docker stats 592 # 查看容器日志 docker logs 592 # 刪除指定容器 docker rm 592 # 強(qiáng)制刪除指定容器 docker rm -f 592 # 后臺(tái)啟動(dòng)容器 docker run -d --name mynginx nginx # 后臺(tái)啟動(dòng)并暴露端口 docker run -d --name mynginx -p 80:80 nginx # 進(jìn)入容器內(nèi)部 docker exec -it mynginx /bin/bash # 提交容器變化打成一個(gè)新的鏡像 docker commit -m "update index.html" mynginx mynginx:v1.0 # 保存鏡像為指定文件 docker save -o mynginx.tar mynginx:v1.0 # 刪除多個(gè)鏡像 docker rmi bde7d154a67f 94543a6c1aef e784f4560448 # 加載鏡像 docker load -i mynginx.tar # 登錄 docker hub docker login # 重新給鏡像打標(biāo)簽 docker tag mynginx:v1.0 leifengyang/mynginx:v1.0 # 推送鏡像 docker push leifengyang/mynginx:v1.0 # 把容器指定位置的東西復(fù)制出來 docker cp 5eff66eec7e1:/etc/nginx/nginx.conf /data/conf/nginx.conf # 把外面的內(nèi)容復(fù)制到容器里面 docker cp /data/conf/nginx.conf 5eff66eec7e1:/etc/nginx/nginx.conf
1.9 使用runlike工具查看docker run啟動(dòng)命令
# 1. 檢查 Python 是否已安裝 python --version # 或者 python3 --version # 2. 安裝 pip # 對(duì)于 Python 2.x: yum install python-pip # 對(duì)于 Python 3.x: yum install python3-pip # 確認(rèn) pip 安裝成功 # 對(duì)于 Python 2.x: pip --version # 對(duì)于 Python 3.x: pip3 --version # 3. 安裝 runlike # 對(duì)于 Python 2.x: pip install runlike # 對(duì)于 Python 3.x: pip3 install runlike # 4. 生成docker run啟動(dòng)命令 runlike -p <容器名稱或ID>
1.10 卸載docker
yum remove -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
二、Docker離線部署
2.1 rpm方式
2.1.1 獲取 Docker 依賴包
在一臺(tái)相同版本的聯(lián)網(wǎng)機(jī)器上執(zhí)行:
# 安裝軟件包 yum install -y yum-utils createrepo # 配置docker yum源 yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo # 創(chuàng)建rpm包目錄 mkdir /opt/docker-rpm # 下載Docker及其所有依賴到指定目錄 repotrack docker-ce \ docker-ce-cli \ containerd.io \ docker-buildx-plugin \ docker-compose-plugin \ -p /opt/docker-rpm # 打包文件 tar -czvf docker-rpm.tar.gz -C /opt/docker-rpm .
2.1.2 安裝 RPM
上傳docker-rpm.tar.gz到服務(wù)器
# 創(chuàng)建目錄并解壓 mkdir -p /opt/docker-rpm tar -zxvf docker-rpm.tar.gz -C /opt/docker-rpm # 進(jìn)入目錄 cd /opt/docker-rpm # 按依賴順序手動(dòng)安裝(關(guān)鍵!) # --nodeps: 忽略依賴檢查(因?yàn)槟阋汛_保所有包已下載) # --force: 覆蓋沖突文件 sudo rpm -ivh \ container-selinux-*.rpm \ libcgroup-*.rpm \ containerd.io-*.rpm \ docker-ce-cli-*.rpm \ docker-ce-*.rpm \ docker-ce-rootless-extras-*.rpm \ docker-buildx-plugin-*.rpm \ docker-compose-plugin-*.rpm \ --nodeps --force
2.1.3 檢查 Docker 軟件包是否正確安裝
# 查看 Docker 相關(guān)軟件包是否安裝 rpm -qa | grep docker

2.1.4 啟動(dòng)并設(shè)置開機(jī)自啟
systemctl start docker && systemctl enable docker
2.1.5 驗(yàn)證安裝是否成功
docker version

2.2 免安裝方式
2.2.1 下載
https://download.docker.com/linux/static/stable/x86_64/
2.2.2 解壓并部署
mdkir /opt # 上傳壓縮包到/opt目錄下并解壓 cd /opt tar -zxvf docker-26.1.4.tgz # 將docker文件內(nèi)容復(fù)制到/usr/bin/目錄下 cp docker/* /usr/bin/ # 賦予可執(zhí)行權(quán)限 chmod +x /usr/bin/docker*
2.2.3 設(shè)置開機(jī)自啟
vi /etc/systemd/system/docker.service [Unit] Description=Docker Application Container Engine After=network-online.target firewalld.service Wants=network-online.target [Service] Type=notify ExecStart=/usr/bin/dockerd ExecReload=/bin/kill -s HUP $MAINPID Restart=on-failure LimitNOFILE=infinity LimitNPROC=infinity Delegate=yes [Install] WantedBy=multi-user.target
賦予文件權(quán)限并啟動(dòng)docker
# 賦予文件權(quán)限 chmod +x /etc/systemd/system/docker.service # 重載配置 systemctl daemon-reload # 啟動(dòng)docker systemctl start docker #設(shè)置開機(jī)自啟 systemctl enable docker # 驗(yàn)證服務(wù)狀態(tài) systemctl status docker

三、Docker Compose部署
3.1 安裝Docker Compose
3.1.1 離線安裝
https://github.com/docker/compose/releases
在下載頁面找到docker-compose-linux-x86_64文件下載

上傳到/usr/local/bin目錄下
重命名為docker-compose
mv docker-compose-linux-x86_64 docker-compose
賦予可執(zhí)行權(quán)限
chmod +x /usr/local/bin/docker-compose
查看版本號(hào)
docker-compose -v 或者: docker-compose version

3.1.2 在線安裝
# 查看最新版本號(hào):https://github.com/docker/compose/releases # 下載2.37.1版本Docker Compose sudo curl -L "https://github.com/docker/compose/releases/download/v2.37.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
賦予可執(zhí)行權(quán)限
sudo chmod +x /usr/local/bin/docker-compose
驗(yàn)證安裝
docker-compose -v 或者: docker-compose version

3.2 基本使用
version: '3.8' # 指定兼容的 Compose 規(guī)范版本
services: # 服務(wù)定義區(qū)塊
webapp: # 服務(wù)名稱(自定義)
image: nginx:latest # 鏡像
container_name: my-nginx # 容器名稱
ports:
- "80:80" # 端口映射(主機(jī):容器)
- "443:443"
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf # 掛載配置文件
- html:/usr/share/nginx/html # 使用命名卷
networks:
- frontend # 加入指定網(wǎng)絡(luò)
depends_on:
- database # 聲明依賴關(guān)系
database:
image: mysql:8.0
environment:
MYSQL_ROOT_PASSWORD: password # 環(huán)境變量注入
volumes:
- /opt/mysql/mysql_data:/var/lib/mysql # 數(shù)據(jù)持久化
networks:
- backend
volumes: # 聲明數(shù)據(jù)卷(自動(dòng)創(chuàng)建)
html:
mysql_data:
networks: # 自定義網(wǎng)絡(luò)(隔離通信)
frontend:
backend:
3.3 常用命令
執(zhí)行 docker compose(或舊版 docker-compose)命令時(shí),默認(rèn)在當(dāng)前工作目錄下查找以下文件:
- docker-compose.yml
- docker-compose.yaml
若文件不在當(dāng)前目錄或使用自定義文件名,需通過 -f(或 --file)參數(shù)指定路徑
# 指定其他目錄或文件名 docker-compose -f /path/to/custom-compose.yml up # 使用多個(gè) Compose 文件(合并配置) docker-compose -f docker-compose.yml -f docker-compose.prod.yml up
| 命令 | 作用 |
|---|---|
| docker-compose up | 啟動(dòng)所有服務(wù)(前臺(tái)運(yùn)行) |
| docker-compose up -d | 后臺(tái)啟動(dòng)所有服務(wù) |
| docker-compose up stop | 停止正在運(yùn)行的容器 |
| docker-compose down | 停止并刪除容器、網(wǎng)絡(luò)(保留數(shù)據(jù)卷) |
| docker-compose down -v | 停止并刪除容器、網(wǎng)絡(luò)及數(shù)據(jù)卷 |
| docker-compose start | 啟動(dòng)已經(jīng)存在的服務(wù)容器 |
| docker-compose restart | 重啟項(xiàng)目中的服務(wù) |
| docker-compose logs | 查看所有服務(wù)的日志 |
| docker-compose logs -f web | 實(shí)時(shí)跟蹤 web 服務(wù)的日志 |
| docker-compose ps | 查看運(yùn)行中的容器狀態(tài) |
| docker-compose up --scale web=3 | 啟動(dòng)多個(gè)服務(wù)實(shí)例(如負(fù)載均衡) |
| docker-compose exec web sh | 進(jìn)入 web 容器的 Shell |
| docker-compose build | 根據(jù) build: 配置構(gòu)建鏡像(需在 Compose 文件中定義) |
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- Higress基于Docker?Compose進(jìn)行獨(dú)立部署方式
- milvus向量數(shù)據(jù)庫用法及部署(docker-compose)
- Docker Compose實(shí)現(xiàn)一鍵部署前后端分離項(xiàng)目的完整指南
- Docker Compose國(guó)內(nèi)鏡像一鍵部署dify教程
- Nextcloud介紹及docker-compose.yml部署+onlyoffice方式
- Docker-compose部署redis-cluster集群的完整步驟
- 使用Docker Compose一鍵部署OnlyOffice的完整指南與配置解析
- docker-compose部署sonarqube全過程
相關(guān)文章
在wsl-ubuntu中如何通過 docker 啟動(dòng) gpu-jupyter
這篇文章主要介紹了在wsl-ubuntu中如何通過 docker 啟動(dòng) gpu-jupyter,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2024-01-01
在Dockerfile中copy和add的區(qū)別及說明
COPY和ADD都是Dockerfile中用于文件復(fù)制的命令,但COPY僅用于本地文件或目錄的復(fù)制,不支持自動(dòng)解壓縮;而ADD除了復(fù)制本地文件或目錄外,還支持解壓縮和從URL下載文件,在一般情況下,建議使用COPY命令2025-03-03
Docker部署UI自動(dòng)化測(cè)試環(huán)境的實(shí)現(xiàn)步驟
本文主要介紹了Docker部署UI自動(dòng)化測(cè)試環(huán)境的實(shí)現(xiàn)步驟,通過Docker可以快速創(chuàng)建、部署和測(cè)試腳本,提高測(cè)試效率,具有一定的參考價(jià)值,感興趣的可以了解一下2023-08-08
docker啟動(dòng)anything llm報(bào)unable to open data
安裝Docker和下載鏡像時(shí)需切換國(guó)內(nèi)源,由于Docker運(yùn)行時(shí)創(chuàng)建文件的用戶uid為1000,而默認(rèn)使用root創(chuàng)建目錄,導(dǎo)致權(quán)限不符,運(yùn)行時(shí)報(bào)錯(cuò),修改目錄權(quán)限或所有者為uid 1000即可2026-04-04
docker使用Dockerfile構(gòu)建鏡像的實(shí)現(xiàn)示例
本文主要介紹了docker使用Dockerfile構(gòu)建鏡像的實(shí)現(xiàn)示例,通過編寫 Dockerfile,您可以定義鏡像的基礎(chǔ)環(huán)境、安裝軟件包、復(fù)制文件、設(shè)置環(huán)境變量等操作,下面就來介紹一下2024-01-01

