(03)【Docker学习笔记】之 Docker容器使用
1.Docker客户端的使用
查看docker客户端的所有命令选项
$ docker
查看 docker命令的具体用法docker command --help 例如:
$ docker run --help
2.Docker容器的使用
如何获取镜像。若本地没有centos镜像,可以用 docker pull centos 命令 载入镜像。
用centos:7镜像启动一个容器,并以命令行模式进入该容器:
$ docker run -it centos:7 /bin/bash
查看所有docker 中所有的容器
$ docker ps -a
启动已停止运行的容器
$ docker start b750bbbcfd88
后台运行容器,加-d参数指定容器的运行模式
$ docker run -itd --name centos-test centos:7
154e98777bc07e08e84f1826c1bee95967bf45dc41fbed9ee78f4465cdb8f1a5
加了 -d 参数默认不会进入容器,想要进入容器需要使用指令 docker exec
停止一个容器
$ docker stop e4d63f49c9e3
重启一个容器
$ docker restart e4d63f49c9e3
进入容器。在使用-d参数时,容器启动后会进入后台,可用以下指令进入:
$docker attach 或 $docker exec
推荐使用 docker exec 命令,因为此退出容器终端,不会导致容器的停止。
attach命令使用方法:
$ docker attach 154e98777bc0 (注意: 如果从这个容器退出,会导致容器的停止。)
exec命令的用法:
docker exec -it 154e98777bc0 /bin/bash
注意: 如果从这个容器退出,不会导致容器的停止,这就是为什么推荐大家使用 docker exec 的原因。
导出容器:(导出容器154e98777bc0 快照到本地文件)
$ docker export 154e98777bc0 > centos-7.tar
导入容器快照:(使用 docker import 从容器快照文件中再导入为镜像)
$ cat docker/centos-7.tar | docker import - test/centos7:v1
此外,也可以通过指定 URL 或者某个目录来导入,例如:
$ docker import http://example.com/exampleimage.tgz example/imagerepo
删除容器:
$ docker rm -f 154e98777bc0
下面的命令可以清理掉所有处于终止状态的容器。
$ docker container prune
3.运行web应用
使用docker构建一个web应用程序。在docker容器中运行Python Flask应用来运行一个web应用。
$ docker pull training/webapp # 载入镜像
$ docker run -d -P training/webapp python app.py
4.查看Web应用容器
$docker ps
用-p参数设置端口
$ docker run -d -p 5000:5000 training/webapp python app.py
容器内部的 5000 端口映射到我们本地主机的 5000 端口上。
5.查看容器的网络端口的快捷方式
可以使用 docker port <容器ID> 或 docker port <容器NAMES>查看容器端口的映射情况。
6.查看Docker Web应用程序的日志
docker logs [D或NAMES] 查看容器内部的标准输出:
$ docker logs -f 154e98777bc0
-f: 让 docker logs 像使用 tail -f 一样来输出容器内部的标准输出。
7.查看Docker Web应用程序容器的进程
$ docker top <ID或NAMES>
8.检查Web应用程序
使用 docker inspect 来查看 Docker 的底层信息。它会返回一个 JSON 文件记录着 Docker 容器的配置和状态信息。
$ docker inspect <ID或NAMES>
9.停止Web应用程序
$ docker stop <ID或NAMES>
10.启动Web应用程序
$ docker start <ID或NAMES>
docker ps -l 查询最后一次创建的容器:
11.重启Web应用程序
$ docker restart <ID或NAMES>
11.移除Web应用程序
删除容器时,容器必须是停止状态,否则会报如下错误
$ docker rm <ID或NAMES>