Docker粗浅学习
定义:Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。
应用场景:Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
- Web 应用的自动化打包和发布。
- 自动化测试和持续集成、发布。
- 在服务型环境中部署和调整数据库或其他的后台应用。
- 从头编译或者扩展现有的 OpenShift 或 Cloud Foundry 平台来搭建自己的 PaaS 环境。
基本架构:
- 镜像(Image):Docker 镜像(Image),就相当于是一个 root 文件系统。比如官方镜像 ubuntu:16.04 就包含了完整的一套 Ubuntu16.04 最小系统的 root 文件系统。Docker 镜像是用于创建 Docker 容器的模板。
- 容器(Container):镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。容器是独立运行的一个或一组应用,是镜像运行时的实体。
- 仓库(Repository):仓库可看成一个代码控制中心,用来保存镜像。
安装
- Linux安装
curl -fsSL https://get.docker.com | bash -s docker
- Mac os安装
brew install --cask --appdir=/Applications docker
基本使用:
- 使用 docker run 命令来在容器内运行一个应用程序。
例子:
docker run ubuntu:15.10 /bin/echo "Hello world"
ubuntu:15.10
指定要运行的镜像,Docker 首先从本地主机上查找镜像是否存在,如果不存在,Docker 就会从镜像仓库 Docker Hub 下载公共镜像。/bin/echo "Hello world"
: 在启动的容器里执行的命令
- 使用
docker run -d
创建一个以进程方式运行的容器
会返回一个容器ID - 使用
docker ps
查看正在运行的容器
输出详情介绍:
CONTAINER ID: 容器 ID。
IMAGE: 使用的镜像。
COMMAND: 启动容器时运行的命令。
CREATED: 容器的创建时间。
STATUS: 容器状态。
状态有7种:
- created(已创建)
- restarting(重启中)
- running 或 Up(运行中)
- removing(迁移中)
- paused(暂停)
- exited(停止)
- dead(死亡)
PORTS: 容器的端口信息和使用的连接类型(tcpudp)。
NAMES: 自动分配的容器名称。
可以使用容器ID或者容器名称来操控一个容器
- 使用
docker logs <容器ID/容器名称>
查看容器内的标准输出 docker command --help
可以查看某条docker命令的详细说明docker search xxx
搜索镜像docker pull xxx
拉取镜像docker rmi xxx
删除镜像docker commit
更新镜像
具体要先使用一个镜像开启一个容器
docker run it ubuntu:15.10 /bin/sh
进入容器内,然后使用对应的更新命令进行更新docker commit -m="has update" -a="bill" <容器ID> 镜像名称:镜像版本
- -m: 提交的描述信息
- -a: 指定镜像作者
docker ps -a
查看所有运行过的容器docker start <docker_id/name>
重启已经停止的容器docker restart <docker_id/name>
重启已经停止的容器docker stop <docker_id/name>
停止某个容器- 当启动容器使用了-d参数是,使用
docker exec -it <docker_id/name> shell环境(如/bin/bash)
进入容器交互环境 docker rm -f <docker_id/name>
删除一个容器docker run -d -P training/webapp python app.py
docker运行一个web应用,-P可以随机使用端口号映射。-p 宿主机端口号:docker内端口号可以自定义端口映射docker top <docker_id/name>
查看docker内运行的程序docker inspect <docker_id/name>
查看容器的配置docker history <image_name> --no-trunc
可以查看完整的镜像提交历史
更详细的docker命令:
菜鸟教程
版权声明:本文为原创文章,版权归 Bill's Blog 所有,转载请注明出处!如相关链接出现404,可以在文章下面评论留言。