【Docker】Docker常用命令
发表于:2025-03-13 12:06:22浏览:40次
一、启动类
1. 启动 docker
systemctl start docker
2. 关闭 docker
systemctl stop docker
3. 重新启动 docker
systemctl restart docker
4. docker 设置自启动
systemctl enable docker
5. 查看 docker 运行状态
systemctl status docker
6. 查看 docker 版本号等信息
docker version
或者
docker info
该命令还可以查看到有多少 容器及其状态 和 镜像 的信息
7. docker 帮助
docker --help // 查看总体文档
docker run --help // 查看docker run 的帮助文档
二、 镜像类
1. 查看镜像
docker images
2. 搜索镜像
docker search [OPTIONS] 镜像名字
docker search mysql
3. 拉取镜像
docker pull
docker pull mysql #没有制定版本则默认最新版
docker 官方镜像地址:https://hub.docker.com/search?type=image
4. 运行镜像
docker run
docker run tomcat
运行镜像后可以按 ctrl+c
退出
5. 删除镜像
docker rmi 镜像名/镜像ID #若镜像在运行则会报错
docker rmi -f 镜像名/镜像ID #强制删除一个
docker rmi -f mysql
docker rmi -f 镜像名/镜像ID 镜像名/镜像ID 镜像名/镜像ID #删除多个 其镜像ID或镜像用用空格隔开即可
docker rmi -f mysql redis
docker rmi -f $(docker images -aq)
#删除全部镜像 -a 意思为显示全部, -q 意思为只显示ID
6. 加载镜像
docker load -i 镜像保存文件位置
docker load myimage.tar
7. 保存镜像
docker save 镜像名/镜像ID -o 镜像保存位置和名字
docker save tomcat -o /myimage.tar
三、容器类
1. 查看正在运行的容器
docker ps
docker ps -a # 查看所有容器
#加格式化方式访问,格式会更加清爽
docker ps --format "table {{.ID}}\t{{.Image}}\t{{.Ports}}\t{{.Status}}\t{{.Names}}"
2. 创建容器
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
常用参数:
--name=NAME #为容器指定名字为NAME,不使用的话系统自动为容器命名
-d: 后台运行容器并返回容器ID,也即启动守护式容器(后台运行);
-i:以交互模式运行容器,通常与 -t 同时使用;
-t:为容器重新分配一个伪输入终端,通常与 -i 同时使用;
也即启动交互式容器(前台有伪终端,等待交互,一般连用,即-it);
-P: 随机端口映射,大写P
-p: 指定端口映射,小写p
# 创建并允许 Nginx 容器
docker run -d --name nginx -p 80:80 nginx
3. 启动守护式容器(后台运行)
docker run -d 容器名
docker run -d redis:6.0.8
4. 停止容器
docker stop 容器名
docker stop nginx
5. 启动容器
docker start 容器名
docker start nginx
docker restart 容器名
docker restart nginx
6. 进入正在运行的容器
docker exec -it 容器名 bashshell
docker exec -it nginx /bin/bash```
7. 停止容器
docker stop 容器名
docker stop nginx
8. 强制停止容器
docker kill 容器名
docker kill nginx
9. 删除容器
#删除一个
docker rm 容器ID
docker rm nginx
docker rm -f 容器ID #强制删除
docker rm -f nginx
#删除多个
docker rm -f $(docker ps -a -q)
或
docker ps -a -q | xargs docker rm
10. 查看容器日志
docker logs 容器名
docker logs nginx
11. 查看容器内运行的进程
docker top 容器名
docker top nginx
12. 查看容器内部细节
docker inspect 容器名
docker inspect nginx
13. 创建容器数据卷挂载
# 创建容器并指定数据卷,注意通过 -v 参数来指定数据卷
docker run -d --name nginx -p 80:80 -v html:/usr/share/nginx/html nginx
14. 查看数据卷
docker volume ls
15. 查看数据卷详情
docker volume inspect 数据卷名
docker volume inspect html
16. 删除数据卷
docker volume rm 数据卷名
docker volume rm html
四. 网络类
1. 查看网络
docker network ls
2. 创建网络
docker network create 网络名
docker network create hmall
3. 查看网络数据源
docker network inspect 网络名
docker network inspect hmall
4. 删除网络
docker network rm 网络名
docker nerwork rm hmall
五、 Docker compose
官方文档:基本语法
假设docker run 部署 mysql命令如下:
docker run -d \
--name mysql \
-p 3306:3306 \
-e TZ=Asia/Shanghai \
-e MYSQL_ROOT_PASSWORD=123 \
-v ./mysql/data:/var/lib/mysql \
-v ./mysql/conf:/etc/mysql/conf.d \
-v ./mysql/init:/docker-entrypoint-initdb.d \
--network hmall
mysql
那么用docker-compose.yml 文件定义就是:
version: "3.8"
services:
mysql:
image: mysql
container_name: mysql
ports:
- "3306:3306"
environment:
TZ: Asia/Shanghai
MYSQL_ROOT_PASSWORD: 123
volumes:
- "./mysql/conf:/etc/mysql/conf.d"
- "./mysql/data:/var/lib/mysql"
networks:
- new
networks:
new:
name: hmall
1. 查看帮助
docker-compose -h
2. 启动所有服务
docker-compose up
docker-compose up -d # 后台运行
3. 停止并删除容器、网络、卷、镜像。
docker-compose down
4. 进入容器实例内部
docker-compose exec yml里面的服务id
5. 展示容器
ocker-compose ps
6. 展示进程
docker-compose top
7. 查看容器输出日志
docker-compose logs yml里面的服务id
8. 检查配置
docker-compose config
docker-compose config -q # 检查配置,有问题才有输出
9. 启动服务
docker-compose start
10. 重启服务
docker-compose restart
11. 停止服务
docker-compose stop
六、 其他
1. 命令别名
# 修改/root/.bashrc文件
vi /root/.bashrc
内容如下:
# .bashrc
# User specific aliases and functions
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
alias dps='docker ps --format "table {{.ID}}\t{{.Image}}\t{{.Ports}}\t{{.Status}}\t{{.Names}}"'
alias dis='docker images'
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
#退出
exit
:wq
#执行命令使别名生效
source /root/.bashrc
猜你喜欢
- 【后端】Elasticsearch简介
- 1、Elasticsearch介绍1.1、什么是ElasticsearchElasticsearch是一个开源的分布式搜索和分析引擎,构建在Apache Lucene搜索引擎库之上,提供了一个分布式、多租户的全文搜索引擎,能够实时地存储、检索和分析大规模的数据。1.2、Elasticsearch特点(1)分布式架构:Elasticsearch采用分布式架构(2)实时搜索(3)多租户支持:可以在同一个集群中为不同的应用或用户提供服务。(4)文档存储:以文档为基本存储单元,每个文档都是一个JSON格
- 【HTTP】post为什么会发送两次请求
- 在浏览器中,内容是很开放的,任何资源都可以接入其中,如 JavaScript 文件、图片、音频、视频等资源,甚至可以下载其他站点的可执行文件。 但也不是说浏览器就是完全自由的,如果不加以控制,就会出现一些不可控的局面,例如会出现一些安全问题,
- 【Redis】Redis的主从复制和哨兵模式
- Redis 支持三种集群模式,分别为主从模式、哨兵模式和Cluster(集群)模式。 主从模式:从节点异步的从主节点复制数据,这种架构主节点故障后无法自动切主。类似于mysql的主从复制。 哨兵模式:该模式在主从复制基础上加了一个哨兵集群负责监控主节点和从节点。如果检测到主节点故障,系统可以自动将从节点晋升为新的主节点。实现了自动故障转移。类似于mysql的主从复制+MHA。 集群模式:主从模式面临内存容量和写入性能的限制,因为这种模式的写入能力仍然局限于单个节点。为了解决这一问题,Redis在3.x版本之后推出了Cluster集群模式。Cluster模式通过数据分片和节点的水平扩展,实现了更高效的内存利用和写入性能。类似于mysql的mycat分片。
- 【Node】Node.js 中的 process.cpuUsage() 方法
- rocess.argv()方法用于获取当前运行进程的用户及其CPU使用率。数据以具有 user 和 system 属性的对象返回。获得的值以微秒为单位,即10^-6秒。如果多个核心正在为正在运行的进程执行工作,则返回的值可能会大于实际运行的时间。语法process.cpuUsage([previousValue])登录后复制参数该方法仅接受下面定义的单个参数 -previousValue –这是一个可选参数。这是之前调用 process.cpuUsage() 方法的返回值。示例创建一
- 【Redis】如何解决 Redis 大 Key(Big Key)问题
- 1. 什么是大 Key? 大 Key(Big Key) 指的是 单个 Key 的数据量特别大,通常体现在: 单个 String 类型的 Key 存储了超长的内容(如超大 JSON、Base64 图片)。 单个 List/Set/Zset/Hash 存储大量元素,导致: 查询效率下降(一次查询数据过多)。 删除或过期开销大(删除一个 Key 可能会卡 Redis)。 主从复制或数据持久化时阻塞 Redis(大 Key 影响 RDB、AOF 复制)。
- 【Redis】Redis的持久化方式
- Redis是一个开源的高性能键值存储系统,它通常将数据存储在内存中以提供快速的读写操作。然而,当Redis实例关闭时,内存中的数据将丢失。为了解决这个问题,Redis提供了持久化功能,允许将数据存储到...
- 【后端】PHP、Python、Java 和 Go语言对比
- PHP、Python、Java 和 Go 都是流行的编程语言,每种语言都有其独特的优势和适用场景。下面是对这些语言的一些基本对比:一:PHP适用场景:主要用于Web开发,特别是服务器端脚本。特点:语法简单易懂,学习曲线平缓。与HTML结合紧密,适合快速开发小型到中型Web应用。性能:通常性能低于Java和Go,但在一些优化和缓存策略下也能达到不错的效果。生态系统:拥有庞大的社区和丰富的库/框架,如Laravel、thinkphp,Symfony等。优势:PHP语言开发的优势在于其开源免费、跨平台
- 【负载均衡】负载均衡是什么,负载均衡有什么作用
- 一、什么是负载均衡 负载均衡是一种在计算机网络和系统架构中使用的技术,用于均衡分发工作负载到多个资源,比如:服务器、计算节点或存储设备上,以提高系统的性能、可伸缩性。 在传统的单个服务器架构中,当请求量增加时,单个服务器可能无法处理所有的请求,导致性能下降或系统崩溃。 负载均衡技术通过将负载(请求)分发到多个服务器上,实现资源的合理利用,从而平衡服务器的负载。 这样可以提高系统的处理能力,增加并发处理能力,并减少单点故障的风险。
栏目分类全部>