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
相关推荐
IvanCodes3 小时前
一、Docker:一场颠覆应用部署与运维的容器革命
docker·容器
栗子~~3 小时前
Milvus docker-compose 部署
docker·容器·milvus
椰汁菠萝4 小时前
ubuntu下免sudo执行docker
ubuntu·docker·免sudo
没有名字的小羊4 小时前
2.安装Docker
运维·docker·容器
xiezhr4 小时前
50 个常用 Docker 命令
运维·docker·容器
退役小学生呀10 天前
三、kubectl使用详解
云原生·容器·kubernetes·k8s
API开发10 天前
苹果芯片macOS安装版Homebrew(亲测) ,一键安装node、python、vscode等,比绿色软件还干净、无污染
vscode·python·docker·nodejs·openssl·brew·homebrew
程序员小潘10 天前
Kubernetes多容器Pod实战
云原生·容器·kubernetes
进击的码码码码N10 天前
Docker 镜像加速
运维·docker·容器
Q_w774210 天前
基于 Docker 的服务部署探索(Day 2)
运维·docker·容器