nano /etc/pve/lxc/<CTID>.conf
nano /etc/ssh/sshd_config
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
chown -R root:root ~/.ssh
apt update
# 安装 Podman
apt install podman pipx iptables # iptables必须安装,否则netavark无法运行
# 安装 podman-compose
apt install pipx \
&& pipx install podman-compose \
&& echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc \
&& . ~/.bashrc
# 验证安装
podman version ; podman-compose version
# 配置国内镜像源
sed -E -i.bak \
-e 's/^# (unqualified-search-registries = ).+$/\1["docker.io"]/' \
-e 's/^# (\[\[registry\]\])$/\1/' \
-e 's/^# (prefix = ).+"$/\1"docker.io"/' \
-e '0,\/^# (location = ).+"$/s//\1"docker.1ms.run"/' \
-e '0,\/^# (\[\[registry.mirror\]\])$/s//\1/' \
-e '0,\/^# (location = ).*"$/s//\1"registry.cn-hangzhou.aliyuncs.com"/' \
/etc/containers/registries.conf
# nano /etc/containers/registries.conf
unqualified-search-registries = ["docker.io"]
[[registry]]
prefix = "docker.io"
location = "docker.1ms.run"
[[registry.mirror]]
location = "registry.cn-hangzhou.aliyuncs.com" # 可选备用
其实命令与Docker一致,非常方便好用。
[docker|podman] image ls -a
# or
[docker|podman] images
[docker|podman] container ls -a
# or
[docker|podman] ps
[docker|podman] compose -f <yaml_file> logs [-f] [service name]
# or
[docker|podman] logs [-f] [container id]
[docker|podman] compose -f <yaml_file> config
echo 'y' | [docker|podman] system prune
# 导出
[docker|podman] save -o <image>.tar <image_name:label | image_id>
# 导入
# 使用image_id导出的镜像,导入时也没有名字
[docker|podman] load -i <image>.tar
# 创建临时容器
[docker|podman] conatiner create --name <container_name> <image_name>
# 从容器复制文件到宿主机
[docker|podman] conatiner cp <container_name>:<file_path> <dest_path>
# 清理临时窗口
[docker|podman] container rm <container_name>
[docker|podman] network create [name]
echo "alias d-ll='[docker|podman] image ls -a; echo; [docker|podman] container ls -a'" >> ~/.bashrc \
&& echo "alias d-ps='[docker|podman] ps'" >> ~/.bashrc \
&& echo "alias d-clean='[docker|podman] system prune -f'" >> ~/.bashrc \
&& echo "alias d-rm='_a(){ [docker|podman] image rm $1; echo; [docker|podman] container rm $1; }; _a'" >> ~/.bashrc \
&& echo "alias d-exec='_a(){ [docker|podman] exec -it $1 /bin/bash; }; _a'" >> ~/.bashrc \
&& echo "alias d-stop='_a(){ [docker|podman] container stop $1; }; _a'" >> ~/.bashrc \
&& echo "alias d-kill='_a(){ [docker|podman] container kill $1; }; _a'" >> ~/.bashrc
source ~/.bashrc