帮助命令
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 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 2 3
| docker run -d centos
docker ps
|
却发现 centos 停止了。
实际上,docker 容器使用后台运行,就必须要有一个前台进程,docker 发现没有应用,就会自动停止。
查看日志
1
| docker logs -tf --tail number 容器ID
|
查看容器中进程信息
查看容器的元数据
进入当前正在运行的容器
1
| docker exec -it 容器id bashShell
|
也可以使用
两者区别在于
docker exec 进入容器后打开一个新的终端,可以在里面操作
docker attach 进入容器正在执行的终端,不会启动新的进程。
从容器内拷贝文件到主机上
1
| docker cp 容器id:容器内路径 目的路径
|
总结