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