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 [容器名]
2
3
4
# 容器详情
docker inspect [容器名]
# 镜像
# 列举
docker images
# 删除
docker rmi [镜像id或tag]
docker rmi $(docker images | grep "none" | awk '{print $3}')
使用 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
# 磁盘清理
docker system df
查看磁盘使用情况可通过执行
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
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>
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