帮助命令

1
2
3
docker version # 显示 Docker 版本信息
docker info # 显示 Docker 的系统信息(包括镜像和容器数量)
docker 命令 --help # 万能命令

帮助文档

镜像命令

1
2
3
4
5
6
7
8
9
10
docker images # 查看所有本地的主机上的镜像
# REPOSITORY 为镜像的仓库
# TAG 镜像的 标签
# IMAGE ID 镜像的 id
# CREATED 镜像的创建时间
# SIZE 镜像的大小
``
# 可选项
-a, --all # 列出所有镜像
-q, --quiet # 只显示镜像的 id


DockerHub

搜索镜像

1
docker search mysql # 搜索镜像


1
docker search mysql --filter=STARS=3000 # 过滤,使得搜索出来的镜像 STARS 大于 3000

下载镜像

1
2
3
docker pull 镜像名字[:tag] # tag 可以加版本,默认是最新版
docker pull mysql # 等价于 docker pull docker.io/library/mysql:latest
docker pull mysql:5.7 # 指定版本下载

删除镜像

1
2
3
docker rmi -f 镜像ID # 删除指定镜像
docker rmi -f 镜像ID 镜像ID 镜像ID # 删除多个镜像
docker rmi -f $(docker images -aq) # 递归删除所有镜像

容器命令

有了镜像才可以创建容器。

下载一个 centos 的镜像

1
docker pull centos

新建容器并启动

1
2
3
4
5
6
7
8
9
10
11
docker run [可选参数] image
# 参数说明
--name="Name" 容器名字 tomcat01 tomcat02 来区分容器
-d 后台方式运行
-it 使用交互方式运行,进入容器查看内容
-p 指定容器端口 -p 8080:8080
-p ip:主机端口:容器端口
-p 主机端口:容器端口(常用)
-p 容器端口
容器端口
-P 随机指定端口

以交互界面方式进入 centos

1
docker run -it centos /bin/bash

退出容器

1
2
exit # 直接容器停止并且退出
Ctrl + P + Q # 容器不停止并退出

与主机目录比较

列出所有运行中容器

1
2
docker ps     # 查看运行中容器
docker ps -a # 查看运行过的容器

删除容器

1
2
3
docker rm -f 容器id              # 删除指定容器
docker rm -f $(docker ps -aq) # 删除所有容器
docker ps -a -q|xargs docker rm # 删除所有容器

启动和停止容器

1
2
3
4
docker start 容器id    # 启动容器
docker restart 容器id # 重启容器
docker stop 容器id # 停止容器
docker kill 容器id # 杀死容器

常用其它命令

后台启动容器

基于一个镜像创建并运行一个容器。

1
docker run -d 镜像名字

然而,当我们运行
1
2
3
docker run -d centos

docker ps

却发现 centos 停止了。

实际上,docker 容器使用后台运行,就必须要有一个前台进程,docker 发现没有应用,就会自动停止。

查看日志

1
docker logs -tf --tail number 容器ID

查看容器中进程信息

1
docker top 容器ID

查看容器的元数据

1
docker inspect 容器ID

进入当前正在运行的容器

1
docker exec -it 容器id bashShell


也可以使用

1
docker attach 容器id

两者区别在于
docker exec 进入容器后打开一个新的终端,可以在里面操作
docker attach 进入容器正在执行的终端,不会启动新的进程。

从容器内拷贝文件到主机上

1
docker cp 容器id:容器内路径 目的路径

总结