Docker客户端
直接输入 docker 即可查看docker客户端的所有命令选项;
直接输入 docker command --help 可以更深入的看到各项命令的介绍
例如要看 stats 则 写为 docker stats --help
使用
- 获取容器,例如获取ubuntu镜像,则如下
docker pull ubuntu
- 使用 ubuntu 镜像启动一个容器,参数为以命令行模式进入该容器
docker run -it ubuntu /bin/bash
- 查看所有容器
docker ps -a
- 启动一个已经停止的容器
docker start 容器Id
- 在后台启动ubuntu,通过 -d 指定容器的运行模式
docker run -itd --name ubuntu-rn ubuntu /bin/bash
- 停止一个容器
docker stop 容器Id
- 停止的容器可以通过restart重启
docker restart 容器Id
- 进入容器,当使用 -d 通过后台的方式启动容器时,如果想要进入容器,可以使用
docker attach 容器Id
或
docker exec 容器Id
使用 attach 进入容器 ,在使用 exit 退出容器时,容器会随之停止,而使用 exec 则不会停止容器的运行,所以推荐使用 exec 进入容器
例如:
docker exec -it 243c32535da7 /bin/bash
更多详情记得使用 docker exec --help 查看
导入导出容器
- 导出本地的某个容器使用命令
docker export 容器Id > 名称.tar
- 导入容器快照
可以使用 docker import 从容器快照文件中再导入为镜像,以下实例将快照文件 ubuntu.tar 导入到镜像 test/ubuntu:v1
cat docker/ubuntu.tar | docker import - test/ubuntu:v1
也可以通过指定URL或者目录导入
docker import http://example.com/exampleimage.tgz example/imagerepo
- 删除容器
docker rm
例如:
docker rm -f 容器Id
清理掉所有处于停止状态的容器:
docker container prune
运行应用
尝试使用 docker 构建一个 web 应用程序
在docker容器中运行一个 Python Flask 应用来运行一个web应用
root@root:~# docker pull training/webapp # 载入镜像
root@root:~# docker run -d -P training/webapp python app.py
参数解析:
-d : 让容器在后台运行
-P : 将容器内部使用的网络端口随机映射到我们使用的主机上
查看WEB应用容器
- 查看正在应用的程序
docker ps
若应用的端口信息为
PORTS
0.0.0.0:22654->5000/tcp
Docker 开放了 5000 端口(默认 Python Flask 端口)映射到主机端口 32769 上,我们可以直接使用当前主机的 IP:22654 来访问应用
- 可以通过 -p 修改端口
例如:
docker run -d -p 5000:5000 training/webapp python app.py
使用 docker ps 查看可以看到多了一个5000端口的应用
容器内部的 5000 端口映射到我们本地主机的 5000 端口
- 直接查看某一容器的端口
docker port 容器Id或者容器名称
- 查看 WEB 应用程序日志
docker logs 容器Id或者名字
可以查看容器内部的标准输出
或者使用
docker logs -f 容器Id
-f : 让 docker logs 像使用 tail -f 一样来输出容器内部的标准输出
- 查看 WEB 应用程序日志
docker top 容器名
- 检查WEB应用程序
查看 Docker 的底层信息,返回一个 JSON 文件记录着 Docker 容器的配置和状态信息
docker inspect 容器名
- 停止WEB应用容器
docker stop 容器名
- 重启WEB应用容器
docker start 容器名
docker ps -l 查询最后一次创建的容器:
docker ps -l
正在运行的应用可以使用
docker restart 应用名
重启
- 移除WEB应用
删除时必须停止,否则报错
Error response from daemon: You cannot remove a running container 4ad43s15fv45gh56uki8t89d1ew65f561dbd64r645r. Stop the container before attempting removal or force remove
docker rm 应用名