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

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)文章

  • Linux下編譯安裝python3步驟

    Linux下編譯安裝python3步驟

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

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

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

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

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

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

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

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

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

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

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

    linux防火墻配置教程之訪(fǎng)問(wèn)外網(wǎng)web實(shí)驗(yàn)(3)

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

    linux查看端口是否開(kāi)放的方法詳解

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

    linux?wget下載tomcat方式

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

    解決xmapp中Apache端口號(hào)占用問(wèn)題(Apache不能正常啟動(dòng))

    小伙伴們安裝xmapp后發(fā)現(xiàn)Apache不能正常開(kāi)啟,下面小編給大家?guī)?lái)了xmapp中Apache端口號(hào)占用問(wèn)題的解決方法(Apache不能正常啟動(dòng)),需要的朋友參考下吧
    2017-05-05

最新評(píng)論