Docker操做经常使用命令-镜像篇

获取镜像

docker pull [选项] [Docker Registry 地址[:端口号]/] 仓库名[:标签]

例:docker pull ubuntu:16.04html

具体选项可经过 docker pull --help 命名看到nginx

Docker Registry 默认为Docker Hub,地址格式为<IP/域名>
例:docker pull ubuntu:16.04web

运行容器

docker run 仓库名
以上面的Ubuntu为例,若是咱们打算启动里面的bash并进行交互式操做docker

docker run -it --rm ubuntu:16.04 bash
  • -it: 这是两个参数,一个是-i:交互式操做,一个是-t终端。咱们这里打打算进入bash执行一些命令并查看返回结果,所以咱们须要交互式终端
  • --rm: 这个参数会让容器退出后删除,用以免浪费空间
  • ubuntu:16.04: 以该镜像做为基础来启动容器
  • bash: 放在镜像后的是命令,这里咱们但愿有个交换式Shell\

想要进入正在运行的ubuntu容器并进行交互式操做:ubuntu

docker exec -it [id] bash

nginx镜像启动一个容器,命名为webserver,映射到80端口bash

docker run --name webserver -d -p 80:80 nginx

修改容器内容code

docker exec -it webserver bash
root@b7d21b2180ce:/# echo '<h1>Hello,world</h1>' > /usr/share/nginx/html/index.html
root@b7d21b2180ce:/# exit

此时咱们修改了容器的存储层,能够经过docker diff看到具体的改动
经过docker commit能够将容器保存为镜像(但并不推荐这样作)
docker commit [选项] <容器ID或容器名> [<仓库名>[:<标签>]]orm

列出镜像

docker image ls
  • 列出虚悬镜像docker image ls -f dangling=true
  • 删除虚悬镜像docker image prune
  • 列出包括中间层镜像在内的全部镜像docker image ls -a

镜像体积

docker system df

列出部分镜像

  • 根据仓库名docker image ls ubuntu
  • 列表项目根据时间

docker image ls -f since=ubuntu
docker image ls -f before=ubuntuserver

以特定格式显示

docker image ls --format "{{.ID}}:{{.Repository}}"
等间距显示
docker image ls --format "table {{.ID}}\t{{.Repository}}\t{{.Tag}}"

删除本地镜像

docker image rm [选项] <镜像1>[<镜像2>...]

其中,<镜像>能够是镜像ID镜像名镜像摘要htm

使用docker image ls命令配合

删除全部仓库名为hello-world的镜像:

docker image rm (docker image ls -q hello-world)

删除全部在ubuntu以前的镜像

docker image rm (docker image ls -q -f before=ubuntu)