赞
踩
作为云计算工程师,不可避免地会遇到这种情况:同样的代码,运行环境发生变化之后就无法正常运行。例如:
当出现这些问题的时候,可能需要花大量的时间去处理环境迁移问题。为了解决这个问题,我们可以搭建一个云容器。云容器包含了完整的运行时环境,除了应用程序本身之外,这个程序所需的全部依赖、类库等,其他二进制文件、配置文件等,都统一被打包到一个镜像中。
容器技术让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的操作系统上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。
搭建容器基础环境
环境准备:云主机 CentOS 7 (x86_64) - with Updates HVM
修改selinux设置
[root@ip-10-0-0-201 ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
安装docker
[root@ip-10-0-0-201 ~]# yum -y install docker
启动docker
[root@ip-10-0-0-201 ~]# systemctl start docker;systemctl enable docker
重新加载服务,使配置生效
[root@ip-10-0-0-201 ~]# systemctl daemon-reload
使用docker搭建云硬盘
DaoCloud,企业级容器云平台。访问国内最大的容器仓库(Hub · DaoCloud),查看仓库里的镜像,将需要的镜像拉取到本地。
拉取镜像
[root@ip-10-0-0-201 ~]# docker pull daocloud.io/library/owncloud:8
查看下载的镜像
[root@ip-10-0-0-201 ~]# docker images
创建容器
[root@ip-10-0-0-201 ~]# docker run -d -p 8080:80 daocloud.io/library/owncloud:8.1
打开浏览器,输入公网IP:8080端口
创建用户名和密码
云硬盘创建成功,这时候我们可以像使用百度网盘一样进行文件打包上传了!
搭建私有仓库
有的时候我们需要将打包好的镜像推送到仓库存储,这时候Docker Hub公共仓库可能不方便。也许我们可以创建一个本地仓库供私人使用。docker-registry是开源的,用于存储 并允许分发自定义的Docker 映像。
拉取registry镜像
[root@ip-10-0-0-201 ~]# docker pull registry
运行registry容器
[root@ip-10-0-0-201 ~]# docker run -d -v /opt/registry:/var/lib/registry -p 5000:5000 --restart=always --name registry registry:latest
配置仓库地址
[root@ip-10-0-0-201 ~]# cat /etc/docker/daemon.json
{
"insecure-registries":["54.212.74.212:5000"]
}[root@ip-10-0-0-201 ~]# systemctl restart docker;systemctl daemon-reload
使用curl命令访问仓库
[root@ip-10-0-0-201 ~]# curl http://54.212.74.212:5000/v2/_catalog
{"repositories":[]}
测试:上传镜像到私有仓库
[root@ip-10-0-0-201 ~]# docker tag hello-world 54.212.74.212:5000/centos:latest
[root@ip-10-0-0-201 ~]# docker push 54.212.74.212:5000/centos:latest
The push refers to a repository [54.212.74.212:5000/centos]
174f56854903: Pushed
7: digest: sha256:dead07b4d8ed7e29e98de0f4504d87e8880d4347859d839686a31da35a3b532f size: 529
技术性分享,转载请注明出处!
欢迎互相交流,共同进步!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。