需要下载(docker)[https://www.docker.com/] 下载docker步骤忽略
本文默认下载好了docker容器
- vue创建项目忽略,直接拿到打包的文件dist
- 编写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 .
- 查询docker的镜像
docker image ls
- 运行当前的容器
//-d 后台运行容器,并返回容器ID
docker run -p 4444:80 -d test-docker
- 查询docker的运行的容器
docker ps
- 访问项目
其他命令
- 查看docker版本
```
docker version
docker info
```
- 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] |
- 查看镜像
字段 | 含义 |
REPOSITORY | 仓库地址 |
TAG | 标签 |
IMAGE_ID | 镜像ID |
CREATED | 创建时间 |
SIZE | 镜像大小 |
- 拉取镜像 (imageName: 镜像名称)
docker pull [imageName]
5进入某个容器(imageid: 镜像ID)
docker exec -it [imageid] bash
- 删除某个镜像无法删除(因为你他还在运行)
执行如下命令: 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代理