Podman #
常用命令 #
2. 启动容器并进入交互模式 #
你可以使用 docker run
命令启动容器并进入容器的交互式 shell。这样你就可以进入容器内部进行调试。
复制代码
docker run -it --entrypoint /bin/bash nova-crawler:latest
参数说明: #
-it
:-i
表示以交互模式运行容器,-t
给容器分配一个伪终端,这样你就可以在终端与容器交互。--entrypoint /bin/bash
:这将覆盖容器的默认入口点,直接启动一个 bash shell 以便你进入容器进行调试。nova-crawler:latest
:你要运行的镜像名称。
3. 启动容器并调试特定命令 #
如果你不想进入容器的 shell,而是想直接执行调试命令(比如启动应用并在调试模式下运行),可以使用以下命令:
bash
复制代码
docker run -it --entrypoint /bin/bash nova-crawler:latest -c "your-debug-command"
4. 查看容器日志 #
如果你希望在调试时查看容器的日志输出,可以使用以下命令:
bash
复制代码
docker logs <container_id>
你可以通过 docker ps
查找运行的容器 ID,然后查看日志输出。
5. 调试时挂载本地目录(可选) #
如果你需要调试代码,并且希望挂载本地目录到容器中进行实时编辑,可以使用 -v
参数来挂载本地目录。例如,假设你的本地代码在 /path/to/your/code
目录下:
bash
复制代码
docker run -it -v /path/to/your/code:/app --entrypoint /bin/bash nova-crawler:latest
这会将本地的 /path/to/your/code
目录挂载到容器的 /app
目录下。你可以在容器内访问并调试这个代码。
总结: #
- 使用
docker run -it --entrypoint /bin/bash
来启动容器并进入 bash shell 进行调试。 - 使用
docker run -it -v /local/dir:/container/dir
来挂载本地目录进行调试。
希望这能帮你顺利启动并调试 nova-crawler
容器!
命令用法 #
命令几乎和docker
一致, alias docker=podman
完全可以无感知
不同点 #
pull
路径需要完整(official
)
podman pull docker.io/library/mysql:5.7
- pull 其他示例(主要看
docker pull
的输出👿)
# FROM tiangolo/uvicorn-gunicorn:python3.11
podman pull docker.io/tiangolo/uvicorn-gunicorn:python3.11
迁移镜像存储路径 #
切换到
lazydocker #
[[Note of Docker#lazydocker 可视化]]
export DOCKER_HOST=unix:///run/user/1000/podman/podman.sock
lazydocker
VSCode #
Dev Containers #
https://code.visualstudio.com/remote/advancedcontainers/docker-options
在插件设置中, 将Docker Path
里docker
修改为podman
即可
网络 #
容器内访问宿主机 #
[!note]
host.docker.internal
Docker 提供了 host.docker.internal
这个特殊的 DNS 名称,它会解析为 宿主机的 IP 地址。
slirp4netns问题 #
podman network connect example-network example-container
会报错- podman 网络连接未针对 slirp4netns 实现 #19577
本地镜像存储路径 #
⛔ 没生效
go install github.com/evnix/boltdbweb@latest
sudo boltdbweb --db-name=/var/lib/containers/storage/libpod/bolt_state.db --port=8008
修改其中缓存的/etc/containers/storage.conf
文件内容.
换源 #
文件: /etc/containers/registries.conf
[registries.search]
registries = ['registry.aliyuncs.com', 'docker.io']
[registries.insecure]
registries = []
[registries.block]
registries = []
[registries_mirror]
registry = 'docker.io'
mirrors = ['registry.aliyuncs.com']