最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

linux實現(xiàn)開機自動啟動Docker并運行特定鏡像的容器

 更新時間:2025年06月19日 10:41:44   作者:悟能不能悟  
在?CentOS?7?中實現(xiàn)開機自動啟動?Docker?并自動運行特定鏡像的容器主要有兩種方法,本文將為大家詳細介紹一下具體實現(xiàn)代碼,希望對大家有所幫助

方法 1:使用 Docker 的 --restart 策略(簡單高效,推薦)

這是最簡潔直接的方案,利用 Docker 內(nèi)置的重啟策略來實現(xiàn):

?確保 Docker 開機啟動?:

sudo systemctl enable docker

?啟動容器時添加重啟策略?:

docker run -d \
  --name my-container \
  --restart=unless-stopped \  # 關(guān)鍵參數(shù)!
  nginx:latest

(可選)如果容器已存在,更新配置:

docker update --restart=unless-stopped my-container
重啟策略行為
unless-stopped除非手動停止,否則系統(tǒng)重啟后自動運行(推薦)
always總是重啟(即使手動停止后也會自動重啟)
on-failure僅當容器非正常退出時重啟

方法 2:使用 Systemd 服務(更精細控制)

當需要更復雜的啟動順序或參數(shù)時使用:

?創(chuàng)建服務文件?:

sudo vi /etc/systemd/system/docker-myapp.service

添加以下內(nèi)容?(替換為你的鏡像和參數(shù)):

[Unit]
Description=My Docker Container Service
After=docker.service  # 確保在 Docker 啟動后運行
Requires=docker.service
 
[Service]
Type=simple
# 確保先移除舊容器(清理)
ExecStartPre=-/usr/bin/docker rm -f my-container
# 啟動新容器
ExecStart=/usr/bin/docker run \
  --name my-container \
  -p 80:80 \
  nginx:latest
# 停止命令
ExecStop=/usr/bin/docker stop my-container
# 清理命令
ExecStopPost=/usr/bin/docker rm my-container
TimeoutStartSec=90
Restart=on-failure
 
[Install]
WantedBy=multi-user.target

?啟用服務?:

sudo systemctl daemon-reload
sudo systemctl enable docker-myapp.service
sudo systemctl start docker-myapp.service

常見鏡像啟動示例

1. 啟動 MySQL 容器

docker run -d \
  --name mysql-db \
  --restart=unless-stopped \
  -e MYSQL_ROOT_PASSWORD=123456 \
  -p 3306:3306 \
  -v /data/mysql:/var/lib/mysql \
  mysql:8.0

2. 啟動 Nginx 容器

docker run -d \
  --name web-server \
  --restart=unless-stopped \
  -p 80:80 \
  -p 443:443 \
  -v /path/to/html:/usr/share/nginx/html \
  -v /path/to/nginx.conf:/etc/nginx/nginx.conf \
  nginx:alpine

3. 啟動自定義應用

docker run -d \
  --name my-app \
  --restart=unless-stopped \
  -p 8080:3000 \
  -e ENV=production \
  my-registry.com/my-custom-image:v1.2

重要注意事項

?1.安全加固?:

# 限制容器權(quán)限
--security-opt="no-new-privileges" \
--read-only \
--cap-drop=ALL

?.2資源限制?:

--cpus="1.0" \
--memory="512m" \
--memory-swap="1g"

3.?日志管理?:

--log-opt max-size=10m \
--log-opt max-file=3

4.?健康檢查?:

docker inspect --format='{{json .State.Health}}' my-container

驗證和調(diào)試

1.檢查服務狀態(tài)?:

systemctl status docker-myapp.service

2.?查看容器日志?:

docker logs -f my-container

3.?測試重啟?:

sudo reboot
# 重啟后驗證
docker ps
curl http://localhost

4.?診斷啟動問題?:

journalctl -u docker-myapp.service -b -n 100 --no-pager

最佳實踐建議

1.?使用 Docker Compose(生產(chǎn)推薦)??:

version: '3'
services:
  web:
    image: nginx:alpine
    restart: unless-stopped
    ports:
      - "80:80"
  db:
    image: mysql:8.0
    restart: unless-stopped
    environment:
      MYSQL_ROOT_PASSWORD: secret

然后設置 systemd 啟動 compose:

ExecStart=/usr/local/bin/docker-compose -f /path/to/docker-compose.yml up

2.?版本控制?:

  • 始終指定容器標簽(如 nginx:1.23-alpine 而非 nginx:latest)
  • 在 Dockerfile 或 compose 文件中固化版本

3.?數(shù)據(jù)持久化?:

-v mysql_data:/var/lib/mysql  # 使用命名卷

通過以上方法,您可以確保 CentOS 7 啟動時自動運行 Docker 并啟動指定的容器鏡像。對于大多數(shù)場景,方法 1 的 --restart=unless-stopped 是最簡單可靠的解決方案。

以上就是linux實現(xiàn)開機自動啟動Docker并運行特定鏡像的容器的詳細內(nèi)容,更多關(guān)于linux自動啟動docker的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Kali?Linux靜態(tài)IP的設置指南

    Kali?Linux靜態(tài)IP的設置指南

    在?Kali?Linux?中設置靜態(tài)?IP?地址是一個常見的需求,尤其是在進行滲透測試或者需要長期穩(wěn)定連接的情況下,本文將指導你如何在?Kali?Linux?中配置靜態(tài)?IP?地址,感興趣的小伙伴跟著小編一起來看看吧
    2024-12-12
  • Linux 為特定的用戶或用戶組啟用或禁用 SSH的方法

    Linux 為特定的用戶或用戶組啟用或禁用 SSH的方法

    這篇文章主要介紹了如何在 Linux 上為特定的用戶或用戶組啟用或禁用 SSH,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-03-03
  • Apache JMeter 5.5 下載安裝及設置中文圖文教程

    Apache JMeter 5.5 下載安裝及設置中文圖文教程

    這篇文章主要介紹了Apache JMeter 5.5 下載安裝以及設置中文教程,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-02-02
  • linux之Jenkins自動化項目部署流程

    linux之Jenkins自動化項目部署流程

    本文介紹了持續(xù)集成和持續(xù)交付(CI/CD)的基本概念,并詳細描述了如何在CentOS?7環(huán)境下使用Jenkins、Maven、Git和Tomcat實現(xiàn)自動化構(gòu)建和部署
    2026-03-03
  • Linux文件和文件夾權(quán)限操作方法

    Linux文件和文件夾權(quán)限操作方法

    這篇文章主要介紹了Linux文件和文件夾權(quán)限操作方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-05-05
  • Linux進程間通信方式之socket使用實例

    Linux進程間通信方式之socket使用實例

    這篇文章主要介紹了Linux進程間通信方式之socket使用實例,具有一定參考價值,需要的朋友可以了解下。
    2017-11-11
  • CentOS6.8中/英文環(huán)境切換教程圖解

    CentOS6.8中/英文環(huán)境切換教程圖解

    這篇文章主要介紹了CentOS6.8中/英文環(huán)境切換教程,本文只以中文切換為英文為例給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-09-09
  • 使用autoconf生成Makefile并編譯工程的步驟

    使用autoconf生成Makefile并編譯工程的步驟

    今天小編就為大家分享一篇關(guān)于使用autoconf生成Makefile并編譯工程的步驟,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-02-02
  • Linux文件搜索神器之Find命令的使用完全指南

    Linux文件搜索神器之Find命令的使用完全指南

    find命令是Linux系統(tǒng)中最強大的文件搜索工具,可以按名稱、大小、時間等多種維度篩選文件,它支持基礎和高級用法,下面小編就和大家詳細介紹一下吧
    2026-04-04
  • linux安裝Jenkins超詳細全過程

    linux安裝Jenkins超詳細全過程

    大家好,本篇文章主要講的是linux安裝Jenkins超詳細全過程,感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12

最新評論

大同县| 西乡县| 宝应县| 延吉市| 阳原县| 江源县| 道孚县| 山丹县| 新平| 灵璧县| 渑池县| 维西| 子长县| 衡水市| 丘北县| 韶山市| 富锦市| 泰兴市| 本溪市| 太谷县| 榕江县| 彭阳县| 泸溪县| 定州市| 兰州市| 芦山县| 泗阳县| 嘉义市| 临朐县| 定兴县| 荆州市| 读书| 安宁市| 金坛市| 吉木萨尔县| 阳原县| 涟源市| 子长县| 河西区| 神农架林区| 乌海市|