Docker常用命令
Docker基本原理
- Docker是一个Client-Server结构的系统,Docker的守护进程(DockerServer中)运行在宿主机上,通过Socket从客户端访问
- DockerServer接收到Docker Client的指令,就会执行该命令

Docker为什么比虚拟机快
- Docker具有比虚拟机更少的抽象层
- Docker利用宿主机操作系统内核。虚拟机需要自己构成虚拟操作系统内核

Docker帮助命令
查看版本
查看信息
帮助命令
官方命令文档地址
https://docs.docker.com/reference/
镜像命令
docker images
查看所有本地镜像
| Name, shorthand | Default | Description |
|---|---|---|
--all , -a | Show all images (default hides intermediate images) | |
--digests | Show digests | |
--filter , -f | Filter output based on conditions provided | |
--format | Pretty-print images using a Go template | |
--no-trunc | Don’t truncate output | |
--quiet , -q | Only show numeric IDs |
docker images
结果列含义:
REPOSITORY——镜像仓库源(通过该名字下载和运行)TAG——镜像标签,版本信息IMAGE ID——镜像IDCREATED——镜像的创建时间SIZE——镜像的大小
docker images -q- 只显示镜像id
docker images -aq- 以ID形式显示所有镜像
docker search
我们可以去Docker Hub网站搜索镜像,也可以使用
docker search命令,搜索镜像
| Name, shorthand | Default | Description |
|---|---|---|
--automated | deprecated Only show automated builds | |
--filter , -f | Filter output based on conditions provided | |
--format | Pretty-print search using a Go template | |
--limit | 25 | Max number of search results |
--no-trunc | Don’t truncate output | |
--stars , -s | deprecated Only displays with at least x stars |
测试
docker search mysql查看STAR数大于3000的镜像
docker search mysql --filter=STARS=3000
docker pull
下载镜像
| Name, shorthand | Default | Description |
|---|---|---|
--all-tags , -a | Download all tagged images in the repository | |
--disable-content-trust | true | Skip image verification |
--platform | experimental (daemon)API 1.32+ Set platform if server is multi-platform capable | |
--quiet , -q | Suppress verbose output |
指定版本下载
- 下载Mysql 5.7
docker pull mysql:5.7root@ubuntu:/# docker pull mysql:5.75.7: Pulling from library/mysqlafb6ec6fdc1c: Pull complete0bdc5971ba40: Pull complete97ae94a2c729: Pull completef777521d340e: Pull complete1393ff7fc871: Pull completea499b89994d9: Pull complete7ebe8eefbafe: Pull complete4eec965ae405: Pull completea531a782d709: Pull complete10e94c02b508: Pull complete799a94b968ef: Pull completeDigest: sha256:5c9fd7949bc0f076429fa2c40d0e7406e095bdb5216a923257b31972a6f3ae4fStatus: Downloaded newer image for mysql:5.7docker.io/library/mysql:5.7分层下载,Digest为摘要,docker.io为真实地址
如果此时在下载Mysql 8.0,会发现很多层是公用的,就不用下载了
docker rmi
删除镜像remove image
- 可以根据镜像名(Repository属性)删除
- 可以根据镜像ID删除
| Name, shorthand | Default | Description |
|---|---|---|
--force , -f | Force removal of the image | |
--no-prune | Do not delete untagged parents |
删除所有镜像
$传递参数,查询所有镜像,递归删除docker rmi -f $(docker images -aq)删除多个镜像
docker rmi ID1 ID2 ID3
容器命令
必须有镜像才能创建容器,下载一个centos镜像来进行学习
docker run
新建并启动一个容器
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
常用参数:
--name——给容器起个名字-d——以后台方式运行-it——使用交互方式运行,进入容器查看内容-p——指定容器端口,可以设置宿主机映射
-p ip:主机端口:容器端口-p 主机端口:容器端口(常用)-p 容器端口-P——随即指定端口
测试——运行刚才下载的centos镜像
-it——使用交互方式centos——镜像名/bin/bash——指定控制台docker run -it centos /bin/bash终端回显
root@ubuntu:/# docker run -it centos /bin/bash[root@a662d700eebd /]#
root@a662d700eebd说明已经进入容器了,进入了我们刚才现在的centos操作系统
- 退出
exit
- 退出但不停止容器
快捷键
ctrl + p + q
docker ps
- 查看当前运行容器
docker ps
- 查看曾经运行过的容器
-adocker ps -a运行后可以看到我们运行过的
hello-world和centos镜像
- 显示最近创建的容器
-n
- 显示最近创建的一个容器
docker ps -a -n=1
- 只显示容器编号
-q
- 显示所有容器编号
docker ps -aq
docker rm
- 删除容器
docker rm 容器Id
- 删除全部容器
docker rm -f $(docker ps -aq)使用管道符
|删除docker ps -a -q | xargs docker rm
docker start
启动一个停止的容器
docker start 容器id重启一个容器
docker restart 容器id
docker stop
停止一个正在运行的容器
docker stop 容器id
docker kill
暴力杀死一个容器
docker kill 容器id
常用其他命令
docker run -d *
后台启动容器
通过
docker run -d 镜像,使用docker ps发现后台容器停止了
警告
docker容器使用后台运行,必须要有一个前台进程,否则docker发现没有应用就会自动停止
docker logs
查看docker日志
查看最后十条10日志
-t时间戳;-ffollow格式化docker logs -tf --tail 10 31df4ec1492a
docker top
查看容器容器中的进程信息
docker top 容器id
docker inspect *
查看容器内部元数据
docker inspect 容器id
docker exec *
进入一个容器,
-it以交互模式进入;/bin/bash指定控制台docker exec -it 容器id /bin/bash
docker attach *
进入一个容器
docker attach 容器id /bin/bash正在执行当前的代码
docker exec和docker attach的区别
docker exec——进入容器后,开启一个新终端,可以执行命令docker attach——进入容器正在执行的终端
docker cp
从容器内拷贝文件到宿主机上
docker cp 容器id:容器内路径 目标主机路径
Docker 命令图

Mac Iterm2 配合 Docker 在当前路径生成 ubuntu 容器环境
- 在使用
zshshell 的情况下,使用编辑~/.zshrc文件,添加三个函数即可