dockerdocker 可视化管理工具有哪些

只要一小时,零基础入门DockerDocker是什么?Docker是一个虚拟环境容器,可以将你的开发环境、代码、配置文件等一并打包到这个容器中,并发布和应用到任意平台中。比如,你在本地用Python开发网站后台,开发测试完成后,就可以将Python3及其依赖包、Flask及其各种插件、Mysql、Nginx等打包到一个容器中,然后部署到任意你想部署到的环境。Docker官方文档比较全,建议有能力的读一下。Docker的三个概念镜像(Image):类似于虚拟机中的镜像,是一个包含有文件系统的面向Docker引擎的只读模板。任何应用程序运行都需要环境,而镜像就是用来提供这种运行环境的。例如一个Ubuntu镜像就是一个包含Ubuntu操作系统环境的模板,同理在该镜像上装上Apache软件,就可以称为Apache镜像。容器(Container):类似于一个轻量级的沙盒,可以将其看作一个极简的Linux系统环境(包括root权限、进程空间、用户空间和网络空间等),以及运行在其中的应用程序。Docker引擎利用容器来运行、隔离各个应用。容器是镜像创建的应用实例,可以创建、启动、停止、删除容器,各个容器之间是是相互隔离的,互不影响。注意:镜像本身是只读的,容器从镜像启动时,Docker在镜像的上层创建一个可写层,镜像本身不变。仓库(Repository):类似于代码仓库,这里是镜像仓库,是Docker用来集中存放镜像文件的地方。注意与注册服务器(Registry)的区别:注册服务器是存放仓库的地方,一般会有多个仓库;而仓库是存放镜像的地方,一般每个仓库存放一类镜像,每个镜像利用tag进行区分,比如Ubuntu仓库存放有多个版本(12.04、14.04等)的Ubuntu镜像。Docker的安装和卸载Docker可以安装在Windows、Linux、Mac等各个平台上。具体可以查看文档。安装完成之后,可以查看Docker的版本信息:[root@xxx ~]# docker version
API version:
Go version:
Git commit:
linux/amd64
API version:
Go version:
Git commit:
linux/amd64
查看Docker的帮助信息:# docker --help。各种命令的用法也不再赘述,后边用到哪些命令时会作出一定的解释。Docker中关于镜像的基本操作安装完Docker引擎之后,就可以对镜像进行基本的操作了。我们从官方注册服务器()的仓库中pull下CentOS的镜像,前边说过,每个仓库会有多个镜像,用tag标示,如果不加tag,默认使用latest镜像:[root@xxx ~]# docker search centos
# 查看centos镜像是否存在
[root@xxx ~]# docker pull centos
# 利用pull命令获取镜像
Using default tag: latest
latest: Pulling from library/centos
08d48e6f1cff: Pull complete
Digest: sha256:b2f9d1c0ff5f87aa3d0db1b9bfa02a783a46e0d366c
Status: Downloaded newer image for centos:latest
[root@xxx ~]# docker images
# 查看当前系统中的images信息
REPOSITORY
9 days ago
以上是下载一个已有镜像,此外有两种方法可以帮助你新建自有镜像。(1)利用镜像启动一个容器后进行修改 ==& 利用commit提交更新后的副本[root@xxx ~]# docker run -it centos:latest /bin/bash
# 启动一个容器
[root@72f1a8a0e394 /]#
# 这里命令行形式变了,表示已经进入了一个新环境
[root@72f1a8a0e394 /]# git --version
# 此时的容器中没有git
bash: git: command not found
[root@72f1a8a0e394 /]# yum install git
# 利用yum安装git
[root@72f1a8a0e394 /]# git --version
# 此时的容器中已经装有git了
git version 1.8.3.1
此时利用exit退出该容器,然后查看docker中运行的程序(容器):[root@xxx ~]# docker ps -a
CONTAINER ID
72f1a8a0e394
centos:latest "/bin/bash"
9 minutes ago
Exited (0) 3 minutes ago
angry_hodgkin
这里将容器转化为一个镜像,即执行commit操作,完成后可使用docker images查看:[root@xxx ~]# docker commit -m "centos with git" -a "qixianhu" 72f1a8a0e394 xianhu/centos:git
[root@xxx ~]# docker images
REPOSITORY
xianhu/centos
5 seconds ago
latest cf6d
9 days ago
其中,-m指定说明信息;-a指定用户信息;72f1a8a0e394代表容器的id;xianhu/centos:git指定目标镜像的用户名、仓库名和 tag 信息。注意这里的用户名xianhu,后边会用到。此时Docker引擎中就有了我们新建的镜像xianhu/centos:git,此镜像和原有的CentOS镜像区别在于多了个Git工具。此时我们利用新镜像创建的容器,本身就自带git了。[root@xxx ~]# docker run -it xianhu/centos:git /bin/bash
[root@520afc596c51 /]# git --version
git version 1.8.3.1
利用exit退出容器。注意此时Docker引擎中就有了两个容器,可使用docker ps -a查看。(2)利用Dockerfile创建镜像Dockerfile可以理解为一种配置文件,用来告诉docker build命令应该执行哪些操作。一个简易的Dockerfile文件如下所示,官方说明::# 说明该镜像以哪个镜像为基础
FROM centos:latest
# 构建者的基本信息
MAINTAINER xianhu
# 在build这个镜像时执行的操作
RUN yum update
RUN yum install -y git
# 拷贝本地文件到镜像中
COPY ./* /usr/share/gitdir/
有了Dockerfile之后,就可以利用build命令构建镜像了:[root@xxx ~]# docker build -t="xianhu/centos:gitdir" .
其中-t用来指定新镜像的用户信息、tag等。最后的点表示在当前目录寻找Dockerfile。构建完成之后,同样可以使用docker images命令查看:[root@xxx ~]# docker images
REPOSITORY
xianhu/centos
0749ecbca587
34 minutes ago
xianhu/centos
About an hour ago
9 days ago
以上就是构建自己镜像的两种方法。其中也涉及到了容器的一些操作。如果想删除容器或者镜像,可以使用rm命令,注意:删除镜像前必须先删除以此镜像为基础的容器。[root@xxx ~]# docker rm container_name/container_id
[root@xxx ~]# docker rmi image_name/image_id
镜像其他操作指令:[root@xxx ~]# docker save -o centos.tar xianhu/centos:git
# 保存镜像, -o也可以是--output
[root@xxx ~]# docker load -i centos.tar
# 加载镜像, -i也可以是--input
Docker中关于容器的基本操作在前边镜像的章节中,我们已经看到了如何基于镜像启动一个容器,即docker run操作。[root@xxx ~]# docker run -it centos:latest /bin/bash
这里-it是两个参数:-i和-t。前者表示打开并保持stdout,后者表示分配一个终端(pseudo-tty)。此时如果使用exit退出,则容器的状态处于Exit,而不是后台运行。如果想让容器一直运行,而不是停止,可以使用快捷键 ctrl+p ctrl+q 退出,此时容器的状态为Up。除了这两个参数之外,run命令还有很多其他参数。其中比较有用的是-d后台运行:[root@xxx ~]# docker run centos:latest /bin/bash -c " sleep 1; done"
[root@xxx ~]# docker run -d centos:latest /bin/bash -c " sleep 1; done"
这里第二条命令使用了-d参数,使这个容器处于后台运行的状态,不会对当前终端产生任何输出,所有的stdout都输出到log,可以使用docker logs container_name/container_id查看。启动、停止、重启容器命令:[root@xxx ~]# docker start container_name/container_id
[root@xxx ~]# docker stop container_name/container_id
[root@xxx ~]# docker restart container_name/container_id
后台启动一个容器后,如果想进入到这个容器,可以使用attach命令:[root@xxx ~]# docker attach container_name/container_id
删除容器的命令前边已经提到过了:[root@xxx ~]# docker rm container_name/container_id
Docker中关于仓库的基本操作Docker官方维护了一个DockerHub的公共仓库,里边包含有很多平时用的较多的镜像。除了从上边下载镜像之外,我们也可以将自己自定义的镜像发布(push)到DockerHub上。在镜像操作章节中,我们新建了一个xianhu/centos:git镜像。(1)访问,如果没有账号,需要先注册一个。(2)利用命令docker login登录DockerHub,输入用户名、密码即可登录成功:[root@xxx ~]# docker login
Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one.
Username: xianhu
Login Succeeded
(3)将本地的镜像推送到DockerHub上,这里的xianhu要和登录时的username一致:[root@xxx ~]# docker push xianhu/centos:git
# 成功推送
[root@xxx ~]# docker push xxx/centos:git
The push refers to a repository [docker.io/xxx/centos]
unauthorized: authentication required
(4)以后别人就可以从你的仓库中下载合适的镜像了。[root@xxx ~]# docker pull xianhu/centos:git
对应于镜像的两种创建方法,镜像的更新也有两种:创建容器之后做更改,之后commit生成镜像,然后push到仓库中。更新Dockerfile。在工作时一般建议这种方式,更简洁明了。这里再一次回顾一下三个重要的概念:镜像、容器、仓库:从仓库(一般为DockerHub)下载(pull)一个镜像,Docker执行run方法得到一个容器,用户在容器里执行各种操作。Docker执行commit方法将一个容器转化为镜像。Docker利用login、push等命令将本地镜像推送(push)到仓库。其他机器或服务器上就可以使用该镜像去生成容器,进而运行相应的应用程序了。利用Docker创建一个用于Flask开发的Python环境上边已经解释和练习了Docker的基本操作命令,下边以实例的形式完整走一遍流程。我们创建一个用于Flask开发的Python环境,包含Git、Python3、Flask以及其他依赖包等。完整命令如下:[root@xxx ~]# docker pull centos
[root@xxx ~]# docker run -it centos:latest /bin/bash
# 此时进入容器,安装Python3、Git、Flask及其依赖包等,安装完成后exit退出
[root@xxx ~]# docker commit -m "Flask" -a "xianhu" container_id xianhu/flask:v1
[root@xxx ~]# docker push xianhu/flask:v1
Docker的功能和特性还有很多,各种运行命令、参数等也都有待学习和练习,比如如何管理数据、如何管理网络、如何互相配合工作、如何编写更专业的Dockerfile等。本文先入门为主,以后有时间再慢慢更新关于Docker的知识。=============================================================作者主页:作者专栏主页:作者GitHub主页:欢迎大家拍砖、提意见。相互交流,共同进步!==============================================================84641 条评论分享收藏文章被以下专栏收录Talk is cheap, show me the code!没有更多推荐了,
不良信息举报
举报内容:
Docker应用的可视化监控管理
举报原因:
原文地址:
原因补充:
最多只允许输入30个字
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!Dockerboard - 通过可视化的方式,管理、组织你的 Docker 应用,让你的 Dockers 管理变得简单。 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
已注册用户请 &
爱意满满的作品展示区。
Dockerboard - 通过可视化的方式,管理、组织你的 Docker 应用,让你的 Dockers 管理变得简单。
01:51:35 +08:00 · 3900 次点击
Dockerboard - 是一个可视化的 Docker 管理平台,帮助你简单、快速的搭建你的 Docker 应用。
项目地址:
欢迎提 issues
最后,祝大家,Happy 2015!
5 回复 &| &直到
12:46:07 +08:00
& & 03:02:01 +08:00 via Android
不错,省事了
& & 04:15:02 +08:00
看动画里有tls,最新的release却写着no tls,是todo项吗?
& & 07:25:13 +08:00
本机docker镜像管理,用命令行就满方便了。倒是一直在找有没有管理远端docker私有仓库的GUI界面啊。
& & 11:58:09 +08:00
@ 因为 Dockerboard 是通过 tls 连接的,所以有 tls 信息。
如果要添加 host,目前只支持 IP & no tls,就是演示看到,后续会完善。
@ 私有仓库功能,后续也会考虑加进来。
& & 12:46:07 +08:00
materia UI, +1
& · & 3210 人在线 & 最高记录 3541 & · &
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.1 · 22ms · UTC 02:17 · PVG 10:17 · LAX 19:17 · JFK 22:17? Do have faith in what you're doing.Shipyard简介
Shipyard是一个集成管理docker容器、镜像、Registries的系统,它具有以下特点:
1.支持多节点的集成管理
2.可动态加载节点
3.可托管node下的容器
镜像环境准备
# docker pull rethinkdb
# docker pull microbox/etcd
# docker pull shipyard/docker-proxy
# docker pull swarm
# docker pull shipyard/shipyard
手动安装(以本地ip:10.211.55.20为例)
1. 数据存储(rethinkdb)
docker run -ti -d --name shipyard-rethinkdb rethinkdb
2.服务发现(etcd)
为了启用Swarm leader选择,我们必须使用来自Swarm容器的外部键值存储。此处,我们使用Etcd作为服务发现工具。可以选用的服务发现工具还有Consul、Zookeeper等。
docker run -ti -d -p
--name shipyard-discovery microbox/etcd -name discovery
3. Docker代理服务(shipyard/docker-proxy)
默认情况下,Docker引擎只侦听套接字。 我们可以重新配置引擎以使用TLS,或者您可以使用代理容器。 这是一个非常轻量级的容器,它只是将请求从TCP转发到Docker监听的Unix套接字。
docker run
--hostname=$HOSTNAME --name shipyard-proxy -v /var/run/docker.sock:/var/run/docker.sock -e PORT=2375 shipyard/docker-proxy
4.Swarm管理节点(swarm manager)
将IP-OF-HOST替换为对应的
将SWARM-INNER-PORT换成对应的端口,默认2375.
将SWARM-MAP-PORT换成映射到host机的ip,例如2376
格式:docker run -ti -d --name -p [SWARM-MAP-PORT]:[SWARM-INNER-PORT] shipyard-swarm-manager docker.io/swarm manage --host tcp://0.0.0.0:[SWARM-INNER-PORT] etcd://[IP-OF-HOST]:4001实例化:docker run
-ti -d --name shipyard-swarm-manager swarm manage --host tcp://0.0.0.0:3375 etcd://10.211.55.20:4001
5.Swarm Agent节点将当前docker节点加入到集群中
将IP-OF-HOST替换为对应的ip
将IP-OF-ETCD-HOST换成etcd所在的docker节点ip。
将LOCAL-DOCKER-PORT换成本机docker所监听的端口,例如2375
格式:docker run -ti -d --name shipyard-swarm-agent docker.io/swarm join --addr [IP-OF-HOST]:[LOCAL-DOCKER-PORT] etcd://[IP-OF-ETCD-HOST]:4001
实例: docker run -ti -d --name shipyard-swarm-agent swarm join --addr 10.211.55.20:2375 etcd://10.211.55.20:4001
6.启动Shipyard管理工具
docker run -ti -d --name shipyard-controller --link shipyard-rethinkdb:rethinkdb --link shipyard-swarm-manager:swarm -p
shipyard/shipyard server -d tcp://swarm:3375
7.浏览器访问:http://192.168.1.108:8083/ 即可进入链接
默认用户名/密码 admin/shipyard
防火墙需打开4001端口,否则防火墙会拦住容器。
Nginx做域名转发
在nginx配置文件http块里添加如下代码
upstream shipyard {
server 192.168.1.108:8083;
server_name
mm.shipyard.
location / {
proxy_pass http://
proxy_http_version 1.1;
proxy_set_header Upgrade $http_
proxy_set_header Connection "upgrade";
 以下三行代码为nginx做WebSockets跳转否则,在执行shell时会报400错误
proxy_http_version 1.1;
proxy_set_header Upgrade $http_
proxy_set_header Connection "upgrade";
阅读(...) 评论()

我要回帖

更多关于 mac docker可视化工具 的文章

 

随机推荐