获取镜像 docker pull
docker pull [选项] [Docker Registry 地址[:端口号]/]仓库名[:标签]
例如:docker pull ubuntu:16.05
运行镜像 docker run
docker run -it --rm ubuntu:16.04 bash
-it :这是两个参数,一个是 -i :交互式操作,一个是 -t 终端。
--rm :这个参数是说容器退出后随之将其删除。
ubuntu:16.04 :这是指用 ubuntu:16.04 镜像为基础来启动容器。
bash :放在镜像名后的是命令,这里我们希望有个交互式 Shell,因此用的是 bash 。
最后我们通过 exit 退出了这个容器
列出镜像
docker image ls
查看镜像、容器、数据卷所占用的空间
docker system df
库名、标签均为 的镜像称为 虚悬镜像(dangling image) ,显示这类镜像
docker image ls -f dangling=true
虚悬镜像删除
docker image prune
删除本地镜像
docker image rm [选项] <镜像1> [<镜像2> ...]
使用 docker image ls -q 来配合 docker image rm ,这样可以批量删除希望删除的镜像。
docker image rm $(docker image ls -q ubuntu) #删除所有仓库名为 ubuntu 的镜像
删除所有在 ubuntu:16.04 之前的镜像
docker image rm $(docker image ls -q -f before=ubuntu:16.04)
启动容器
docker run 例如:docker run ubuntu:16.04 /bin/echo 'Hello world'
启动已终止容器
docker container start 或者 docker start
启动一个 bash 终端,允许用户进行交互
docker run -t -i ubuntu:16.04 /bin/bash
-t 让Docker分配一个伪终端并绑定到容器的标准输入上, -i 则让容器的标准输入保持打开。 当利用 docker run 来创建容器时,Docker 在后台运行的标准操作包括:
- 检查本地是否存在指定的镜像,不存在就从公有仓库下载
- 利用镜像创建并启动一个容器
- 分配一个文件系统,并在只读的镜像层外面挂载一层可读写层
- 从宿主主机配置的网桥接口中桥接一个虚拟接口到容器中去
- 从地址池配置一个 ip 地址给容器
- 执行用户指定的应用程序
- 执行完毕后容器被终止
后台运行
- 如果不使用 -d 参数运行容器,比如 docker run hello-world 会把日志打印在控制台;
- 如果使用了 -d 参数运行容器,比如 docker run -d hello-world 不会输出日志,只会打印容器id(输出结果可以用 docker logs 查看)
容器是否会长久运行,是和 docker run 指定的命令有关,和 -d 参数无关。
停止运行的容器
可以使用 docker container stop 来终止一个运行中的容器。 终止状态的容器可以用 docker container ls -a 命令看到。 处于终止状态的容器,可以通过 docker container start 命令来重新启动。 此外, docker container restart 命令会将一个运行态的容器终止,然后再重新启动它。
进入容器
在使用 -d 参数时,容器启动后会进入后台,某些时候需要进入容器进行操作,使用 docker exec 命令可以进入到运行中。
exec 命令 -i -t 参数 docker exec 后边可以跟多个参数,这里主要说明 -i -t 参数。 只用 -i 参数时,由于没有分配伪终端,界面没有我们熟悉的 Linux 命令提示符,但命令执行结果仍然可以返回。当 -i -t 参数一起使用时,则可以看到我们熟悉的 Linux 命令提示符。
docker exec –it 容器ID /bin/bash
导出和导入容器
- 导出容器
docker export 容器ID > 导出文件名.tar
- 导入容器
- 可以使用 docker import 从容器快照文件中再导入为镜像
cat 导出文件名.tar | docker import - 镜像用户/镜像名:镜像版本
- 此外,也可以通过指定 URL 或者某个目录来导入
docker import http://study.163.com/image.tgz example/imagerepo
删除容器
使用 docker container rm 来删除一个处于终止状态的容器
docker container rm ubuntu:16.04
如果要删除一个运行中的容器,可以添加 -f 参数。Docker 会发送 SIGKILL 信号给容器
清理所有处于终止状态的容器
用 docker container ls -a 命令可以查看所有已经创建的包括终止状态的容器,如果数量太多要一个个删除可能会很麻烦,用下面的命令可以清理掉所有处于终止状态的容器。
docker container prune
docker cp(容器拷贝)
- copy宿主机文件到docker容器内
docker cp index.html mynginx:/usr/share/nginx/html/index.html
- copy容器内的文件到宿主机
docker cp mynginx:/usr/share/nginx/html/50x.html ./