Docker是當前最流行的容器技術。通過運用容器打包應用程序并部署到生產環境中,可大大提高部署的速度和可靠性。經常使用Docker部署應用程序的開發人員,可能會遇到需要讓Docker容器實現開機自啟的需求。那么怎么實現呢?接下來介紹一下方法。
首先,在Dockerfile文件中添加以下命令:
# 開始時自動運行的命令 CMD ["/usr/sbin/nginx", "-g", "daemon off;"]
運行該命令后,Docker容器會在啟動時自動運行指定的命令。接下來,將該Docker容器提供的服務添加到systemd服務中,便可實現開機自啟。具體方法如下:
在Docker容器創建完成后,在主機上使用systemctl create命令創建一個服務文件,表示Docker容器對應的服務。例如,創建一個名為“nginx.service”的服務文件。 創建的服務文件內容如下:
[Unit] Description=NGINX Docker container [Service] Restart=always ExecStart=/usr/bin/docker start -a nginx ExecStop=/usr/bin/docker stop -t 2 nginx [Install] WantedBy=multi-user.target
這里要說明一下:
- ExecStart表示服務啟動時需要執行的命令。
- ExecStop表示服務停止時需要執行的命令。
- WantedBy表示該服務在啟動和停止時需要考慮的目標。
保存上述文件,并使用systemctl enable nginx.service命令將其添加到啟動項中。重新啟動主機,并運行systemctl start nginx命令就能夠啟動該Docker容器服務了。