Docker工作流

1。创建Dockerfile

#引用基本镜像
FROM node:18-alpine3.15 

#指定容器工作目录
WORKDIR /EGG

#将本机当前文件复制文件到镜像里面的EGG文件夹
COPY package.json .

#运行指令
RUN npm install

#复制其他文件到镜像
COPY . .

#暴露端口号
EXPOSE 3000

#运行应用命令,用数组表示
CMD ["node","app.js"]

2。创建 .dockerignore 把不想复制到镜像的文件和文件夹都写进去

node_modules
Dockerfile
.dockerigore

3。创建镜像 

docker build . 

4。查看镜像

docker images 

5。给镜像取名

docker tag 标签名 镜像名

6。登陆docker hub账号

docker login

7。推送镜像

docker  push 镜像名

8。创建镜像时命名

docker build -t  镜像名 .

9。删除镜像

docker rmi -f 镜像名

10。拉取镜像

docker pull

11。运行镜像

docker run -d -p 主机端口:容器端口 --name 定义名字  容器

12。显示运行的容器

docker ps

13。暂停容器

doccker stop 容器ID

14。与容器交互,/bin/shell  表示执行新的bash shell

docker  exec -it 镜像名 /bin/shell 

15。本地文件与容器内文件同步,:ro本地只读

docker run -d -v 本地文件夹绝对路径:容器文件夹路径:ro -v  不同步的容器文件夹 -p 主机端口:容器端口 --name 定义名字  容器

16.删除运行的容器

docker rm -fv 容器名

17. docker-compose.yml 批量控制多个容器

version:"3.8"
services:
  eggpain-container:
     build:.
     ports:"3000:3000"
     volumes:
         - ./:/egg:ro
         - /egg/node_modules

命令行窗口执行      docker-compose up -d --build

清除容器 docker-compose down -v