需要下载(docker)[https://www.docker.com/] 下载docker步骤忽略

本文默认下载好了docker容器

  • vue创建项目忽略,直接拿到打包的文件dist
  • vue 打包制作docker镜像_nginx

  • 编写Dockerfile的文件

dist 文件需要启动一个服务才可以跑起来项目,这里docker就是起了一个服务,所以你不需要node的image了
COPY 吧当前dist的文件 复制到 docker的nginx文件夹里面
这里还可以写nginx.conf 可是通过Copy来实现(此方式可以用域名来访问)

# 设置基础镜像 
FROM nginx:latest

# 将dist文件中的内容复制到 /usr/share/nginx/html/ 这个目录下面
COPY dist/  /usr/share/nginx/html/
  • 打包镜像
// -t 指定了镜像名为test-docker
// . 代表着当前目录
docker build -t test-docker .

vue 打包制作docker镜像_docker_02

  • 查询docker的镜像
docker image ls
  • 运行当前的容器
//-d 后台运行容器,并返回容器ID
docker run -p 4444:80 -d test-docker
  • 查询docker的运行的容器
docker ps
  • 访问项目

其他命令

  1. 查看docker版本
```
 docker version
 docker info
 ```
  1. image(镜像)
  • Docker 把应用程序及其依赖,打包在 image 文件里面。只有通过这个文件,才能生成 Docker 容器
  • image 文件可以看作是容器的模板
  • Docker 根据 image 文件生成容器的实例
  • 同一个 image 文件,可以生成多个同时运行的容器实例
  • 一个 image 文件往往通过继承另一个 image 文件,加上一些个性化设置而生成

命令

含义

案例

images

查看全部镜像

docker image ls

search

查找镜像

docker search [imageName]

pull

拉取镜像

docker pull [imageName]

rmi

删除镜像

docker rmi [imageName]

  1. 查看镜像

字段

含义

REPOSITORY

仓库地址

TAG

标签

IMAGE_ID

镜像ID

CREATED

创建时间

SIZE

镜像大小

  1. 拉取镜像 (imageName: 镜像名称)
docker pull  [imageName]

5进入某个容器(imageid: 镜像ID)

docker exec -it [imageid] bash
  1. 删除某个镜像无法删除(因为你他还在运行)

执行如下命令: 827bb3a78cf1 这个是某个镜像的id

docker rmi 827bb3a78cf1

但是无法删除,报错信息如下

Error response from daemon: conflict: unable to delete 827bb3a78cf1 (must be forced) - image is being used by stopped container 9e2ea112ed4d

有个暴力的解决办法: (-f 强制删除)

docker rmi 827bb3a78cf1 -f

docker的启动的项目是带端口访问的,你可以 docker run -p 80:80 -d test-docker, 这样的你的80的端口就只能使用一个项目了,多项目就不适宜了,所有的我们还是docker run -p 4444:80 -d test-docker (4444 代表是对外,80是当前西项目docker的端口),我们通过域名访问前端如何使用nginx代理