Docker基础命令

文章目录

  • [1. 镜像的基本命令](#1. 镜像的基本命令)
    • [1.1. 帮助命令](#1.1. 帮助命令)
    • [1.2 查看镜像](#1.2 查看镜像)
    • [1.3 搜索镜像](#1.3 搜索镜像)
    • [1.4 下载镜像](#1.4 下载镜像)
    • [1.5 删除镜像](#1.5 删除镜像)
  • [2. 容器的基本命令](#2. 容器的基本命令)
    • [2.1 启动容器](#2.1 启动容器)
    • [2.2 查看容器](#2.2 查看容器)
    • [2.3 退出容器](#2.3 退出容器)
    • [2.4 进入、启动和停止容器](#2.4 进入、启动和停止容器)
    • [2.5 删除容器](#2.5 删除容器)
  • [3. 其他常用命令](#3. 其他常用命令)
    • [3.1 后台启动容器](#3.1 后台启动容器)
    • [3.2 查看日志](#3.2 查看日志)
    • [3.3 查看容器中的进程信息](#3.3 查看容器中的进程信息)
    • [3.4 查看容器元数据](#3.4 查看容器元数据)
    • [3.5 容器中拷贝文件到主机](#3.5 容器中拷贝文件到主机)

1. 镜像的基本命令


1.1. 帮助命令

bash 复制代码
# 查看版本
docker version

# 查看详细信息,包括镜像和容器数量
docker info

1.2 查看镜像

bash 复制代码
# 查看镜像信息
docker images

# 查看镜像id
docker images -q

1.3 搜索镜像

bash 复制代码
# 不一定能搜索成功,但是可以直接下载
docker search mysql

# 过滤镜像,搜索镜像收藏数量大于3000
docker search mysql --filter=STARTS=3000

1.4 下载镜像

bash 复制代码
# 下载最新版
docker pull mysql

# 指定版本
docker pull mysql:5.7

1.5 删除镜像

bash 复制代码
# 通过id删除指定镜像,其中-f表示删除该镜像的全部信息
docker rmi -f 5107333e08a8

# 如果删除多个镜像,则id之间利用空格分开
docker rmi -f 镜像id1 镜像id2 镜像id3

# 删除全部镜像
docker rmi -f $(docker images -aq)

2. 容器的基本命令


说明:有了镜像才可以下载容器

bash 复制代码
docker pull centos:7

2.1 启动容器

bash 复制代码
docker run [可选参数] image

# 参数说明
    --name "Name"   容器名字,用来区分容器
    -d      后台方式运行
    -it     使用交互方式运行,进入容器查看内容
    -p      指定容器的端口     -p 8080:8080
        -p  ip:主机端口:容器端口
        -p  主机端口:容器端口(常用)
        -p  容器端口
        容器端口
    -p      随机指定端口

# 指定id,以交互的方式启动并进入容器
docker run -it 容器id /bin/bash

# 如果不指定id,则需要指定容器的名称和版本
docker run -it centos:7 /bin/bash

2.2 查看容器

bash 复制代码
# 列出当前运行的全部容器
docker ps
	-a     # 查看运行过的所有容器
	-n=?	# 限制查看的容器数量,例如只查看一个,-n=1
	-q		# 只显示容器的编号

2.3 退出容器

bash 复制代码
# 直接退出,不会删除数据,只是退出
exit

# 容器不停止但退出
ctrl + P + Q

2.4 进入、启动和停止容器

bash 复制代码
# 指定id,开启一个新的终端,以交互的方式(-it)进入容器
docker exec -it 容器id /bin/bash

# 启动容器
docker start 容器id

# 重启容器
docker restart 容器id

# 停止容器
docker stop 容器id

# 结束容器
docker kill 容器id

2.5 删除容器

bash 复制代码
# 删除单个容器,不能删除正在运行的容器
docker rm 容器id

# 强制删除单个容器
docker rm -f 容器id

# 删除全部的容器
docker rm -f $(docker ps -aq)

3. 其他常用命令


3.1 后台启动容器

特别注意:如果以后台方式启动docker,此时利用docker ps会发现应用已经停止

bash 复制代码
# 以后台方式启动docker
docker run -d centos:7

这是因为docker容器后台启动,必须要有一个前台进程,如果没有,就会自动停止

  • -d后台适合运行不需要用户交互的服务(如 Web 服务器、数据库)
  • -it前台适合需要用户交互的场景(如调试、运行命令行工具)

3.2 查看日志

查看日志的前提是容器正在运行

bash 复制代码
# 显示全部日志
docker logs -ft 容器id

# 查看指定数量的日志
docker logs -ft --tail 10 容器id

3.3 查看容器中的进程信息

bash 复制代码
# 查看容器进程
docker top 容器id

3.4 查看容器元数据

bash 复制代码
# 查看容器的全部信息(环境信息,网络配置等...)
docker inspect 容器id

3.5 容器中拷贝文件到主机

bash 复制代码
# 主机运行拷贝命令,可将容器中文件拷贝到主机上
docker cp 容器id:文件地址 主机地址

# 将容器中的文件夹拷贝到主机中
docker cp 0fa7e2554ce9:/home/hello.txt ./
相关推荐
EatFans几秒前
Docker 实战部署:从本地镜像到云服务器,一篇走通 FastAPI + Celery + MySQL + Redis + Nginx
docker·fastapi
乱码三千18 分钟前
如何优雅地直连无公网 IP 的远程 GPU 服务器
linux·人工智能·程序员
yunwei3719 分钟前
使用 eBPF 跟踪 Nginx 请求
linux·后端·性能优化
yunwei3719 分钟前
使用 eBPF 跟踪 MySQL 查询
linux·后端·性能优化
yunwei3720 分钟前
eBPF 示例教程:使用 XDP 捕获 TCP 信息
linux·后端·性能优化
judezh21 分钟前
api 容器一直 unhealthy?我把一个 Agent 运行时的健康检查逐条拆了,查出四个问题
运维·docker
GeW24 分钟前
制造业高端化,为什么必须重估Linux和数据库?
linux
暗不需求26 分钟前
Docker 入门:从「光盘与 DVD」到全栈项目容器化实战
docker·容器·面试
GeW32 分钟前
工业场景中的Linux与数据库选型:高端化转型的技术底座
linux
春天花会开13132 分钟前
内网 HTTPS 部署实战:私有 CA + Nginx 反向代理全流程复盘
运维·nginx·https