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

linux實(shí)現(xiàn)開(kāi)機(jī)自動(dòng)啟動(dòng)Docker并運(yùn)行特定鏡像的容器

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

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

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

?確保 Docker 開(kāi)機(jī)啟動(dòng)?:

sudo systemctl enable docker

?啟動(dòng)容器時(shí)添加重啟策略?:

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

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

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

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

當(dāng)需要更復(fù)雜的啟動(dòng)順序或參數(shù)時(shí)使用:

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

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

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

[Unit]
Description=My Docker Container Service
After=docker.service  # 確保在 Docker 啟動(dòng)后運(yùn)行
Requires=docker.service
 
[Service]
Type=simple
# 確保先移除舊容器(清理)
ExecStartPre=-/usr/bin/docker rm -f my-container
# 啟動(dòng)新容器
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

?啟用服務(wù)?:

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

常見(jiàn)鏡像啟動(dòng)示例

1. 啟動(dòng) 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. 啟動(dòng) 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. 啟動(dòng)自定義應(yīng)用

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

重要注意事項(xiàng)

?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

驗(yàn)證和調(diào)試

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

systemctl status docker-myapp.service

2.?查看容器日志?:

docker logs -f my-container

3.?測(cè)試重啟?:

sudo reboot
# 重啟后驗(yàn)證
docker ps
curl http://localhost

4.?診斷啟動(dòng)問(wèn)題?:

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

最佳實(shí)踐建議

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

然后設(shè)置 systemd 啟動(dòng) compose:

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

2.?版本控制?:

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

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

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

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

以上就是linux實(shí)現(xiàn)開(kāi)機(jī)自動(dòng)啟動(dòng)Docker并運(yùn)行特定鏡像的容器的詳細(xì)內(nèi)容,更多關(guān)于linux自動(dòng)啟動(dòng)docker的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

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

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

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

    Linux 為特定的用戶(hù)或用戶(hù)組啟用或禁用 SSH的方法

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

    Apache JMeter 5.5 下載安裝及設(shè)置中文圖文教程

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

    linux之Jenkins自動(dòng)化項(xiàng)目部署流程

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

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

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

    Linux進(jìn)程間通信方式之socket使用實(shí)例

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

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

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

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

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

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

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

    linux安裝Jenkins超詳細(xì)全過(guò)程

    大家好,本篇文章主要講的是linux安裝Jenkins超詳細(xì)全過(guò)程,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話(huà)記得收藏一下,方便下次瀏覽
    2021-12-12

最新評(píng)論

健康| 巫溪县| 衡南县| 湘乡市| 祥云县| 石渠县| 雷山县| 兴业县| 沅陵县| 福鼎市| 五家渠市| 九龙县| 阜南县| 敦化市| 阜南县| 绥阳县| 鹤峰县| 民和| 余干县| 且末县| 兴义市| 西安市| 民县| 额尔古纳市| 长沙市| 泾川县| 遵化市| 深水埗区| 获嘉县| 凤冈县| 大悟县| 龙门县| 富宁县| 安化县| 化隆| 甘德县| 大渡口区| 淮阳县| 屏东市| 东山县| 崇义县|