# Docker

# Docker windows desktop 安装

下载最新版,安装对应的 linux 镜像

# Docker desktop 目录修改

先创建一个文件夹叫 docker

script
# 导出 docker-desktop
wsl --export docker-desktop "D:\\docker\\docker-desktop.tar"
# 注销 docker-desktop
 wsl --unregister docker-desktop
# 导入 docker-desktop
wsl --import docker-desktop "D:\\docker\\wsl" "D:\\docker\\docker-desktop.tar" --version 2
# 导出 docker-desktop-data
wsl --export docker-desktop-data "D:\\docker\\docker-desktop-data.tar"
# 注销 docker-desktop-data
 wsl --unregister docker-desktop-data
# 导入 docker-desktop
wsl --import docker-desktop-data "D:\\docker\\wsl" "D:\\docker\\docker-desktop-data.tar" --version 2

# docker 部署 demo

# python 项目打包

# rquirements 生成
# 安装
python3 -m pip install pipreqs
# 在当前目录生成
pipreqs . --encoding=utf8 --force

# dockerfile 生成

touch Dockerfile.dockerfile

然后在里面写入

# syntax=docker/dockerfile:1
FROM python:3.8-slim-buster
WORKDIR /app
COPY requirements.txt requirements.txt
RUN pip3 install -r requirements.txt
COPY . .
CMD [ "python3", "-m" , "flask", "run", "--host=0.0.0.0"]

然后运行

script
docker build --tag python-docker .

# vue 项目打包 (按照官网的搞)

script
# 打包本地 vue 项目 会生成一个 dist 文件夹
npm run build

新建一个目录 存放 disk 文件夹,在该文件夹下创建 Dockerfile 文件以及 nginx.conf
Dockerfile:

user  nginx;
worker_processes  1;
error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;
events {
  worker_connections  1024;
}
http {
  include       /etc/nginx/mime.types;
  default_type  application/octet-stream;
  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;
  keepalive_timeout  65;
  server {
    listen       80;
    server_name  localhost;
    location / {
      root   /vue-docker;
      index  index.html;
      try_files $uri $uri/ /index.html;
    }
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
      root   /usr/share/nginx/html;
    }
  }
}

nginx.conf

FROM nginx
EXPOSE 80
COPY /dist /usr/share/nginx/html
ENTRYPOINT nginx -g "daemon off;"

然后直接运行

script
#-t 指定一个镜像的名字,譬如 nginx-image,注意最后的‘.’不能省略
docker build -t nginx-image .
script
# -p :配置端口映射,格式是外部访问端口:容器内端口
# -d :后台运行  
# --name : 给容器取名
# docker run -p 8089:80 -d --name [容器名字][镜像名字]
docker run -p 8099:80 -d --name vue-project nginx-image

# 容器推送

# 本地打包为 tar 然后直接上传
script
# 本地端
docker save -o centos.tar centos
# 服务器端
docker load -i  centos.tar

# 运行

script
# 最后一个指代的是包名
docker run -d -p 5000:5000 --name rest-server python-docker
Edited on

Give me a cup of [coffee]~( ̄▽ ̄)~*

Mr2 WeChat Pay

WeChat Pay