一、原因
因为在学习尚硅谷 谷粒商场的部署篇的时候 学习kubernetes 但是电脑内存太小 无法支持最小化的kubernetes集群环境 萌生了自己手动打包部署的想法
二、开始部署正文
- 查看这篇文章的时候需要已经观看 bilibili尚硅谷课程的到部署篇的,需要准备以下软件
2.打包nginx 上传到阿里云镜像仓库(dockerHub也可以 但是没有科学上网网速过慢 使用
推送容器到阿里云有两个方案:
- 使用Dockerfile的方式
Dockerfile:
FROM nginx
MAINTAINER LEI.YU
ADD html.tar.gz /usr/share/nginx/html
ADD conf.tar.gz /etc/nginx
EXPOSE 80
ENTRYPOINT nginx -g "daemon off;"
- docker 运行导报命令
docker build -t gulimall_nginx:1.0 -f Dockerfile .
- 编写命令
使用已经在运行的docker容器 封装成镜像 如果打包上传到阿里云服务器
docker commit -a "作者" -m "简要说明" 容器ID 想要打包成的镜像名称:版本号
登入阿里云仓库方便推送镜像
然后就是登入阿里云的docker仓库:
docker login --username=墨风如吹雪 registry.cn-hangzhou.aliyuncs.com(最后的地址部分需要查看自己的阿里云镜像地址)
把已经打包的镜像 打包成tag
#给镜像打标签,格式必须为 “registry.cn-hangzhou.aliyuncs.com” 这个开头, “yl_hmbb” 换成你自己的 阿里云命名空间名称 即可,后面的 “yl-nginx:v1” 镜像名称和版本号 自行取名即可
docker tag [ImageId] registry.cn-hangzhou.aliyuncs.com/zp_gulimall/gulimall_nginx:1.0
#推送本地镜像上去
docker push registry.cn-hangzhou.aliyuncs.com/zp_gulimall/gulimall_nginx:1.0
#拉取相关镜像
docker pull registry.cn-hangzhou.aliyuncs.com/zp_gulimall/gulimall_nginx:1.0
启动制作好的gulimall相关docker镜像 不需要挂载目录 不然可能导致静态文件和配置不存在
启动镜像
docker run -p 80:80 --name gulimall_nginx \
-d registry.cn-hangzhou.aliyuncs.com/zp_gulimall/gulimall_nginx:1.0
如果打包的镜像里面需要包含自己配置的文件,可以在Dockerfile里面添加自己的文件打包,这样打包的文件再部署的时候就包含了自己的文件
FROM nginx:1.10 #官方镜像
MAINTAINER LEI.YU #创作者名称
ADD html.tar.gz /usr/share/nginx/html #把相关文件解压到容器的相关目录
ADD conf.tar.gz /etc/nginx #把相关文件解压到容器的相关目录
EXPOSE 80 #开放端口80
ENTRYPOINT nginx -g "daemon off;"
打包redis
先找到redis 挂载的conf文件 然后压缩
tar -zcvf conf.tar.gz ./
创建Dockerfile
FROM redis
MAINTAINER ZP
ADD conf.tar.gz /etc/redis
EXPOSE 6379
CMD ["redis-server","/etc/redis/redis.conf"]
运行Dockerfile
docker build -t gulimall_redis:1.0 -f Dockerfile .
打包tag
docker tag gulimall_redis registry.cn-hangzhou.aliyuncs.com/zp_gulimall/gulimall_redis:1.0
登入
docker login --username=墨风如吹雪 registry.cn-hangzhou.aliyuncs.com
查看所有的镜像
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
gulimall_redis 1.0 1a20b903132e 26 seconds ago 113MB
registry.cn-hangzhou.aliyuncs.com/zp_gulimall/gulimall_nginx 1.0 1ed8af55a899 21 hours ago 213MB
gulimall_nginx 1.0 1ed8af55a899 21 hours ago 213MB
openzipkin/zipkin latest 8911130146d1 6 months ago 155MB
redis latest 7614ae9453d1 6 months ago 113MB
rabbitmq management 6c3c2a225947 7 months ago 253MB
kibana 7.4.2 230d3ded1abc 2 years ago 1.1GB
elasticsearch 7.4.2 b1179d41a7b4 2 years ago 855MB
nginx 1.10 0346349a1a64 5 years ago 182MB
测试运行tag
docker run -p 6379:6379 --name gulimall_redis \
> -d registry.cn-hangzhou.aliyuncs.com/zp_gulimall/gulimall_redis:1.0
查看结果
docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f7a6656c950a registry.cn-hangzhou.aliyuncs.com/zp_gulimall/gulimall_redis:1.0 "docker-entrypoint.s…" 7 seconds ago Up 5 seconds 0.0.0.0:6379->6379/tcp gulimall_redis
142421759d08 registry.cn-hangzhou.aliyuncs.com/zp_gulimall/gulimall_nginx:1.0 "/bin/sh -c 'nginx -…" 21 hours ago Exited (137) 21 hours ago gulimall_nginx
ed8dea74eca4 rabbitmq:management "docker-entrypoint.s…" 7 days ago Exited (0) 21 hours ago rabbitmq
0ae77a67da19 openzipkin/zipkin "start-zipkin" 7 days ago Exited (143) 21 hours ago zipkin
d999b1a33107 elasticsearch:7.4.2 "/usr/local/bin/dock…" 7 days ago Exited (143) 21 hours ago elasticsearch
755bef29a9b6 kibana:7.4.2 "/usr/local/bin/dumb…" 7 days ago Exited (0) 21 hours ago kibana
9d3d48c6e26d redis "docker-entrypoint.s…" 7 days ago Exited (0) 7 days ago redis
0b466d7a1f36 nginx:1.10 "nginx -g 'daemon of…" 7 days ago Exited (0) 22 hours ago nginx
可以使用RDM 远程连接测试
最后推送阿里云镜像仓库
docker push registry.cn-hangzhou.aliyuncs.com/zp_gulimall/gulimall_redis:1.0
登入阿里云镜像仓库查看:
唯一要注意的是打包elasticsearch的时候需要ik分词器 所以需要进入容器拷贝到宿主机或者直接下载ik分词器的安装包和nginx和redis的一样 添加安装即可