Docker常用命令

# 容器

# 创建

docker run [镜像id或ta] --name[容器tag] -p [id]:[post]:[post]

挂载本地目录 -v [本地目录地址]:[容器目录地址] 命令要写在镜像前面,否则无效

创建临时容器 docker run -it --rm [镜像名] /bin/bash

  • -i: 交互式操作。
  • -t: 终端。
  • --rm: 容器停止后自动删除。

# 列举

查看运行中的docker ps

查看所有容器docker ps -a

# 停止

docker stop [容器id、name] 停止所有容器 docker stop $(docker ps -aq)

批量停止运行中的容器docker ps -a | awk '{print $1}'|xargs docker stop

# 删除

docker rm [容器id或tag]

  • 删除所有未运行的容器(已经运行的删除不了,未运行的就一起被删除了) docker rm $(docker ps -a -q)
  • 根据容器的状态,删除Exited状态的容器 docker rm $(docker ps -qf status=exited)
  • Docker 1.13版本以后,可以使用 docker containers prune 命令,删除孤立的容器。 docker container prune

# 更新容器配置

例如设置自动启动 docekr update --restart=always [容器id或name]

# 进入容器

docker exec -it [容器名] /bin/bash

  • -i: 交互式操作。
  • -t: 终端。

# 监控


docker stats

docker stats [容器名]
1
2
3
4

# 容器详情

docker inspect [容器名]

# 镜像

# 列举

docker images

# 删除

docker rmi [镜像id或tag]

 docker rmi $(docker images | grep "none" | awk '{print $3}')
1

使用 docker image prune 命令可以删除所有不使用镜像。

# 拉取镜像

docker pull [镜像名]

# 网卡

创建网卡 docker network create [网卡名] 查看网卡 docker network ls 查看网桥下的容器docker network inspect [网桥名]

# 数据卷

创建数据卷docker volume create [名称] 列举数据卷docker volume ls

查看数据卷信息docker volume inspect [名称]

# 状态监控

docker stats [容器名]

# Docker Compose

docker-compose.yml文件中可以编排多个容器

docker-compose -f [docker-compose文件名] [操作] [容器名]

文件名不写默认是docker-compose.yml

操作:pull build create start stop restart rm up down

# 磁盘清理

  1. docker system df 查看磁盘使用情况

  2. 可通过执行docker system prune 命令可用于清理磁盘,删除关闭的容器、无用的数据卷和网络,以及无tag的镜像

docker system prune -a命令清理更干净、彻底,可以将没有容器使用的Docker镜像都删掉

# 其他

# 监控镜像更新

docker run -d  \
    --name watchtower \
    --restart always \
    -v /var/run/docker.sock:/var/run/docker.sock \
    containrrr/watchtower  \
    --cleanup
1
2
3
4
5
6

# maven daoker插件生成镜像

pom.xml文件中添加插件

<plugin>
    <groupId>com.spotify</groupId>
    <artifactId>docker-maven-plugin</artifactId>
    <version>1.0.0</version>
    <configuration>
        <dockerHost>http://host.docker.internal:2375 </dockerHost>
        <imageName>${project.artifactId}</imageName>
        <baseImage>openjdk:8-jdk</baseImage>
        <workdir>/ROOT</workdir>
        <cmd>["java", "-version"]</cmd>
        <runs>
            <run>sed -i 's/deb.debian.org/mirrors.ustc.edu.cn/g' /etc/apt/sources.list</run>
            <run>apt-get update</run>
            <run>apt install tini</run>
        </runs>
        <entryPoint>["tini","java", "-jar", "${project.build.finalName}.jar"]</entryPoint>
        <resources>
            <resource>
                <targetPath>/ROOT</targetPath>
                <directory>${project.build.directory}</directory>
                <include>${project.build.finalName}.jar</include>
            </resource>
        </resources>
    </configuration>
</plugin>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25

构建镜像 mvn package docker:build -DskipTests

上次更新: 2025/01/08, 15:27:56
最近更新
01
docker-compose笔记
01-12
02
MySQL数据迁移
11-27
03
Docker部署服务,避免PID=1
11-27
更多文章>