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博客
-
首先停止容器
docker stop containerId docker
-
打包容器成为镜像
docker commit [-m="提交的描述信息"] [-a="创建者"] 容器名称|容器ID 生成的镜像名[:标签名] docker commit -m='db202208project-backend' -a='xxxxxxxxx' db956882fe6c dbbackend:centos7.0
-
将镜像打包成tar文件
docker save -o 保存的PathName 镜像名:标签 docker save -o ./db202208projectbackend.tar dbbackend:centos7.0
-
测试打包后的镜像是否能够正常执行
docker run -it --name=[容器名|tag] -p 8987:8987 imageId /bin/bash
端口映射一定要写
-p 8987:8987
-
对有目录/文件映射的容器的处理
针对映射了宿主机的文件/目录的容器,在打包成镜像时,映射文件/目录并不会被打包进去。
针对这种情况提供两种解决方案: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
的端口映射 -
数据库数据表的导出操作
-
[mysql] mysqldump 导出数据库表 - snow__wolf - 博客园 (cnblogs.com)
mysqldump -u root -p movie > movies.sql mysqldump -u root -p weipiao > weipiao.sql # the password of the database is the same as what?
-
-
CentOS7
下安装nginx
-
yum install -y nginx
-
启动nginx
nginx
如果没有报错,则启动成功 -
设置配置文件:路径:
/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 { # } # } }
-
将
dbproject_frontend.tar
解压到/var/share/nginx/html
目录下 -
重启
nginx
即可
-