欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時間:2025年06月19日 10:41:44   作者:悟能不能悟  
在?CentOS?7?中實現(xiàn)開機自動啟動?Docker?并自動運行特定鏡像的容器主要有兩種方法,本文將為大家詳細(xì)介紹一下具體實現(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僅當(dāng)容器非正常退出時重啟

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

當(dāng)需要更復(fù)雜的啟動順序或參數(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 啟動后運行
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

?啟用服務(wù)?:

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. 啟動自定義應(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

重要注意事項

?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.檢查服務(wù)狀態(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

然后設(shè)置 systemd 啟動 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  # 使用命名卷

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

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

相關(guān)文章

  • Linux下編譯安裝python3步驟

    Linux下編譯安裝python3步驟

    本篇文章主要介紹了Linux下編譯安裝python3,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-01-01
  • Apache控制是否顯示站點目錄(推薦)

    Apache控制是否顯示站點目錄(推薦)

    這篇文章主要介紹了Apache控制是否顯示站點目錄(推薦)的相關(guān)資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2016-11-11
  • Linux與Windows跨平臺文件共享的實現(xiàn)方案

    Linux與Windows跨平臺文件共享的實現(xiàn)方案

    在智慧工廠的應(yīng)用場景中,常常需要通過工控機集中讀取多臺設(shè)備生成的日志來獲取運行數(shù)據(jù),由于設(shè)備通常運行 Windows 系統(tǒng),而工控機多采用 Linux 環(huán)境,所以本文介紹了Linux與Windows跨平臺文件共享的實現(xiàn)方案,需要的朋友可以參考下
    2025-04-04
  • apache虛擬主機配置: 二級目錄訪問跳轉(zhuǎn)到其他根文件夾

    apache虛擬主機配置: 二級目錄訪問跳轉(zhuǎn)到其他根文件夾

    這篇文章主要介紹了apache虛擬主機配置: 二級目錄訪問跳轉(zhuǎn)到其他根文件夾,需要的朋友可以參考下
    2016-11-11
  • Linux之定時任務(wù)Crond詳解

    Linux之定時任務(wù)Crond詳解

    本篇文章主要介紹了Linux之定時任務(wù)Crond詳解 ,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-05-05
  • 一文帶你深入理解Linux中的nohup命令

    一文帶你深入理解Linux中的nohup命令

    nohup是Linux和Unix系統(tǒng)中的一個命令,其作用是在終端退出時,讓進程在后臺繼續(xù)運行。這篇文章主要來和大家講講它的使用,需要的可以參考一下
    2023-03-03
  • linux防火墻配置教程之訪問外網(wǎng)web實驗(3)

    linux防火墻配置教程之訪問外網(wǎng)web實驗(3)

    這篇文章主要為大家詳細(xì)介紹了linux防火墻配置教程之訪問外網(wǎng)web的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-04-04
  • linux查看端口是否開放的方法詳解

    linux查看端口是否開放的方法詳解

    在Linux中,端口是設(shè)備與外界通訊交流的出口,常用于指TCP/IP協(xié)議中的端口,其按照端口號可以分為三類,分別是:公認(rèn)端口、注冊端口、動態(tài)端口,那么Linux中如何查看開啟了哪些端口?以下是常用命令介紹
    2024-03-03
  • linux?wget下載tomcat方式

    linux?wget下載tomcat方式

    這篇文章主要介紹了linux?wget下載tomcat方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • 解決xmapp中Apache端口號占用問題(Apache不能正常啟動)

    解決xmapp中Apache端口號占用問題(Apache不能正常啟動)

    小伙伴們安裝xmapp后發(fā)現(xiàn)Apache不能正常開啟,下面小編給大家?guī)砹藊mapp中Apache端口號占用問題的解決方法(Apache不能正常啟動),需要的朋友參考下吧
    2017-05-05

最新評論