一、原因

因为在学习尚硅谷 谷粒商场的部署篇的时候 学习kubernetes 但是电脑内存太小 无法支持最小化的kubernetes集群环境 萌生了自己手动打包部署的想法

二、开始部署正文

  1. 查看这篇文章的时候需要已经观看 bilibili尚硅谷课程的到部署篇的,需要准备以下软件

   2.打包nginx 上传到阿里云镜像仓库(dockerHub也可以 但是没有科学上网网速过慢 使用 

     推送容器到阿里云有两个方案:

  1. 使用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;"
  1.  docker 运行导报命令
docker build -t gulimall_nginx:1.0 -f Dockerfile .
  1. 编写命令

    使用已经在运行的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

登入阿里云镜像仓库查看:

使用 docker go 打包 docker打包项目_docker

 唯一要注意的是打包elasticsearch的时候需要ik分词器 所以需要进入容器拷贝到宿主机或者直接下载ik分词器的安装包和nginx和redis的一样 添加安装即可