docker容器开机启动
时间: 2023-11-25 14:51:30 浏览: 58
Docker容器可以通过设置重启策略来实现开机启动。具体来说,可以在启动容器时使用`--restart`参数来设置重启策略。常用的重启策略包括:
- `no`:默认策略,容器退出时不重启容器;
- `on-failure`:在容器非正常退出时(退出状态非0)才重新启动容器;
- `on-failure:3`:在容器非正常退出时重启容器,最多重启3次;
- `always`:无论退出状态是如何,都重启容器;
- `unless-stopped`:在容器退出时总是重启容器,但是不考虑在Docker守护进程启动时就已经停止了的容器。
例如,以下命令启动一个名为`my_container`的容器,并设置重启策略为`always`:
```
docker run -d --name my_container --restart always my_image
```
这样,当Docker守护进程启动时,或者容器被手动停止时,容器都会自动重启。
相关问题
docker开机启动失败_Docker容器开机自动启动
Docker容器开机自动启动需要进行以下步骤:
1. 创建一个 systemd unit 文件,用于启动 Docker 容器。可以使用以下命令创建 unit 文件:
```
sudo nano /etc/systemd/system/docker-container.service
```
在文件中添加以下内容:
```
[Unit]
Description=Docker Container
Requires=docker.service
After=docker.service
[Service]
Restart=always
ExecStart=/usr/bin/docker start -a CONTAINER_NAME
ExecStop=/usr/bin/docker stop -t 2 CONTAINER_NAME
[Install]
WantedBy=default.target
```
其中,`CONTAINER_NAME` 是你要启动的 Docker 容器的名称。
2. 保存并关闭文件。
3. 重新加载 systemd 配置:
```
sudo systemctl daemon-reload
```
4. 启用自动启动:
```
sudo systemctl enable docker-container.service
```
现在,你的 Docker 容器将在系统启动时自动启动。
docker 容器ssh开机启动
在Docker中,可以使用不同的方法来实现容器的SSH开机启动。以下是一种常见的方法:
1. 创建一个新的容器映像:首先,您需要在Dockerfile中定义一个自定义镜像。在Dockerfile中,使用RUN命令安装SSH服务器。您可以选择使用任何您熟悉和喜欢的SSH服务器,如OpenSSH Server。例如,可以使用以下命令在Ubuntu镜像中安装OpenSSH服务器:
```
FROM ubuntu
RUN apt-get update && apt-get install -y openssh-server
```
2. 配置SSH服务器:在Dockerfile中,使用RUN和COPY命令进行容器的SSH服务器配置。对于OpenSSH服务器,您可以复制您自己的SSHD配置文件(sshd_config)到容器中。使用COPY命令将配置文件复制到适当的位置。例如:
```
COPY sshd_config /etc/ssh/sshd_config
```
然后,使用RUN命令更改权限和所有者:
```
RUN chmod 600 /etc/ssh/sshd_config && chown root:root /etc/ssh/sshd_config
```
3. 启动SSH服务器:在Dockerfile中,使用CMD或ENTRYPOINT命令启动SSH服务器。使用CMD时,可以将启动命令添加到Dockerfile的末尾。例如,可以使用以下命令启动OpenSSH服务器:
```
CMD ["/usr/sbin/sshd", "-D"]
```
这将使用默认配置文件来启动SSH服务器。
4. 构建镜像和运行容器:使用docker build命令构建镜像,并使用docker run命令来运行容器。您可以在docker run命令中指定SSH服务器的端口映射(如 `-p host_port:container_port`)和其他选项。例如:
```
docker build -t mysshimage .
docker run -d -p 2222:22 --name mysshcontainer mysshimage
```
此操作将构建名为mysshimage的镜像,并使用2222端口映射到容器的22端口。容器将在后台以mysshcontainer的名称运行。
这样,当您启动该容器时,您可以使用SSH工具连接到该容器的IP地址和指定的端口(例如,localhost:2222)。您可以使用之前设置的用户名和密码进行身份验证,以便远程访问该容器。
请注意,这只是一种实现方式,还有其他方法也可以实现Docker容器的SSH开机启动。具体实现取决于您对Docker和SSH服务器的个人偏好和要求。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)