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 ./
相关推荐
cui__OaO43 分钟前
Linux软件编程--线程
linux·开发语言·线程·互斥锁·死锁·信号量·嵌入式学习
小狗爱吃黄桃罐头44 分钟前
正点原子【第四期】Linux之驱动开发篇学习笔记-1.1 Linux驱动开发与裸机开发的区别
linux·驱动开发·学习
小晶晶京京1 小时前
day34-LNMP详解
linux·运维·服务器
画个太阳作晴天1 小时前
A12预装app
linux·服务器·前端
fengyehongWorld2 小时前
Linux crontab定时任务
linux·运维
shuangrenlong2 小时前
ubuntu更新chrome版本
linux·chrome·ubuntu
碎像2 小时前
Linux上配置环境变量
linux·运维·服务器
40kuai3 小时前
kubernetes中数据存储etcd
容器·kubernetes·etcd
敲上瘾3 小时前
Linux系统cgroups资源精细化控制基础
linux·测试工具·docker·压力测试·cgroups
起个昵称吧4 小时前
线程相关编程、线程间通信、互斥锁
linux·算法