目录
如何把 Docker 容器封装成镜像
背景:centos 容器中运行 nginx + rsyslog,另一容器运行 Kafka。centos 容器 rsyslog 无法向 Kafka 生产消息。
要将一个容器封装成一个镜像,你需要使用 Docker 提供的 docker commit
命令。这个命令会基于容器的当前状态创建一个新的镜像。
下面是使用 docker commit
命令的基本步骤:
1. 首先,确保你有一个正在运行的容器。你可以通过运行 docker ps
来查看当前运行的容器。
2. 使用 docker commit
命令创建镜像。命令的格式如下:
docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
其中:
-
[OPTIONS]
是可选的,可以用来指定新镜像的说明等信息。 -
CONTAINER
是要提交的容器的ID或名称。 -
[REPOSITORY[:TAG]]
是新镜像的名称和可选的标签。如果不指定标签,默认标签是latest
。
例如,如果你有一个名为 my_container
的容器,你想将它封装成名为 my_image
的镜像,并且标签为 v1.0
,你可以运行:
docker commit my_container my_image:v1.0
3. 运行命令后,使用 docker images
命令可以查看新创建的镜像。
下面是一个简单的例子:
# 创建并运行一个容器
docker run -d --name my_container ubuntu /bin/sh -c "while true; do echo hello world; sleep 1; done"
# 提交容器到镜像
docker commit my_container my_image:v1.0
# 查看创建的镜像
docker images
执行上述步骤后,你就会有一个包含了特定输出的镜像 my_image:v1.0
。
Docker 部署 Kafka 集群(mac)
1. 集群规划
hostname | ip addr | port | listener |
zook1 | 172.20.10.11 | 2183:2181 | |
zook2 | 172.20.10.12 | 2184:2181 | |
zook3 | 172.20.10.13 | 2185:2181 | |
kafka1 | 172.20.10.14 | 内部 9093:9093,外部 9193:9193 | |
kafka2 | 172.20.10.15 | 内部 9094:9094,外部 9194:9194 | |
kafka3 | 172.20.10.16 | 内部 9095:9095,外部 9195:9195 |
2. 创建网络
# 配合命令:
docker network create --driver bridge --subnet 172.20.10.0/25 --gateway 172.20.10.1 zk_network
如何在 Docker 中管理和配置容器的网络_怎么修改容器的网络-优快云博客
3. 编写 docker 文件
# zk-docker-comp