Ubuntu系统重启自动启动Docker容器

简介: Ubuntu系统重启自动启动Docker容器

前言

之前文章实现了在 Ubuntu 服务器中使用 DockerNginx 容器部署项目,项目部署好以后,重启以后服务就没了,每次还得手动启动 docker, 然后再启动 nginx 容器,手动操作很麻烦,在真实服务器的场景中运行的服务很多的,每次手动执行命令的方式启动根本不现实

接下来实现 Ubuntu 系统重启后自动重启 docker 中的 nginx 容器,使部署的前端项目能自动就能访问

前端破圈使用Docker Nginx容器部署项目🏴‍☠️

开始行动

1. 设置 docker 服务开机启动

使用 systemctl 命令(下面会对systemctl做对应的介绍和扩展)

$ systemctl enable docker.service

检查docker服务是否设置成功

$ systemctl is-enabled docker

如果输出 enabled 表示设置成功

2. 设置docker服务启动后容器也自动重启

使用 --restart=always 参数

2.1 如果容器已启动

使用 update 更新即可

$ docker update --restart=always <容器id>

2.2 如果容器未启动

docker run 的时候加上 --restart 参数

$ docker run --name nginx-server --restart=always -p 80:80 -v /home/w/Desktop/code:/workspace -d nginx

小结

这时候重启 Ubuntu 系统就能自动重启对应的 docker nginx 容器了,部署的前端站点也可以正常访问。接下来将对 systemctl 命令的常用场景进行补充和扩展

Systemd

systemd 是一个init系统和系统管理器,已广泛成为Linux发行版的新标准

systemctl

systemctl 命令,它是用于控制init系统的中央管理工具。刚才设置服务开机启动就是用的这个命令,关于这个命令的使用需要用 root 用户身份运行,如果不是,需要使用 sudo,否则会影响操作状态

开启和停止服务

要启动 systemd 服务,使用 start 命令

$ sudo systemctl start application.service

关闭 systemd 服务,使用 stop 命令

$ sudo systemctl stop application.service

重启服务和重载

如果运行的服务需要重启,可以使用 restart 命令

$ sudo systemctl restart application.service

如果运行的服务有问题,需要重新加载其配置文件(无需重新启动),可以使用重载 reload 命令启动该过程

$ sudo systemctl reload application.service

设置自动重启,取消自动重启

上面设置 docker 服务开机启动的时候,就是用的这个命令 enable

$ sudo systemctl enable application.service

使用 disable 取消(禁用)服务开机自动启动

$ sudo systemctl disable application.service

检查服务状态

$ systemctl status application.service

例如检查 docker 服务的运行状态

image.png

总结

到目前为止,了解到了如何在 Ubuntu 中设置 docker 服务的开机自启动,以及 systemctl 命令相关的常见用法。当然,关于管理系统服务和单元还有很多内容,如果后续实践有用到,也会定期整理分享出来

目录
相关文章
|
6月前
|
Ubuntu 编译器 开发工具
在Ubuntu系统上搭建RISC-V交叉编译环境
以上步骤涵盖了在Ubuntu系统上搭建RISC-V交叉编译环境的主要过程。这一过程涉及了安装依赖、克隆源码、编译安装工具链以及设置环境变量等关键步骤。遵循这些步骤,可以在Ubuntu系统上搭建一个用于RISC-V开发的强大工具集。
685 22
|
6月前
|
Ubuntu 网络协议 网络安全
解决Ubuntu系统的网络连接问题
以上步骤通常可以帮助解决大多数Ubuntu系统的网络连接问题。如果问题仍然存在,可能需要更深入的诊断,或考虑联系网络管理员或专业技术人员。
1583 18
|
6月前
|
NoSQL 算法 Redis
【Docker】(3)学习Docker中 镜像与容器数据卷、映射关系!手把手带你安装 MySql主从同步 和 Redis三主三从集群!并且进行主从切换与扩容操作,还有分析 哈希分区 等知识点!
Union文件系统(UnionFS)是一种**分层、轻量级并且高性能的文件系统**,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下(unite several directories into a single virtual filesystem) Union 文件系统是 Docker 镜像的基础。 镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像。
745 7
|
6月前
|
监控 Linux 调度
【赵渝强老师】Docker容器的资源管理机制
本文介绍了Linux CGroup技术及其在Docker资源管理中的应用。通过实例演示了如何利用CGroup限制应用程序的CPU、内存和I/O带宽使用,实现系统资源的精细化控制,帮助理解Docker底层资源限制机制。
646 7
|
6月前
|
存储 关系型数据库 MySQL
MySQL Docker 容器化部署全指南
MySQL是一款开源关系型数据库,广泛用于Web及企业应用。Docker容器化部署可解决环境不一致、依赖冲突问题,实现高效、隔离、轻量的MySQL服务运行,支持数据持久化与快速迁移,适用于开发、测试及生产环境。
929 4
|
存储 Ubuntu Linux
【云原生 | 02】分别在CentOS、Ubuntu、macOS、win7、win8、win10等不同操作系统下安装Docker详细教程
Docker引擎是使用Docker容器的核心组件,可以在主流的操作系统和云平台上使用, 包括 Linux 操作系统(如 Ubuntu、Debian、CentOS、Redhat 等),macOS 和 Windows 操作系统, 以及IBM、亚马逊、微软等知名云平台.........
818 0
【云原生 | 02】分别在CentOS、Ubuntu、macOS、win7、win8、win10等不同操作系统下安装Docker详细教程
|
Ubuntu Docker 索引
ubuntu 20.04 安装docker教程和安装中遇到的问题解决方案(超详细 附加图文教程)
ubuntu 20.04 安装docker教程和安装中遇到的问题解决方案(超详细 附加图文教程)
3865 0
下一篇
开通oss服务