podman start 和 podman restart 有什么使用机制上的区别?
时间: 2024-03-24 17:35:42 浏览: 6
`podman start` 和 `podman restart` 都是用于启动已经存在的容器,但它们之间有一些区别。
`podman start` 用于启动已经停止的容器,如果容器之前已经启动过,那么它将会以最后一次运行的状态启动。如果容器从未启动过,那么它将会以默认的设置启动。例如:
```
$ podman start mycontainer
```
`podman restart` 用于重启已经运行的容器,如果容器之前已经启动过,那么它将会以当前设置重新启动。例如:
```
$ podman restart mycontainer
```
此外,`podman restart` 还支持一些选项,例如 `--time` 用于指定容器等待多少秒后再重启,或者 `--ignore-signal` 用于指定是否忽略重启时的信号。
相关问题
podman重启提示[root@podman anchors]# systemctl restart podman Failed to restart podman.service: Unit not found
这个错误提示表明系统中没有名为 "podman.service" 的 systemd 服务单元。这可能是因为 Podman 没有正确安装或配置,或者是因为您的系统上没有启用 systemd。
您可以尝试重新安装 Podman 并确保其已正确配置。您也可以检查您的系统是否已启用 systemd。如果系统没有启用 systemd,则需要启用它才能运行 Podman。
您可以尝试使用以下命令来检查 Podman 是否已正确安装:
```
$ podman version
```
如果您的系统已启用 systemd,则可以尝试使用以下命令来启动 Podman 服务:
```
$ sudo systemctl start podman.socket
```
这将启动 Podman 的 socket 服务,从而允许您执行与 Podman 相关的操作。如果您需要在系统启动时自动启动 Podman,请使用以下命令:
```
$ sudo systemctl enable podman.socket
```
这将使 Podman socket 服务在系统启动时自动启动。
普通用户怎么让systemd管理podman运行的容器
普通用户可以通过创建一个systemd用户服务来让systemd管理podman运行的容器。具体步骤如下:
1. 创建一个用户服务文件,比如mycontainer.service,放置于~/.config/systemd/user/目录下,内容如下:
```
[Unit]
Description=My Container
After=network.target
[Service]
ExecStart=/usr/bin/podman run --name mycontainer nginx
ExecStop=/usr/bin/podman stop mycontainer
[Install]
WantedBy=default.target
```
2. 使用systemctl --user命令来启动、停止、重启、查看状态等操作,比如:
```
systemctl --user start mycontainer
systemctl --user stop mycontainer
systemctl --user restart mycontainer
systemctl --user status mycontainer
```
注意:在运行podman命令时,需要使用绝对路径/usr/bin/podman。如果需要修改容器的配置,可以修改mycontainer.service文件后重新启动服务。