Linux Docker项目镜像备份

Linux Docker项目镜像备份

一、Linux环境
[root@iZ2zee5pmjzva2brpxewopZ ~]# cat /proc/version
Linux version 3.10.0-1160.80.1.el7.x86_64 (mockbuild@kbuilder.bsys.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC) ) #1 SMP Tue Nov 8 15:48:59 UTC 202

CentOS7

二、后端项目打包

​ 首先学习:(342条消息) [4] docker容器打包成镜像、镜像备份、镜像迁移(恢复)、发布到阿里云仓库_docker 容器打包成镜像_danxiao898的博客-CSDN博客

  1. 首先停止容器

    docker stop containerId
    docker 
    
  2. 打包容器成为镜像

    docker commit [-m="提交的描述信息"] [-a="创建者"] 容器名称|容器ID 生成的镜像名[:标签名]
    docker commit -m='db202208project-backend' -a='xxxxxxxxx' db956882fe6c dbbackend:centos7.0
    
  3. 将镜像打包成tar文件

    docker save -o 保存的PathName 镜像名:标签
    docker save -o ./db202208projectbackend.tar dbbackend:centos7.0
    
  4. 测试打包后的镜像是否能够正常执行

    docker run -it --name=[容器名|tag] -p 8987:8987  imageId /bin/bash
    

    端口映射一定要写 -p 8987:8987

  5. 对有目录/文件映射的容器的处理

    针对映射了宿主机的文件/目录的容器,在打包成镜像时,映射文件/目录并不会被打包进去。
    针对这种情况提供两种解决方案:

    1.直接将原来的映射目录/文件拷贝进容器后再打包。

    docker cp 要拷贝的文件或目录 容器ID或容器名称:要拷贝到的容器内部位置
    docker cp /data/redis 390f1c5b6f40:/
    docker exec -it 390f1c5b6f40 /bin/bash # 检查是否打包进去了
    

    2.对外提供镜像时,把映射文件一起提供出去。当运行镜像时,指定映射关系。

    本次打包redis的时候把redis配置文件和数据一同放在/redis文件下下面了

    .   .dockerenv	boot  dev  home  lib64	mnt  proc   root  sbin	sys  usr
    ..  bin		data  etc  lib	 media	opt  redis  run   srv	tmp  var
    
    docker commit -m='dbproject-redis-202208' -a='xxxxxxxxx' 390f1c5b6f40 dbproject-reids:redis1.0
    docker save -o ./dbproject_2022_08_redis.tar 8eb50703292f
    

    启动的时候注意-p 6379:6379的端口映射

  6. 数据库数据表的导出操作

  7. CentOS7下安装nginx

    1. yum install -y nginx

    2. 启动nginx nginx 如果没有报错,则启动成功

    3. 设置配置文件:路径:/etc/nginx/nginx.conf

      # For more information on configuration, see:
      #   * Official English Documentation: http://nginx.org/en/docs/
      #   * Official Russian Documentation: http://nginx.org/ru/docs/
      
      user nginx;
      worker_processes auto;
      error_log /var/log/nginx/error.log;
      pid /run/nginx.pid;
      
      # Load dynamic modules. See /usr/share/doc/nginx/README.dynamic.
      include /usr/share/nginx/modules/*.conf;
      
      events {
          worker_connections 1024;
      }
      
      http {
          log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                            '$status $body_bytes_sent "$http_referer" '
                            '"$http_user_agent" "$http_x_forwarded_for"';
      
          access_log  /var/log/nginx/access.log  main;
      
          sendfile            on;
          tcp_nopush          on;
          tcp_nodelay         on;
          keepalive_timeout   65;
          types_hash_max_size 4096;
      
          include             /etc/nginx/mime.types;
          default_type        application/octet-stream;
      
          # Load modular configuration files from the /etc/nginx/conf.d directory.
          # See http://nginx.org/en/docs/ngx_core_module.html#include
          # for more information.
          include /etc/nginx/conf.d/*.conf;
      
          server {
              listen       80;
              listen       [::]:80;
              server_name  _;
              root         /usr/share/nginx/html;
      
              # Load configuration files for the default server block.
              include /etc/nginx/default.d/*.conf;
              location /api/ {
                  proxy_set_header Host $host;
                  proxy_set_header X-Real-IP $remote_addr;
                  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                  proxy_pass http://localhost:8987/;
             }
              error_page 404 /404.html;
              location = /404.html {
              }
      
              error_page 500 502 503 504 /50x.html;
              location = /50x.html {
              }
              
          }
      
      # Settings for a TLS enabled server.
      #
      #    server {
      #        listen       443 ssl http2;
      #        listen       [::]:443 ssl http2;
      #        server_name  _;
      #        root         /usr/share/nginx/html;
      #
      #        ssl_certificate "/etc/pki/nginx/server.crt";
      #        ssl_certificate_key "/etc/pki/nginx/private/server.key";
      #        ssl_session_cache shared:SSL:1m;
      #        ssl_session_timeout  10m;
      #        ssl_ciphers HIGH:!aNULL:!MD5;
      #        ssl_prefer_server_ciphers on;
      #
      #        # Load configuration files for the default server block.
      #        include /etc/nginx/default.d/*.conf;
      #
      #        error_page 404 /404.html;
      #            location = /40x.html {
      #        }
      #
      #        error_page 500 502 503 504 /50x.html;
      #            location = /50x.html {
      #        }
      #    }
      
      }
      
    4. dbproject_frontend.tar 解压到 /var/share/nginx/html目录下

    5. 重启nginx即可

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值