Docker 是一个开源的应用容器引擎,基于 Go 语言 并听从Apache2.0协议开源。html
Docker 可让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,而后发布到任何流行的 Linux 机器上,也能够实现虚拟化。node
容器是彻底使用沙箱机制,相互之间不会有任何接口(相似 iPhone 的 app),更重要的是容器性能开销极低。python
Docker的应用场景web
Web 应用的自动化打包和发布。docker
自动化测试和持续集成、发布。数据库
在服务型环境中部署和调整数据库或其余的后台应用。json
Docker 的优势ubuntu
一、简化程序:
Docker 让开发者能够打包他们的应用以及依赖包到一个可移植的容器中,而后发布到任何流行的 Linux 机器上,即可以实现虚拟化。Docker改变了虚拟化的方式,使开发者能够直接将本身的成果放入Docker中进行管理。方便快捷已是 Docker的最大优点,过去须要用数天乃至数周的 任务,在Docker容器的处理下,只须要数秒就能完成。vim
二、避免选择恐惧症:
若是你有选择恐惧症,仍是资深患者。Docker 帮你 打包你的纠结!好比 Docker 镜像;Docker 镜像中包含了运行环境和配置,因此 Docker 能够简化部署多种应用实例工做。好比 Web 应用、后台应用、数据库应用、大数据应用好比 Hadoop 集群、消息队列等等均可以打包成一个镜像部署。tomcat
三、节省开支:
一方面,云计算时代到来,使开发者没必要为了追求效果而配置高额的硬件,Docker 改变了高性能必然高价格的思惟定势。Docker 与云的结合,让云空间获得更充分的利用。不只解决了硬件管理的问题,也改变了虚拟化的方式。
yum -y install docker-io
service docker start
chkconfig docker on
vim /etc/docker/daemon.json:
{ "registry-mirrors": ["http://hub-mirror.c.163.com"] }
重启docker
docker 查看选项
docker COMMAND --help 查看某个命令帮助
docker search httpd 搜索镜像
docker run 命令来在容器内运行一个应用程序
docker ps 查看咱们正在运行的容器
docker pull training/webapp # 载入镜像
docker run -d -P training/webapp python app.py
参数说明:
docker logs [ID或者名字] 能够查看容器内部的标准输出。
docker images 来列出本地主机上的镜像
各个选项说明:
REPOSITORY:表示镜像的仓库源
TAG:镜像的标签
IMAGE ID:镜像ID
CREATED:镜像建立时间
SIZE:镜像大小
同一仓库源能够有多个 TAG,表明这个仓库源的不一样个版本,如ubuntu仓库源里,有15.十、14.04等多个不一样的版本,咱们使用 REPOSITORY:TAG 来定义不一样的镜像。
使用 docker pull 命令来下载它。
docker pull httpd
docker search tomcat
docker pull tomcat
docker images|grep tomcat
mkdir -p ~/tomcat/webapps ~/tomcat/logs ~/tomcat/conf
webapps目录将映射为tomcat容器配置的应用程序目录
logs目录将映射为tomcat容器的日志目录
conf目录里的配置文件将映射为tomcat容器的配置文件
进入建立的tomcat目录,建立Dockerfile
经过Dockerfile建立一个镜像,替换成你本身的名字
docker build -t tomcat .
docker images|grep tomcat
docker run --name tomcat -p 8080:8080 -v $PWD/test:/usr/local/tomcat/webapps/test -d tomcat
命令说明:
-p 8080:8080:将容器的8080端口映射到主机的8080端口
-v $PWD/test:/usr/local/tomcat/webapps/test:将主机中当前目录下的test挂载到容器的/test
docker ps
---------------------------------------------------------------------------------------------------------------------------------------------------------------
管理命令: container 管理容器 image 管理镜像 network 管理网络 node 管理Swarm节点 plugin 管理插件 secret 管理Docker secrets service 管理服务 stack 管理Docker stacks swarm 管理Swarm集群 system 查看系统信息 volume 管理卷 如:docker container ls 显示全部容器 普通命令: attach 进入一个运行的容器 build 从一个DockerFile构建镜像 commit 从容器建立一个镜像 cp 从容器和主机文件系统之间拷贝文件 create 建立一个容器 diff 检查容器文件系统上的更改 events 从服务器获取实时事件 exec 在正在运行的容器中运行命令 export 将容器的文件系统导出为tar存档 history 显示镜像的历史记录 images 查看镜像列表 import 从归档文件中建立镜像 info 显示系统范围的信息 inspect 返回Docker对象的低级信息 kill kill运行中的容器 load 从存档或者STDIN加载镜像 login 登录docker镜像仓库 logout 退出docker镜像仓库 logs 获取一个容器的日志 pause 暂停一个或多个容器中的全部进程 port 查看端口映射或容器的特定映射列表 ps 查看容器列表 pull 从镜像仓库拉取镜像 push 将本地的镜像上传到镜像仓库,要先登录到镜像仓库 rename 重命名容器 restart 重启容器 rm 删除容器 rmi 删除镜像 run 建立一个新的容器并运行一个命令 save 将指定镜像保存成 tar 归档文件 search 从Docker Hub搜索镜像 start 启动容器 stats 实时显示容器资源使用状况的统计信息 stop 中止容器 tag 标记本地镜像,将其纳入某一仓库 top 展现一个容器中运行的进程 unpause 恢复容器中全部的进程 update 更新容器配置 version 显示Docker的版本信息 wait 阻塞直到容器中止,而后打印退出代码 如:docker images 显示全部镜像