docker命令
1. 构建镜像:docker build
从Dockerfile构建Docker镜像
docker build -t [镜像版本] .
# 镜像名称或者版本格式不固定,按自己喜好来
# . 代表以当前目录开始构建
docker build app:v1 .
2. 运行容器:docker run
docker run -d -p [本机端口]:[容器端口] --name [容器名称] [镜像名称]
# -d:后台运行容器
# -p:端口映入,格式为:host_port:container_port
# --name:容器名称,默认不传则为镜像名称
# -it:交互式运行容器,分配一个伪终端
# --rm: 容器停止后自动删除容器
# -v:挂载卷,格式为:host_dir:container_dir
docker run -d -p 8080:80 --name appName app:v1
docker run -it --rm -p 8080:80 app:v1
3. 停止容器:docker start/stoprestart
docker start container_name
# -t,--time: 停止容器之前等待的秒数,默认10秒
docker stop container_id_or_name
# -t,--time: 重启容器之前等待的秒数,默认10秒
docker restart container_id_or_name
4. 删除容器:docker rm
docker rm <container_id_or_name>, 多个ID或者Name用空格分开
5. 删除镜像:docker rmi
docker rmi ubuntu:latest, 多个镜像空格分开
# 删除多个镜像
docker rmi ubuntu:latest nginx:latest
# 删除所有标签的镜像
docker rmi -a ubuntu
# 强制删除镜像
docker rmi -f ubuntu:latest
# 删除悬空的镜像
docker rmi -d
# 安静模式删除所有镜像
docker rmi -q $(docker images -q)
3. 查看运行的容器:docker ps
docker ps -a, 查看所有容器,包括停止容器
4. 查看镜像:docker images
docker images, 列出镜像
docker images -a, 列出所有镜像(包括中间层镜像)
5. 在容器内运行一个新命令:docker exec
docker exec -it my_container /bin/bash
Docker Compose命令
1. docker-compose down
停止所有服务
2. docker-compose up -d
重启服务,只启动新版本服务
3. docker-compose stop [service1]
停止单个服务
4. docker-compose rm [service1]
删除单个服务
YAML文件例子:
version: '3'
services:
web_app1:
image: web_app1:v0.2
container_name: web_app1
privileged: true
restart: always
ports:
- 8000:80
volumes:
- /home/web/logs/app1:/app/Logs
web_app2:
image: web_app2:v0.1
container_name: web_app2
privileged: true
restart: always
ports:
- 8001:80
volumes:
- /home/web/logs/app2:/app/Logs