Docker是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。开发者在笔记本上编译测试通过的容器可以批量地在生产环境中部署,包括VMs(虚拟机)、bare metal、OpenStack 集群和其他的基础应用平台。
对于开发和运维来说,把程序部署到生产的时候,最常见的问题是环境问题,由于服务器单机的差异,可能会导致问题比较众多烦杂。对于这个问题,docker的优势就可以体现出来了。我们假设一个系统有四个要素组成:应用app,app依赖的类库,配置文件和系统环境。
我们需要对以上个因素进行单独的考虑和配置,如果集群则面临了大量的工作量,如果使用虚拟机的快照,也过于庞大
对于docker的安装可以使用以下命令:
$ sudo apt-get install docker
安装完成后,执行
$ docker version
执行结果如下:
Client version: 1.6.2
Client API version: 1.18
Go version (client): go1.5.1
Git commit (client): 7c8fca2
OS/Arch (client): linux/amd64
Server version: 1.6.2
Server API version: 1.18
Go version (server): go1.5.1
Git commit (server): 7c8fca2
OS/Arch (server): linux/amd64
如果有以上结果说明docker 已经安装成功
碰到问题: connect: permission denied. Are you trying to connect to a TLS-enabled daemon without TLS
原因: 是因为当前的用户没有权限导致,把当前用户添加到docker用户组即可
解决办法: 执行以下命令:
$ sudo gpasswd -a ${USER} docker # 把当前用户添加到docker组
$ groups # 检查没有没添加到当前用户组
$ sudo service docker.io restart # 重启
对于docker的使用可以参考官方文档 ,也可以通过执行docker –help命令来查看常用命令的使用。下面演示如何从服务器上面下载项目,docker有一个官方的镜像服务器,但访问速度非常慢,个人建议使用网易镜像速度比较快。
1. 使用docker pull 下载hello-world项目
$ docker pull hub.c.163.com/library/hello-world:latest
2. 使用docker images查看本地有哪些镜像
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
hub.c.163.com/library/hello-world latest 7a5a2d73abce 4 months ago 1.84 kB
3. docker run 运行镜像
$ docker run hub.c.163.com/library/hello-world
运行结果:
4. 删除docker容器
$ docker rmi -f hub.c.163.com/library/hello-world
(本文完)
作者:老付 如果觉得对您有帮助,可以下方的订阅,或者选择右侧捐赠作者,如果有问题,请在捐赠后咨询,谢谢合作 如有任何知识产权、版权问题或理论错误,还请指正。 自由转载-非商用-非衍生-保持署名,请遵循:创意共享3.0许可证 交流请加群113249828: 点击加群 或发我邮件 laofu_online@163.com