Docker 命令

1、启动命令
复制代码
# 启动docker
systemctl start docker
# 设置开机自启动
systemctl enable docker
# 重启
systemctl restart docker
# 停止docker
systemctl stop docker
# 开机不自启
systemctl disable docker
# 查看docker状态
systemctl status docker

# 查看docker概要信息
docker info

# 查看docker帮助文档
docker --help
docker cp --help
docker run --help
2、镜像命令

虚悬镜像:仓库名、标签都是<none>的镜像,俗称虚悬镜像(dangling image)。

images 子命令

描述:列出主机上的镜像

语法:docker images

  • -a:列出所有镜像(含历史镜像)
  • -q:只显示镜像ID
  • -f:过滤

描述:搜索镜像

语法:docker search 镜像名称

  • -f:过滤
  • --limit 数量:只展示前几项
pull 子命令

描述:拉取镜像

语法:docker pull 镜像名称 | 镜像名称:tag

复制代码
# 下载最新版的ubuntu
docker pull ubuntu
system 子命令

描述:查看镜像/容器/数据卷所占的空间

语法:docker system df

rmi 子命令

描述:删除镜像

语法:docker rmi 镜像名称

  • -f 强制删除

    删除单个镜像

    docker rmi 镜像名 | 镜像名:TAG

    删除多个镜像

    docker rmi -f 镜像名1:TAG 镜像名2:TAG

    删除所有镜像

    docker rmi -f $(docker images -qa)

3、容器命令
a. 启动容器

语法:docker run [options] image [command] [ARG...]

options

  • --name="容器新名字" 为容器指定一个名称
  • -d 后台运行容器并返回容器ID,也即启动守护式容器
  • -i 以交互模式(interactive)运行容器,通常与-t同时使用
  • -t: 为容器重新分配一个伪输入终端(tty),通常与-i同时使用。也即启动交互式容器(前台有伪 终端,等待交互)
  • -e: 为容器添加环境变量
  • -P 大P,随机端口映射。将容器内暴露的所有端口映射到宿主机随机端口
  • -p 小p,指定端口映射

|---------------------------------------------------------|------------------------------------|
| IP 映射方式 | 描述 |
| -p hostPort:containerPort | 端口映射 -p 8080:80 |
| -p ip:hostPort:containerPort | 配置监听地址 -p 10.0.0.1:8080:80 |
| -p ip::containerPort | 随机分配端口 -p 10.0.0.1::80 |
| -p hostPort1:containerPort1 -p hostPort2:containerPort2 | 指定多个端口映射,例如-p 8080:80 -p 8888:3306 |

复制代码
# /bin/bash(或者bash) shell交互的接口
docker run -it ubuntu /bin/bash

注意:Docker容器后台运行,就必须有一个前台进程.容器运行的命令如果不是那些一直挂起的命令(比如运行top,tail),就是会自动退出的。

复制代码
# 将服务放到后台启动
docker run -d redis
b. 查看运行容器

语法:docker ps [options]

  • -a 列出当前所有正在运行的容器+历史上运行过的容器

  • -l 显示最近创建的容器

  • -n 显示最近n个创建的容器

  • -q 静默模式,只显示容器编号

    查看所有正在运行的镜像

    docker ps

c. 退出进入

退出容器:

  • exit:run进去容器,exit退出,容器停止
  • ctrl+p+q:run进去容器,ctrl+p+q退出,容器不停止

进入容器:

复制代码
docker attach 容器ID

# 重新进入容器(使用 crtl方式退出后,容器没有停止可以重新进入)
docker exec -it 容器ID /bin/bash 	
  • attach 直接进入容器启动命令的终端,不会启动新的进程用exit退出,会导致容器的停止。
  • exec 是在容器中打开新的终端,并且可以启动新的进程用exit退出,不会导致容器的停止。
d. 重启停止
复制代码
docker start 容器ID或容器名		# 启动已停止的容器
docker restart 容器ID或容器名	# 重启容器
docker stop 容器ID或容器名			# 停止容器
docker kill 容器ID或容器名			# 强制停止容器
e. 删除容器
复制代码
docker rm		容器ID或容器名			# 删除已停止的容器
docker rm	-f	容器ID或容器名		# 强制删除正在运行的容器

# 一次性删除多个容器实例
docker rm -f $(docker ps -qa)
docker ps -a -q | xargs docker rm
f. 查看容器信息
  • docker logs 容器ID 查看容器日志
  • docker top 容器ID 查看容器性能
  • docker inspect 容器ID 查看容器内部细节
g. 导入导出

拷贝容器文件:docker cp 容器ID:容器内路径 目的主机路径

导出整个容器:docker export 容器ID > 文件名.tar

导入整个容器:docker import - 镜像用户/镜像名:镜像版本号

复制代码
# 备份容器中的文件
docker cp 731b3ba513ad:/opt/cp_con.txt /opt

# 将ubuntu 整个镜像导出
docker export 731b3ba513ad > ubuntu.tar
# 删除Ubuntu容器
docker rm -f 731b3ba513ad
# 导入unbutu的tar包
cat ubuntu.tar | docker import - atguigu/ubuntu:3.7
# 查看Ubuntu的容器ID
docker images
# 运行容器
docker run -it 7972ebb0b6a6 /bin/bash
相关推荐
江湖有缘26 分钟前
5款开源wiki知识库工具,支持Docker快速部署!
docker·容器·开源
云上飞476369622 小时前
Windows WSL2 + Docker 环境下NVIDIA PhysicsNeMo 安装指南
windows·docker·physicsai·physicsnemo
抓不住时间的沙2 小时前
N1搭建Hexo个人博客,部署到Github
python·docker·node.js·debian·github·arm
2401_834636993 小时前
保姆级 K8s 运维:RBAC 认证 + Dashboard+Local/NFS 动态卷实战
运维·容器·kubernetes
wsad05323 小时前
CentOS 10 上使用 Docker Compose 部署 Discuz X5.0 论坛完整教程
linux·docker·centos·discuz
BTU_YC15 小时前
Docker Compose 部署 DozerDB 完整教程
运维·docker·容器
流烟默15 小时前
Kubernetes 调度器完全指南:从原理到生产实战
云原生·容器·kubernetes
spencer_tseng17 小时前
[kylin & linux] install docker
linux·docker·kylin
流烟默19 小时前
Kubernetes Service 完全指南:从原理到生产实战
云原生·容器·kubernetes
airobotcn19 小时前
智能巡检平台容器化部署:Docker+K8s在工业边缘的实践
人工智能·docker·容器·kubernetes·机器人·自动化