❶ ubuntu怎样升级docker版本
运行私有docker registry,就好比为docker镜像运行私有git仓库。在Ubuntu1404上搭建私有docker registry-Linux的步骤: 第一步——安装必要的软件 1、在docker registry服务器上,应当创建一个拥有sudo权限的用户(如果可以,在客户机上也如此)ubuntu怎样升级docker版本
❷ 如何在线升级Docker
首先说一点,docker stop了,但是容器并不一定“没了”。
我理解的所谓的“没了”,就是指容器的进程不存在的。
所有的容器进程,都是docker daemon的子进程。当docker daemon直接挂了,容器的主进程(就是由Entrypoint或者CMD生成的那个进程),会有两种情况:
1. 直接消失。这种情况常见于CMD是/bin/bash的情形。直接消失的原因据我猜测是因为这是个有pty的进程,需要跟父进程(docker daemon)保持一定的联系。父进程挂了,这个子进程就直接没了。
2. 被1号进程托管(父进程变成了1号进程)。这种情况应该常见于CMD是sshd -D或者sleep 99999d的情况。
但是无论哪种情况,当docker daemon再次start时候,会直接去检查容器进程是不是running。如果running,那么清理容器遗留进程。这也就是为什么启动起来docker daemon,所有的容器都是关闭的原因了。
docker为什么要在启动时候关闭这些进程呢?他们running不好么?
根据我对docker源码的理解,docker不放心其他进程来管理。他一定要亲自管理这些容器,他是所有容器的父进程。这样有很多好处。最大的好处就是实时监控,一旦容器挂了,他立即可以知道,并重启(如果容器设置了restart=always的话)。
-----------------------------华丽的分割线-----------------------------------------
上面的只是铺垫,现在说正题:
我们的意愿是良好的。希望能够docker在线升级。我看来一个可能的解决方法就是,在docker daemon start的时候,去检查容器是不是running,如果running,那么清理容器遗留进程,接着再重新start容器。以保证仍然作为容器的父进程进行管理。当然,这就要求给docker新增这么一段代码以实现该功能。
❸ docker 容器 可以模拟多台服务器测试吗
DockerMachine是一个工具,使您可以轻松地从个人计算机远程配置和管理多个Docker主机。这样的服务器通常被称为Docker化主机,并且当然可以用于运行Docker容器。虽然DockerMachine可以安装在本地或远程系统上,但最常见的方法是将其安装在本地计算机(本机安装或虚拟机)上,并使用它来部署Docker化远程服务器。虽然DockerMachine可以安装在大多数Linux发行版以及MacOSX和Windows上,但在本教程中,我们将在运行Ubuntu16.04的本地机器上安装DockerMachine,并使用它来配置DockerizedDigitalOceanDroplet。
❹ 如何调用docker swarm service的API来创建及更新服务
与 Docker Compose 一样, Docker Machine 也是旨在帮助开发人员快速使用Docker的工具。具体地说,就是Machine允许Windows和OS X用户在诸如 Amazon AWS, Google Container Engine, Azure, DigitalOcean等公有云上远程创建Docker主机。Docker客户端安装在本地,你就可以通过它远程访问Docker的API,能达到好像Docker引擎就运行本地一样的体验。Machine需要安装在客户机本地,是用来创建远程Docker主机的单独二进制文件。本地Docker客户端甚至可以是运行在VirtualBox虚拟机上的Docker。它的源代码托管在 Github 。
在这篇文章中,我先简单介绍Docker Machine,再讲述怎么用它创建Swarm Docker集群。一旦你从单机测试过度到多机器分布式部署,这工具相当有用。Docker Compose用来启动你在Swarm集群中的应用,这个我会在以后的文章中详细叙述。
首先,你的机器上应该安装Docker Machine, 官方的文档 是最好的参考工具。第一步,我将介绍一个此文档中高亮的执行命令。
❺ docker部署web服务,怎样做到不间断服务的更新
Docker的使用 Docker是一个轻量级的虚拟化解决方案,你可以实现秒级的虚拟机启动、非常轻量级的虚拟化。个人使用理解看来,它可以实现一个类似于版本管理Git一样的轻量化的状态保存。
❻ 如何通过docker容器安装LNMP服务器环境
安装 系统环境
硬件型号: ThinkPad T520
系统版本: ubuntu 14.04
CPU: i7
RAM: 8G
添加软件源
由于Ubuntu源中的最先版本为0.9无法满足要求,所以需要使用Docker的官方源
添加密钥:
$ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80
--recv-keys \
源地址: deb http://get.docker.io/ubuntu docker main
添加源可以通过"软件和更新->其它软件->添加"来操作
添加后执行如下命令:
$ sudo apt-get update
$ sudo apt-get install lxc-docker-1.1.1
注: 官方给出的源地址为https连接的,但是总是出现ssl验证失败的错误,最后改为非
ssl连接之后正常
测试
执行如下命令获取容器镜像,创建一个实例并打开一个实例shell
$ sudo docker run -t -i centos:latest /bin/bash
注:第一次运行由于需要下载镜像可能需要多等一会儿
运行成功后会有一个新的shell提示符
制作镜像 要求
web容器安装Nginx+php服务
数据库容器安装Mysql服务
web服务和数据库分离
web服务容器可以访问数据库容器
制作nginx+php镜像
启动一个容器实例:
$ sudo docker run -t -i centos:latest /bin/bash
安装nginx与PHP:
Nginx可以使用源码或rpm包进行安装,PHP可以使用源码或yum安装.具体安装和配置这里
不进行具体讲述.
注:需要把nginx与php-fpm添加到系统服务中并设置开机启动
我设置的站点根目录为/opt/web
退出shell并执行如下命令制作镜像:
$ sudo docker commit -m="web service image nginx+php" -a="username" \
sudo docker ps -lq username/web:v1
这是一个组合命令:
sudo docker commit根据已有实例制作镜像
sudo docker ps -lq返回最后一个运行的实例id
已有镜像可以使用sudo docker images 查看
至此创建了第一个镜像 username/web:v1
制作mysql镜像
启动实例:
$ sudo docker run -t -i centos:latest /bin/bash
安装Mysql.
设置Mysql服务开机启动:
$ chkconfig mysqld on
启动mysql.
修改mysql登陆权限:
mysql> grant all privileges on . to 'root'@'%'
identified by 'dbpasswd';
mysql> flush privileges;
mysql服务默认只能本地连接,制作镜像的时候需要注意.否则是无法连接到数据库的.
退出shell并执行如下命令制作mysql容器镜像:
$ sudo docker commit -m="mysql service image" -a="username" \
sudo docker ps -lq username/mysql:v1
清除不再需要的实例:
$ sudo docker rm sudo docker ps -aq
启动并关联实例
web实例依赖与mysql,所以先打开一个mysql实例:
$ sudo docker run -d --name db username/mysql:v1
/sbin/init
-d参数是让实例以dameon的形式运行. /sbin/init是创建实例后执行的操作,此处为初
始化系统服务,包括运行mysql.
启动web实例并与数据库实例进行关联:
$ sudo docker run -d --name web --link db:db -p 8080:80 -v /path/to/src:/opt/web username/web:v1 /sbin/init
--link参数设置关联的容器,可以设置多个.关联之后会自动更新web容器的host,把db
的地址指向到数据库容器的地址.
-p 参数用来进行ip映射.此处把容器的80端口映射到了本地的8080端口.web服务可是
通过localhost:8080访问.
-v 参数把数据挂载到容器指定目录.此处为把站点源码目录挂载到容器的站点目录.
在web容器中访问数据库容器的mysql服务可以使用db这个主机地址.
❼ docker的好处,为什么使用docker来部署服务器
Docker的使用
Docker是一个轻量级的虚拟化解决方案,你可以实现秒级的虚拟机启动、非常轻量级的虚拟化。个人使用理解看来,它可以实现一个类似于版本管理Git一样的轻量化的状态保存。
Docker有两个非常重要的概念: 镜像和容器。
镜像是呈载容器的实体,所有容器都是运行在镜像之上。用版本管理的角度来看,镜像就像是某一个节点,它可以派生出不同的分支,你可以在不同分支上做不同的事情。可以想象成一棵树,最基本的镜像是主树干,主树干可以分出旁支树干,而旁支树干可以分出更细的旁支,而树干上可以生长树枝。
比如,你使用Docker,从官方仓库下载一个ubuntu镜像,把它作为最基础的镜像。然后在上面运行一个容器,这个容器里下载Nginx,再以这个容器为基础生成一个新的镜像,以后这个镜像生成的容器就都是ubuntu+nginx为基础。但是你工作环境可能需要你使用Apache来工作,你也想有一个ubuntu+apache为基础的镜像,于是你可以使用最基础的ubuntu镜像运行一个容器,在里面下载安装Apache,然后以这个容器为基础,保存一个ubuntu+apache的镜像,以后在这个镜像基础上运行的所有容器都拥有了一个apache环境。