1. 获取镜像
## 格式docker pull [选项] [仓库地址[:端口]/]仓库名[:标签]## 解释# 仓库地址:一般格式是:[:端口号],默认地址是Docker Hub# 仓库名:为两段式名称,即/,对于Docker Hub,如果不给用户名,默认为library## 示例docker pull ubuntu:16.04
2. 运行镜像
## 格式docker run [选项] 镜像 [命令] [参数...]## 示例docker run -it --rm ubuntu:16.04 bash## 示例解释# -it:这是两个参数,一个是-i,表示交互式操作,一个是-t表示终端# --rm:这个参数是说容器退出后随之将其删除# ubuntu:16.04: 这是指用ubuntu:16.04镜像为基础来启动容器。# bash:放在镜像名后的是命令,这里我们希望有个交互式shell,因此用的是bash## 运行镜像的参数有很多,可以使用docker run --help查看。
3. 列出镜像
## 列表包含了仓库名、标签、镜像id、创建时间及所占用空间docker image ls(效果等同于:docker images)## 仓库名、标签均为的镜像称为虚悬镜像(dangling image)docker image ls -f dangling=true(效果等同于:docker images -f dangling=true)## 虚悬镜像没有存在价值,可以随意删除,使用命令:docker image prune
延伸阅读:如何产生虚悬镜像?
1) 创建一个空文件夹(非必须),主要是为了避免构建时引入其他不必要的文件:
mkdir dockerspace
2) 进入新建的文件夹,并新建Dockerfile文件,内容如下:
FROM ubuntu:16.04
CMD echo "leisure.wang"
3) 构建镜像:docker build .
4. 查看镜像、容器、数据卷所占用的空间
docker system df
5. 删除本地镜像
## 格式docker image rm [选项] [ ...]等同于docker rmi [选项] [ ...]## 批量删除指定类型镜像# 删除所有仓库名为ubuntu的镜像docker image rm $(docker image ls -q ubuntu)## 删除某个镜像之前的镜像# 删除ubuntu:16.04之前的镜像,不包含ubuntu:16.04docker image rm $(docker image ls -q -f before=ubuntu:16.04)
6. 容器基本操作
## 列出所有的容器docker ps -a等同于docker container ps -a等同于docker container ls -a等同于docker container list -a## 启动已终止的容器docker start [选项] 容器1 [容器2...]等同于docker container start [选项] 容器1 [容器2...]## 停止容器docker stop [选项] 容器1 [容器2...]等同于docker container stop [选项] 容器1 [容器2...]## 重启容器docker restart [选项] 容器1 [容器2...]等同于docker container restart [选项] 容器1 [容器2...]## 删除所有已终止的容器docker container prune [选项]
7. 进入容器
## 格式docker exec [选项] 容器 命令 [参数...]## 示例docker exec -it 容器ID /bin/bash
8. 导出容器
docker export 容器id > 文件名.tar
9. 导入容器
## 可以使用docker import从容器快照文件中再导入为镜像cat 文件名.tar | docker import - 用户名/镜像名:标签## 也可以通过指定URL或者某个目录来导入docker import http://leisure.wang/imagerepo
10. 登录登出
## 登录docker login [选项] [仓库地址]## 登出docker logout [仓库地址]
11. 搜索镜像
docker search [选项] 镜像名
12. 对镜像重命名、重打标签
docker tag 源镜像[:标签] 目标镜像[:标签]
13. 推送镜像到仓库
## 命令格式docker push [选项] 镜像名[:标签]## 说明如果镜像名不包含仓库地址信息,则会推送至hub.docker.com域个人账户下仓库内,默认私有;如果镜像名包含了仓库地址信息,则会推送至指定仓库中。