本文记录 docker 离线部署前端镜像中的命令
镜像打包
1.拉取前端镜像
docker pull <registry-url>/<namespace>/<image-name>:<tag>
2.将镜像打包为tar文件
`docker save -o frontend_版本号.tar frontend:版本号`
加载镜像包
进入离线环境,将tar包加载为镜像
docker load -i frontend_版本号.tar
加载后可以通过docker images 查看镜像id
启动容器
镜像加载后,可以启动该容器:
docker run --name frontend -p 80:80 \
-v /etc/nginx/conf.d:/etc/nginx/conf.d:ro \
-d [frontend 镜像id]
-p: 映射容器端口到主机端口,格式为<主机端口>:<容器端口> -d: 后台运行 -v: 挂载卷,此处挂载配置文件
容器启动后就可以通过外部ip访问该ng服务了。
nginx配置文件
一般前端镜像会带一个nginx,如果有一些转发的配置项,可以通过挂载卷的方式挂载nginx配置文件:
提前准备好nginx配置文件,上面demo中,将ng配置放到了主机的/etc/nginx/conf.d/default.conf中。
server {
listen *:80;
server_name *.bressanone.fun;
client_max_body_size 1G;
location / {
root /dist/;
index index.html index.htm;
try_files $uri $uri/ /index.html;
gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.1;
gzip_comp_level 9;
gzip_types text/plain application/x-javascript application/json text/css text/javascript application/x-httpd-php image/jpeg image/gif image/png application/javascript;
gzip_vary on;
}
location ^~/api/ {
proxy_pass http://后端服务/api/;
proxy_connect_timeout 60s;
proxy_read_timeout 120s;
proxy_send_timeout 120s;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto http;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $http_host;
}
}
进入容器
可以通过 exec命令进入容器
docker exec -it frontend /bin/bash