什么是docker
学习docker之前,要先了解容器的概念。容器是直接运行在操作系统内核之上的用户空间。我们可以先把容器当成一个单纯的运行环境。通过使用容器技术,可以在同一台主机上运行多个独立的用户空间。但是,受限于主机上的操作系统,容器只能运行跟主机上类似的操作系统。比如主机是windows系统,那么容器只能运行windows系统。
docker的出现,就是为了解决在不同操作系统上容器的兼容性问题。docker是一个能够把开发的应用程序自动部署到容器的开源引擎。 docker提供了一个轻量、快速的环境,能高效地将开发者的运行程序部署到测试环境和生产环境,使开发环境和生产环境相统一。
docker里面有什么
docker由下列组件构成:
- docker客户端和服务器
docker客户端向docker服务器或守护进程发出请求,服务器或守护进程将完成所有工作并返回结果。 - docker镜像
容器的源代码。 - Registry
保存用户构建的镜像。 - docker容器
执行镜像。
docker的架构如图所示:
docker在windows安装下的注意事项
- 需要在win10 64位系统下安装。
- 安装时要勾选git选项。
- 默认会安装virtualbox。如果本地已经安装了Vmware,可能会出现虚拟网络占用或冲突问题。
- 默认支持ubuntu。如果要在centos环境下搭docker,需要改配置文件和更新内核等一系列繁琐操作。
- 安装成功后,会有三个软件:Kitematic (图形化界面)、Oracle VM VirtualBox(虚拟机)、Docker Quickstart Terminal(命令行窗口),先在virtualbox上新建一个虚拟机,然后打开 docker quickstart terminal。这样就不会出现“check if default machine exists”的问题。
docker使用
安装完docker,需要查看docker守护进程是否运行,才能进行其他的docker操作。
常用的docker命令如下
用途 | 命令 |
---|---|
查看docker版本 | docker version |
查看docker程序 | docker info |
启动 | docker start |
查看虚拟机 | docker-machine ls |
运行 | docker run -i -t ubuntu /bin/bash |
列出docker容器 | docker ps -a |
拉取镜像 | docker pull fedora:20 |
查看镜像 | docker images fedora |
查找镜像 | docker search fedora |
用户镜像
仓库镜像
从镜像启动容器,在容器中安装软件包
常见问题
执行 docker run -i -t ubuntu /bin/bash 出现 time out?
继续执行,或者重新打开 terminal,或者重新联网。
使用Dockerfile构建镜像
基于Dockerfile构建新镜像的流程如下:
先编写一个dockerfile文件,然后使用 docker build命令,构建新镜像。
- Dockerfile在构建新镜像的过程中,会有构建缓存,可以基于缓存构建dockerfile模板。
- Dockerfile可以指定端口映射。
- Dockerfile有一系列指令。
其他
- 在Docker Hub中可以关联github,自动构建仓库。