您的位置:首页 > 运维架构 > Docker

docker学习1|使用docker输出hello world

2017-12-12 00:00 483 查看
点击上方“中兴开发者社区”,关注我们每天读一篇一线开发者原创好文

▎作者简介作者朱磊是开源软件爱好者,致力于web应用部署、运维领域解决方案的研究。将web应用部署在Docker上能够极大的简化部署、方便维护,文章将以初学者的角度从输出hello world开始,一步步的揭开使用Docker部署web应用的神秘面纱。

1.什么是docker

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。

docker使用场景

docker有很多用途,目前对于我来说,可以预期的场景为:1.提高开发效率:一般的开发工作中,开发环境的搭建是件头疼的事情,每个开发人员都得重复搭一套一致的环境,使用docker后,可以搭建一次后存为镜像,其他团队成员就可以直接使用了。2.快速部署:在虚拟机之前,引入新的硬件资源需要消耗几天的时间。Docker的虚拟化技术将这个时间降到了几分钟,Docker只是创建一个容器进程而无需启动操作系统,这个过程只需要秒级的时间。更多用途介绍,见参考资料5:Docker 的应用场景在哪里?

2. docker安装与启动

一般的Linux发行版本中,已经预装了docker,输入如下命令确认是否已经预装docker
docker --version


#如果已经存在会输出当前docker版本


Docker version 1.10.3, build 694b432-unsupported


可以使用yum升级到最新版本
yum update docker


如果当前系统中不存在docker,可以使用yum安装
yum install docker


docker的启动停止命令如下:
#启动


service docker start


#停止


service docker stop


#重启


service docker restart


3. 搜索与下载镜像

3.1 查找可用镜像

#例如查找centos的镜像


docker search centos




#结果如下组织:


INDEX  NAME  DESCRIPTION  STARS OFFICIAL  AUTOMATED


#STARS:镜像的星数,一般选择星数高的下载


#OFFICIAL:是否是官方的镜像,如果有一般选择官方镜像


3.2 下载可用镜像

#下载centos的官方镜像


docker pull centos


因docker默认使用官方镜像源,速度很慢,所以我们一般可以选择更换镜像源。

3.3 配置国内镜像加速

登录阿里云镜像服务,https://cr.console.aliyun.com/?spm=5176.100239.blogcont29941.12.eJkJlD#/accelerator,获取自己的加速器地址(专用镜像加速地址,需要自己获取)按照页面帮助文档,修改配置文件/etc/docker/daemon.json
sudo mkdir -p /etc/docker


sudo tee /etc/docker/daemon.json <<-'EOF'


{


 "registry-mirrors": ["https://abcdefg.mirror.aliyuncs.com"]


}


EOF


sudo systemctl daemon-reload


sudo systemctl restart docker


配置完成后,重新启动docker发现,docker无法启动。
service docker restart




Job for docker.service failed because the control process exited with error code. See "systemctl status docker.service" and "journalctl -xe" for details.


依据参考资料1,需要centos/redhat上配置其他文件。
#删除错误的配置文件


rm /etc/docker/daemon.json




#重新配置


vim /etc/sysconfig/docker


#OPTIONS中增加registry-mirror属性


OPTIONS='--selinux-enabled --log-driver=journald --registry-mirror=https://abcdefg.mirror.aliyuncs.com'


DOCKER_CERT_PATH=/etc/docker


配置完成后,重新启动docker,查看启动参数。
#重启


service docker restart


#查看启动信息


ps aux | grep docker


/usr/bin/dockerd-current --log-driver=journald --registry-mirror=https://abcdefg.mirror.aliyuncs.com


再次使用docker pull centos 下载centos镜像,可以明显看到速度有很大的提升。

3.4 查看当前已存在的镜像

docker images


#结果如下:


REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE


docker.io/centos    latest              3fa822599e10        8 days ago          203.5 MB


4. 运行centos镜像输出hello world

对于程序员来说,入门一种技术最关键的一步来了,使用docker run输出hello world。
docker run centos echo "hello word"




hello word


可以看到,docker run有两个参数,一个是镜像名,一个是要在镜像中运行的命令。当echo命令运行结束后,容器也会随之停止,如果需要一直打开容器的控制台,可以输入如下命令:
docker run -it centos /bin/bash


[root@1a3d1376e367 /]#




#可以看到,终端上已经由centos容器控制台接管,此时直接echo输出


[root@1a3d1376e367 /]#echo "hello word"


hello word


[root@1a3d1376e367 /]#




#exit退出容器


[root@1a3d1376e367 /]#exit


exit


[root@localhost opt]#


参考资料

1.在阿里云上使用 Docker 并配置阿里云镜像加速器,结果遇到 daemon.json 导致 docker daemon 无法启动的问题,https://pagespeed.v2ex.com/t/3262292.docker: Error response from daemon: Container command could not be invoked..,http://blog.csdn.net/qq_29352959/article/details/548477943.Docker 镜像加速器,https://yq.aliyun.com/articles/299414.Docker,https://baike.baidu.com/item/Docker/13344470?fr=aladdin5.Docker 的应用场景在哪里?,https://www.zhihu.com/question/229693096.Docker入门教程,http://www.docker.org.cn/book/docker/what-is-docker-16.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: