本文已参与「新人创作礼」活动,一起开启掘金创作之路。
docker 学习
什么是docker
Docker是一种轻量级的虚拟化技术,是一个开源的用于开发、发布和运行应用程序的开放平台。Docker 使您能够将应用程序与基础架构分离,以便您可以快速交付软件。使用 Docker,您可以像管理应用程序一样管理基础设施。通过利用 Docker 快速交付、测试和部署代码的方法,您可以显着减少编写代码和在生产环境中运行之间的延迟。
docker的三个基本概念
- 镜像(Image):Docker 镜像(Image),就相当于是一个 root 文件系统。比如官方镜像 ubuntu:16.04 就包含了完整的一套 Ubuntu16.04 最小系统的 root 文件系统。
- 容器(Container):镜像运行起来就是一个容器。容器创建、启动、停止、删除、暂停等状态。
- 仓库(Repository):保存镜像的地方。
docker镜像加速
国内从 DockerHub 拉取镜像有时会遇到困难,此时可以配置镜像加速器。
Mac OS X
对于使用 Mac OS X 的用户,在任务栏点击 Docker for mac 应用图标-> Perferences...-> Daemon-> Registrymirrors。在列表中填写加速器地址 reg-mirror.qiniu.com 。修改完成之后,点击 Apply&Restart 按钮,Docker 就会重启并应用配置的镜像地址了。
docker命令
- 获取镜像
docker pull ubuntu
- 启动容器
docker run -it ubuntu /bin/bash
参数说明:
-i: 交互式操作。
-t: 终端。
ubuntu: ubuntu 镜像。
/bin/bash:交互式 Shell, 有时候 /sh或/bin/sh。
- 查看所有的容器
docker ps -a
- 启动一个已停止的容器
docker start a8dek36d9g00
- 后台运行
docker run -itd --name zj-test ubuntu /bin/bash
-d 指定容器的后台运行模式
- 停止一个容器
docker stop <容器 ID>
- 重启容器
docker restart <容器 ID>
- 进入容器
docker exec:
docker exec -it a8dek36d9g00 /bin/bash
注意: 如果从这个容器退出,不会导致容器的停止
- 删除容器
docker rm -f a8dek36d9g00
删除容器时,容器必须是停止状态
- 查看正在运行的容器
docker ps
- 设置不一样的端口
docker run -d -p 5000:5000 training/webapp python app.py
- 查看容器端口的映射情况
docker port a8dek36d9g00 或 docker port wizardly_chandrasekhar
- 查看 WEB 应用程序日志
docker logs -f a8dek36d9g00
- 查看 Docker 的底层信息
docker inspect wizardly_chandrasekhar
- 导出容器
docker export a8dek36d9g00 > ubuntu.tar
- 导入容器快照
可以使用 docker import 从容器快照文件中再导入为镜像,以下实例将快照文件 ubuntu.tar 导入到镜像 test/ubuntu:v1:
cat docker/ubuntu.tar | docker import - test/ubuntu:v1
镜像命令:
docker images
docker pull
docker search
docker rmi
docker build -t runoob/centos:6.7 .
docker tag
Dockerfile文件
什么是dockerfile?
Dockerfile是一个包含用于组合映像的命令的文本文档。可以使用在命令行中调用任何命令。 Docker通过读取Dockerfile中的指令自动生成映像。
docker build命令用于从Dockerfile构建映像。可以在docker build命令中使用-f标志指向文件系统中任何位置的Dockerfile。
例:
docker build -f /path/to/a/Dockerfile
Dockerfile的基本结构
Dockerfile 一般分为四部分:基础镜像信息、维护者信息、镜像操作指令和容器启动时执行指令,’#’ 为 Dockerfile 中的注释。
Dockerfile文件说明
图来自:www.cnblogs.com/panwenbin-l…
制作镜像
1、编写Dockerfile
2、docker build -t 127.0.0.1:5000/${镜像名称}:1.0 .