Docker是一个开源的容器化平台,用于构建、部署和运行应用程序,在linux 环境中安装了 docker 后,自动安装了 docker composer 工具。以下是一些 Docker 及 Docker-composer 的常用命令及其示例,如果是 linux 环境,将命令中的 docker-composer 更换为 docker composer。
列出本地镜像
命令:docker images
示例:无额外参数,直接列出所有本地镜像。
2. 搜索镜像
命令:docker search [OPTIONS] 镜像名字
示例:docker search mysql 搜索Docker Hub上的MySQL镜像。
3. 拉取镜像
命令:docker pull [OPTIONS] NAME[:TAG|@DIGEST]
示例:docker pull nginx 从Docker Hub拉取最新版的nginx镜像。
4. 删除镜像
命令:docker rmi [OPTIONS] IMAGE [IMAGE...]
示例:docker rmi nginx 删除名为nginx的镜像(如果该镜像有正在运行的容器,则会报错)。
强制删除:docker rmi -f nginx
5. 构建镜像
命令:docker build [OPTIONS] PATH | URL | -
示例:docker build -t myimage . 使用当前目录下的Dockerfile构建名为myimage的镜像。
6. 保存和加载镜像
保存:docker save -o 保存的文件名 镜像名
加载:docker load -i 文件名
运行容器
命令:docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
示例:docker run -d -p 80:80 nginx 后台运行nginx容器,并将容器的80端口映射到主机的80端口。
2. 列出容器
列出正在运行的容器:docker ps
列出所有容器(包括停止的):docker ps -a
3. 停止容器
命令:docker stop [OPTIONS] CONTAINER [CONTAINER...]
示例:docker stop mycontainer 停止名为mycontainer的容器。
4. 启动容器
命令:docker start [OPTIONS] CONTAINER [CONTAINER...]
示例:docker start mycontainer 启动名为mycontainer的容器。
5. 重启容器
命令:docker restart [OPTIONS] CONTAINER [CONTAINER...]
示例:docker restart mycontainer 重启名为mycontainer的容器。
6. 删除容器
命令:docker rm [OPTIONS] CONTAINER [CONTAINER...]
示例:docker rm mycontainer 删除名为mycontainer的容器(需要先停止容器)。
强制删除:docker rm -f mycontainer
7. 进入容器
命令:docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
示例:docker exec -it mycontainer bash 进入名为mycontainer的容器并启动bash。
8. 查看容器日志
命令:docker logs [OPTIONS] CONTAINER
示例:docker logs mycontainer 查看名为mycontainer的容器的日志。
9. 查看容器内运行的进程
命令:docker top CONTAINER
示例:docker top mycontainer 查看名为mycontainer的容器内运行的进程。
查看Docker版本信息
命令:docker version
2. 登录Docker仓库
命令:docker login
3. 从Docker仓库推送镜像
命令:docker push [OPTIONS] NAME[:TAG]
示例:docker push myusername/myimage:latest
4. 清理无用的镜像、容器和卷
命令:docker system prune
5. 查看Docker网络和卷
网络列表:docker network ls
卷列表:docker volume ls
Docker Compose 是 Docker 的一个服务编排工具,它允许用户通过 YAML 文件来定义多个容器的应用服务,并通过单个命令来启动、停止和管理这些服务。
命令:docker-compose build
描述:根据 docker-compose.yml 文件中的配置,构建(或重新构建)服务所使用的镜像。
示例:docker-compose build(构建所有服务镜像)
命令:docker-compose up
描述:创建并启动所有服务的容器。默认情况下,它会根据 docker-compose.yml 文件中的配置来创建服务、网络、卷等。
选项:
-d:在后台运行容器。
--build:在启动容器之前先构建镜像。
<service_name>:仅启动指定的服务。
示例:
docker-compose up -d(以后台模式启动所有服务)
docker-compose up -d mysql(以后台模式仅启动 mysql 服务)
命令:docker-compose stop
描述:停止正在运行的容器,但不会删除它们。
选项:
-t:设置停止容器时的超时时间(默认为 10 秒)。
<service_name>:仅停止指定的服务。
示例:
docker-compose stop(停止所有服务)
docker-compose stop -t 5 mysql(在 5 秒后停止 mysql 服务)
命令:docker-compose restart
描述:停止并重新启动容器。
选项:
-t:设置停止容器时的超时时间(默认为 10 秒)。
<service_name>:仅重启指定的服务。
示例:
docker-compose restart(重启所有服务)
docker-compose restart web(重启 web 服务)
命令:docker-compose logs
描述:查看服务容器的输出日志。
选项:
-f:实时跟踪日志输出。
--no-color:不使用颜色来区分不同的服务输出。
<service_name>:仅查看指定服务的日志。
示例:
docker-compose logs(查看所有服务的日志)
docker-compose logs -f web(实时跟踪 web 服务的日志)
命令:docker-compose ps
描述:列出所有由 docker-compose 管理的容器及其状态。
示例:docker-compose ps
命令:docker-compose down
描述:停止并移除所有由 docker-compose 启动的容器、网络、卷和镜像(可选)。
选项:
--volumes:移除与 Compose 项目相关的所有卷。
--rmi:移除与服务相关的镜像(可选值为 all 或 local)。
示例:
docker-compose down(停止并移除所有容器、网络、卷)
docker-compose down --volumes --rmi all(停止并移除所有容器、网络、卷和镜像)
命令:docker-compose exec
描述:在已运行的容器中执行命令。
示例:docker-compose exec web bash(在 web 服务的容器中启动 bash)
命令:docker-compose run
描述:在指定服务上运行一个一次性命令,然后退出。
选项:
--rm:命令执行完成后自动移除容器。
-d:后台运行容器。
示例:docker-compose run --rm web python manage.py migrate(在 web 服务中运行迁移命令,执行完成后删除容器)