配置容器
要提供对容器的网络访问权限,客户传递到端必须连接到容器主机上的端口,这些端口将网络流量传递到容器中的端口。配置容器通常可以自定义设置向容器传递一些环境变量,而不是修改容器镜像。
将容器主机端口映射到容器
将容器主机端口映射到容器中的端口时,容器将接受发送到主机网络端口的网络流量。
使用-p选项,通过podman run设置端口映射,采用两个冒号分隔的端口号(主机端口后跟着容器端口)。
使用-d选项在分离模式中运行容器,podman仅将容器ID返回到屏幕。
podman run -d -p 8000:8080 registry.redhat.io/rhel8/httpd-24
可以使用podman port命令和容器ID或名称列出端口映射,也可以使用-a选项列出所有的端口映射。
podman port -a
传递环境变量配置容器
端口3306的数据库服务器配置:
MYSQL_USER :要创建的MySQL庄户用户名
MYSQL_PASSWORD :用户账户的密码
MYSQL_DATABASE :数据库名称
MYSQL_ROOT_PASSWORD :root用户的密码(可选)
podman run命令和-e选项,将环境变量传递到容器内的进程,--name选项将选择的名称分配给容器。
管理容器
podman ps #列出运行中的容器podman ps -a #列出所有容器,包括已停止的容器podman stop #正常停止运行中的容器,#stop将发送SIGTERM信号终止正在运行的容器,若在宽限期10秒后容器不停止,podman将发送SIGKILL信号。podman rm #从主机中移除容器,除非包含-f选项(会移除正在运行的容器),否则容器必须停止。podman rm -a #从主机中移除所有停止的容器,已移除的容器ID 将会打印。podman restart #重新启动已停止的容器。podman kill #将UNIX信号发送到容器中的主进程,-s指定信号。
如果容器镜像由已停止的容器使用,除非包含-f选项(会先删除使用此镜像的所有容器),否则将无法使用podman rmi或podman image rm来删除容器镜像。
在容器中运行命令
podman exec命令在已经运行的容器内启动额外的进程
podman exec containerID cmd
-i和-t选项以打开交互式会话,并为shell分配伪终端
podman exec -it containername /bin/bash
-l选项替换最新的podman命令中前一个容器的ID或名称。
podman exec -l cmd