Appearance
docker 相关命令
- docker 常用命令
- docker-compose 常用命令
docker 常用命令
sh
# 构建镜像:例如构建一个 nginx:v3(镜像名称:镜像标签),最后的 . 代表本次执行的上下文路径 - $docker build -t nest-app-image .
$docker build -t nginx:v3 .
# 示例:运行一个nginx容器:--name参数(容器名为nginx_container)、-d参数(后台运行)、-p(宿主机IP:宿主机PORT:容器PORT)
$docker run -d --name nginx_container -p 9099:80 -v /data/nginx:/data nginx
# 列出镜像:查看打包好的镜像
$docker images
# 删除镜像:-f(强制移除镜像)
$docker rmi -f <image_name_or_id>
# 列出正在运行的容器
$docker ps
# 停止容器
$docker stop <container_name_or_id>
# 删除容器:-f(强制移除正在运行的容器)
$docker rm -f <container_name_or_id>
# 如果在运行过程中碰到端口冲突,可以尝试使用如下命令来停止并删除所有运行的容器
$docker rm -f $(docker ps -aq)
# 查看容器的日志
$docker logs <container_name_or_id>
# 实时查看日志
$docker logs -f <container_name_or_id>
# 进入容器的shell环境
$docker exec -it <container_name_or_id> /bin/bash
# 对空间进行自动清理
$docker system prune -a -f
# 查询 volume
$docker volume ls
DRIVER VOLUME NAME
local d3c24f4a36156f4cb410c4634dbfd496770830930d1f25357a9147bec7bdae73
local docker_yapi_mongodata
# 删除指定卷
$docker volume rm docker_yapi_mongodat
# 删除所有没有被使用的卷
$docker volume prune
# 备份数据
# windows下执行
$docker run --volumes-from mongo-yapi -v c:\backup:/backup ubuntu tar cvf /backup/backup.tar -C /data/db .
# mac下执行
$docker run --volumes-from mongo-yapi -v /Users/project/aboutdocker/backup/yapi:/backup ubuntu tar -cvf /backup/backup.tar /data/db
# 还原数据
# windows下执行
$docker run --volumes-from mongo-yapi -v c:\backup:/backup ubuntu bash -c "cd /data/db && tar xvf /backup/backup.tar -C /data/db "
# mac下执行
$docker run --volumes-from mongo-yapi -v /Users/project/aboutdocker/backup/yapi:/backup ubuntu tar -xvf /backup/backup.tar -C /
docker-compose 常用命令
sh
# 构建镜像:用于构建 docker-compose.yml 中定义的服务镜像,主要根据 build 部分的配置进行构建
$docker-compose build
# 不使用缓存构建服务
$docker-compose build --no-cache
# 关闭容器:停止所有服务
$docker-compose stop || true
# 启动已停止的服务
$docker-compose start
# 重启所有服务
$docker-compose restart
# 删除容器:停止并删除所有服务和网络。
$docker-compose down || true
# 启动定义在 docker-compose.yml 文件中的所有服务
$docker-compose up
# 启动并后台运行
$docker-compose up -d
# 启动并后台运行:指定文件(docker-compose-env.yml) 指定某个容器(mysql)
$docker-compose -f docker-compose-env.yml up -d mysql
# 查看所有服务的日志
$docker-compose logs
# 查看指定服务的日志:如下是查看nest-app容器的日志
$docker logs nest-app;
# 列出所有服务的状态
$docker-compose ps
# 在运行中的服务容器内执行命令
$docker-compose exec <service_name> <command>
# 在新容器中运行命令
$docker-compose run <service_name> <command>