-
的
Dockerfile
内容如下:FROM ubuntu:14.04 #基础的ubuntu环境
RUN apt-get -y update #更新软件
RUN apt-get -y install nodejs npm #安装Node.js和npm
RUN ln -s /usr/bin/nodejs /usr/bin/node #做软链接
RUN mkdir -p /var/log/nodeapp #在容器里面创建目录
ADD nodeapp /opt/nodeapp/ #将node应用放到容器/opt/nodeapp/下面
WORKDIR /opt/nodeapp #指定指定
RUN
、CMD
与ENTRYPOINT
命令的工作目录RUN npm install #安装/opt/nodeapp下面的package.json
VOLUME ["/var/log/nodeapp"] #授权可从容器访问的目录
EXPOSE 3000 #开放宿主机器的3000端口
ENTRYPOINT ["nodejs","server.js"] #运行/opt/nodeapp包下面的server.js文件
-
创建一个redis的基础Dockerfile文件
FROM ubuntu
RUN apt-get -y update
RUN apt-get install redis-server
VOLUME ["/var/lib/redis","/var/log/redis/"]
EXPOSE 6379
-
构建步骤2的镜像
docker build -t my/redis .
-
根据步骤3生成的
my/redis
镜像生成redis主服务器
,内容如下FROM my/redis
ENTRYPOINT ["redis-server","--logfile /var/log/redis/redis-server.log"]
-
构建步骤4的镜像
docker build -t my/redis_primary .
-
同样根据步骤3生成的
my/redis
镜像来生成redis从服务器
,内容如下FROM my/redis
ENTRYPOINT ["redis-server","--logfile /var/log/redis/redis-replica.log","--slaveof redis_primary 6379"]
-
docker build -t my/redis_replica .
-
运行
redis主服务器
,执行docker run -d --name redis_primary my/redis_primary
-
因为redis服务会将日志记录到文件而不是记录到标准输出,使用
docker logs redis_primary
查看不到任何输出.可以使用之前创建的/var/log/redis/redis-server.log
文件来查看该内容.键入docker run -ti --rm --volumes-from redis_primary ubuntu cat /var/log/redis/redis-server.log
,即使用ubuntu一次性容器查看redis主服务器的log -
运行
redis从服务器
,执行docker run -d --name redis_replica --link redis_primary:redis_primary my/redis_replica
-
这里通过
--link
来链接到redis主服务器
-
-
运行node容器,
多容器应用栈(node+主从redis)
最新推荐文章于 2025-01-15 13:53:51 发布