Linux系统部署Java应用时,经常使用Docker进行安装MySQL、Nginx、Redis等应用,如果碰到服务器断电重启,在没有设置自动启动的情况下,我们所有应用都需要重新手动启动一遍,这样就非常麻烦,不能及时处理,所以本文来讲解一下如果设置自动启动,话不多说,直接开始。需要注意的是镜像下载完后需要使用docker run创建容器,创建完毕就会启动。
docker run -p 3306:3306 --name mysql \
--restart=always \
-v /mydata/mysql/log:/var/log/mysql \
-v /mydata/mysql/data:/var/lib/mysql \
-v /mydata/mysql/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:5.7 \
参数说明
-p 3306:3306: 将容器的 3306 端口映射到主机的 3306 端口
-v /mydata/mysql/conf:/etc/mysql: 将配置文件夹挂载到主机
-v /mydata/mysql/log:/var/log/mysql: 将日志文件夹挂载到主机
-v /mydata/mysql/data:/var/lib/mysql/: 将配置文件夹挂载到主机
-e MYSQL_ROOT_PASSWORD=root: 初始化 root 用户的密码
docker run #创建实例并启动,每run一次就会创建一个容器
可以在创建实例时设置自启动
sudo docker images #查看所有的镜像
sudo docker ps #查看正在运行的容器
sudo docker ps -a #查看所有容器
sudo docker start 容器id #启动容器
sudo docker stop [容器名/容器id] #停止容器
sudo docker restart [容器名/容器id] #重启容器
一、Docker服务设置自动启动
1、查看已经启动的服务
systemctl list-units --type=service
说明docker服务已经启动,如果没有启动,就先执行一下启动命令:
systemctl start docker
,重启使用systemctl restart docker
或者service docker restart
2、查看是否设置开机启动
systemctl list-unit-files | grep docker
说明docker服务已经设置开机启动,如果是disabled
则没有设置开机自动。
3、设置开机启动
systemctl enable docker.service
二、Docker容器设置自动启动
1、启动相关应用
比如:Mysql、Nginx、Redis,具体如何安装启动,我这里就不多说,我主要讲解一下已经启动的应用容器如何设置自动启动。
可以使用sudo docker ps -a
查看所有容器然后使用sudo docker start 750
进行启动,重启使用sudo docker restart elasticsearch
。(如果我们提前进行su root
后面就不需要加上sudo
,这里我们一直使用sudo
)
2、设置容器自启
docker update --restart=always 容器名称或者ID例如750
上图设置了elasticsearch容器开机自启。