用于前端项目自动化部署,比较片面。
一、image镜像
- 下载镜像
docker pull <image-name>:<tag>
- 查看所有镜像
docker images
- 删除镜像
docker rmi <image-id>
- 纯净镜像源
docker image prune
- 上传镜像
docker push <username>/<repository>:<tag>
ps;如果docker images出现repository是的情况,可以运行docker image prune删除
二、container
- 启动容器
docker run -p xxxx:xxxx -v=hostPath:containerPath -d --name <container-name> <image-name>
- -p 端口映射
- -v 数据卷,文件映射
- -d 后台运行
- -- name 定义容器名称
- 查看所有容器
docker ps
,加-a
显示隐藏容器 - 停止容器
docker stop <container-id>
- 启动容器
docker start <container-id>
- 删除容器
docker rm <container-id>
,加-f
是强制删除 - 查看容器信息,如IP地址
docker inspect <container-id>
- 查看容器日志
docker logs <container-id>
- 进入容器控制台
docker exec -it <container-id> /bin/sh
三、功能演示
以nginx为例。
docker run -d -p 81:80 --name nginx1 nginx
四、Dockerfile
FROM node:14
# 临时创建工作文件夹
WORKDIR /app
# 将当前目录下的所有文件拷贝到/app下
COPY . /app
# 构建应用的一些步骤,安装依赖之类的,配置
RUN xxx
RUN npm set registry https://registry.npm.taobao.org
RUN npm install
# 启动容器,容器启动命令
# CMD xxx
CMD npm run start
# 环境变量
ENV K=v1
ENV NODE_ENV=v1
构建镜像
docker build -t react-project .
// . 指当前目录下
docker images
// 查看构建完成的镜像
docker run -p 8090:3000 -d --name xxx react-project
五、docker-compose
一个配置文件,启动所有的运行环境。在项目根目录下创建 docker-compose.yml 文件。
version: '3.1'
services:
reactProject:
build:
context: . # 当前目录
dockerfile: Dockerfile # 基于 Dockerfile 构建
image: react-project
container_name: react-project # docker容器的名字
ports:
- 8090:3000
mysql:
image: mysql # 原镜像`mysql:5.7`
container_name: test-mysql # 容器名为'mysql'
restart: always # 指定容器退出后的重启策略为始终重启
volumes: # 数据卷挂载路径设置,将本机目录映射到容器目录
- /Users/jason/my-project/mysql-data/logs:/var/log/mysql
- /Users/jason/my-project/mysql-data/data:/var/lib/mysql
- /Users/jason/my-project/mysql-data/conf:/etc/mysql
- /Users/jason/my-project/mysql-data/mysql-files:/var/lib/mysql-files
environment: # 设置环境变量,相当于docker run命令中的-e
# TZ: Asia/Shanghai
# LANG: en_US.UTF-8
MYSQL_ROOT_PASSWORD: xxx # 设置root用户密码
MYSQL_DATABASE: xxx
ports: # 映射端口
- 3306:3306
构建命令:
- 构建容器
docker-compose build <name>
- 启动所有的服务器
docker-compose up -d 后台启动
- 停止所有的服务
docker-compose down
- 查看所有的服务
docker-compose ps