docker常用命令及设置开机自启方式

来自:网络
时间:2024-09-10
阅读:

docker常用命令及设置开机自启

常用基本命令

# 启动docker
systemctl start docker
# 停止dokcer
systemctl stop docker
# 查看docker状态
systemctl status docker 
# 重启docker
systemctl restart docker
# 设置docker 开机自启
systemctl enable docker
# 查看docker 版本
docker version
# 查看docker 镜像
docker images
# 查看docker 运行列表
docker ps 
# 查看docker (运行、停止)
docker ps -aq
# 删除容器
docker rm -f 容器ID/容器名称(CONTAINER ID/NAMES)
#  删除多个容器(空格隔开)
docker rm -f 容器ID/容器名称 容器ID/容器名称 ...
# 删除全部容器
docker rm -f $(docker ps -aq)

设置docker开机自启

systemctl enable docker

设置容器自启

1. 创建容器时设置:

docker run -d --restart=always --name 容器名称 镜像名称
# 例如:
docker  run --restart=always 56f0b18af626

2. 更新已有容器设置:

docker update --restart=always 容器ID
# 例如:
docker  update --restart=always 56f0b18af626

–restart具体参数,详见官方文档

PolicyResult
noDo not automatically restart the container when it exits. This is the default. 默认设置,容器退出时不重启容器。
on-failure[:max-retries]Restart only if the container exits with a non-zero exit status. Optionally, limit the number of restart retries the Docker daemon attempts. 在容器非正常退出时重启容器,最多重启max-retries次。
alwaysAlways restart the container regardless of the exit status. When you specify always, the Docker daemon will try to restart the container indefinitely. The container will also always start on daemon startup, regardless of the current state of the container. 总是重启容器。
unless-stoppedAlways restart the container regardless of the exit status, including on daemon startup, except if the container was put into a stopped state before the Docker daemon was stopped. 总是重启容器,除非在Docker守护程序停止之前容器就处于停止状态。

docker及容器设置开机自启,并修改容器时间、编码格式

服务器的机房,有时候需要关机重启,进行机房改造!

docker自启动

查看已经启动的服务

systemctl list-units --type=service

docker常用命令及设置开机自启方式

如上图,docker已经启动,

如果没有启动,就先执行一下启动命令

systemctl start docker

查看docker是否设置了开机自启

systemctl list-unit-files | grep docker

docker常用命令及设置开机自启方式

如上图,设置成功,如果没有设置开机自启,就是disabled

设置开机启动命令

systemctl enable docker.service

容器自启动

设置容器自启动有两种方式,一个是在创建并启动容器时,一种是在容器启动之后

创建并启动容器时,添加--restart=always

docker run -d --restart=always --name demo -p 8080:8080 -v /home/java_backend/logs:/app/logs demo

容器启动之后,执行如下命令

docker update --restart=always   容器名称

修改容器时间

修改容器时间有三种方式:创建并启动容器时共享宿主机时间、启动之后的容器复制宿主机的时间、在Dockerfile中设置

1.创建并启动容器时共享宿主机时间,在启动命令中增加-v /etc/localtime:/etc/localtime:ro -v /etc/timezone:/etc/timezone:ro

docker run -d --restart=always --name demo -p 8080:8080 -v /home/java_backend/logs:/app/logs -v /etc/localtime:/etc/localtime:ro -v /etc/timezone:/etc/timezone:ro demo

2.启动之后的容器复制宿主机的时间

docker cp /etc/localtime [containerId]:/etc/localtime
docker cp /etc/timezone [containerId]:/etc/timezone

containerId 为要修改的容器id,注意需要重启容器

3.在Dockerfile中设置

RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone

Dockerfile中添加如上命令即可

修改容器编码格式

首先进入容器查看当前字符编码

locale

docker常用命令及设置开机自启方式

查看本地拥有的字符编码

locale -a

docker常用命令及设置开机自启方式

C.UTF-8可以支持中文,只需要把容器编码设置为C.UTF-8即可(有的是zh_CN.UTF-8,不过我在本地没发现这种编码)

临时修改字符编码

设置字符编码为C.UTF-8

export LANG=C.UTF-8

重新加载环境变量

source /etc/profile

永久修改

Dockerfile中添加命令

ENV LANG C.UTF-8

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持。

返回顶部
顶部