操作均基于 CentOS 7.6 环境进行
- 使用了 yum 命令行安装
# 安装docker
yum -y install docker
# 启动docker
sudo systemctl enable docker
# 设置开机自启动
sudo systemctl enable docker
# 测试
docker run hello-world
- 更换 docker 源
vim /etc/docker/daemon.json
# 写入
{
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}
Docker 使用 Dockerfile 构建 redis 并挂载外部 redis.conf
- 在 docker 中拉取 redis 镜像
# 拉取redis
docker pull redis
- 创建编写 Dockerfile 文件
FROM redis:latest
MAINTAINER marco "wmxing97@foxmail.com"
COPY redis.conf /usr/local/etc/redis/redis.conf
CMD [ "redis-server", "/usr/local/etc/redis/redis.conf" ]
- 创建并配置 redis.conf
redis.conf 可以在网上复制,并且根据需要去修改
- 构建 docker 镜像
# 在Dockerfile所在的文件夹下
docker build -t = "redis:v1" .
此时,使用 docker images 命令就可以看到有一个新构建的镜像
- 运行 docker 镜像
docker run -p 6379:6379 -d redis:v1
Docker 安装 MySQL 5.7
- 使用网易加速节点拉取镜像
docker pull hub.c.163.com/library/mysql:5.7
- 重命名镜像
docker tag hub.c.163.com/library/mysql:5.7 mysql:5.7
- 运行 MySQL
docker run --name mysql-server -p 3306:3306 -d -e MYSQL_ROOT_PASSWORD=1997 mysql:5.7
- 进入容器并设置远程连接
docker exec -it mysql-server bash
mysql -uroot -p
mysql> grant all privileges on *.* to root@"%" identified by "1997" with grant option;
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '1997';
flush privileges;
- 重启容器
Docker 安装 zookeeper
- 拉取 zookeeper 镜像
docker pull wurstmeister/zookeeper
- 启动 zookeeper
docker run -d --name zookeeper -p 2181:2181 -t wurstmeister/zookeeper
Docker 安装 kafka
- 使用 docker-compose.yml 部署,首先是编写 docker-compose.yml
touch docker-compose.yml
vim docker-compose.yml
# 写入以下内容
version: '2.1'
services:
zookeeper:
image: wurstmeister/zookeeper
ports:
- "2181:2181"
kafka:
image: wurstmeister/kafka
ports:
- "9092:9092"
environment:
KAFKA_ADVERTISED_HOST_NAME: 152.136.98.68
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- 启动 kafka
docker-compose up -d
这里的 docker-compose 文件已经包含了 zookeeper,所以运行 docker-compose up -d 命令时,zookeeper 也会一起启动,所以不需要提前启动 zookeeper