Centos 8 , 当你使用 yum install docker
的时候,会发现安装的是 podman-docker,因为centos8 默认使用 podman 替换了原来的 docker 管理器 , 如果还是想装 docker,可以看这里《 CentOS8 YUM 安装 Docker》
其实 Centos8 的 podman-docker 使用的其实还是 docker 的内核,所以docker原来大部份的命令,还是可以使用
Podman 和 Docker不同之处
- docker需要使用root用户来创建容器,但是podman不需要 ,这点很友好
- docker启动的容器支持 --restart 策略,但是 podman不支持,如果在k8s中就不存在这个问题,可以设置pod的重启策略,在系统中我们可以采用编写systemd服务来完成自启动
- 启动容器的方式不同:
docker 需要在我们的系统上运行一个守护进程(docker daemon),而 podman 不需要
- docker cli 命令通过API跟 Docker Engine(引擎)交互告诉它我想创建一个container,然后docker Engine才会调用OCI container runtime(runc)来启动一个container。这代表container的process(进程)不会是Docker CLI的child process(子进程),而是Docker Engine的child process。
- Podman是直接给OCI containner runtime(runc)进行交互来创建container的,所以container process直接是podman的child process。
podman 可执行命令
Podman 没有 daemon守护进程,docker 的 --restart 参数被废弃了,要想实现开机自动启动容器,可以通过 systemd 来管理了。
# podman
attach cp exec help import load mount port restart save stop unmount volume
build create export history info login pause ps rm search tag unpause wait
commit diff generate image inspect logout play pull rmi start top varlink
container events healthcheck images kill logs pod push run stats umount version
podman run 参数
# podman run -
-a --cpuset-mems --gidmap --label --pids-limit --systemd
--add-host --cpu-shares --group-add --label-file --pod -t
--annotation -d -h --log-driver --privileged --tmpfs
--attach --detach --health-cmd --log-opt --publish --tty
--blkio-weight --detach-keys --health-interval -m --publish-all -u
--blkio-weight-device --device --health-retries --mac-address --quiet --uidmap
--builtin-volume --device-read-bps --health-timeout --memory --read-only --ulimit
-c --device-read-iops --help --memory-reservation --read-only-tmpfs --user
--cap-add --device-write-bps --hostname --memory-swap --rm --userns
--cap-drop --device-write-iops --http-proxy --memory-swappiness --rootfs --uts
--cgroup-parent --disable-content-trust=false -i --name --runtime -v
--cidfile --dns --image-volume --network --security-opt --volume
--conmon-pidfile --dns-option --init --no-healthcheck --shm-size --volumes-from
--cpu-period --dns-search --init-path --no-hosts --sig-proxy=false -w
--cpu-quota -e --interactive --oom-kill-disable --stop-signal --workdir
--cpu-rt-period --entrypoint --ip --oom-score-adj --stop-timeout
--cpu-rt-runtime --env --ipc -p --subgidname
--cpus --env-file --kernel-memory -P --subuidname
--cpuset-cpus --expose -l --pid
创建 systemd 启动项
在/usr/lib/systemd/system目录下新建 文件名.service
文件
如果需要登陆后再启动,可以在 /usr/lib/systemd 下创建
[Unit]
Description=Podman PHP Service
After=network.target
[Service]
Type=simple
ExecStart=/usr/bin/podman start -a 容器名
ExecStop=/usr/bin/podman stop -t 10 容器名
Restart=always
[Install]
WantedBy=multi-user.target
网友评论