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

点击上方“中兴开发者社区”,关注我们

每天读一篇一线开发者原创好文

▎作者简介

作者朱磊是开源软件爱好者,致力于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

  
  
  1. docker --version

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

  3. Docker version 1.10.3, build 694b432-unsupported

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

  
  
  1. yum update docker

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

  
  
  1. yum install docker

docker的启动停止命令如下:

  
  
  1. #启动

  2. service docker start

  3. #停止

  4. service docker stop

  5. #重启

  6. service docker restart

3. 搜索与下载镜像

3.1 查找可用镜像

  
  
  1. #例如查找centos的镜像

  2. docker search centos

  3. #结果如下组织:

  4. INDEX  NAME  DESCRIPTION  STARS OFFICIAL  AUTOMATED

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

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

3.2 下载可用镜像

  
  
  1. #下载centos的官方镜像

  2. docker pull centos

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


3.3 配置国内镜像加速

登录阿里云镜像服务,https://cr.console.aliyun.com/?spm=5176.100239.blogcont29941.12.eJkJlD#/accelerator,获取自己的加速器地址(专用镜像加速地址,需要自己获取)

按照页面帮助文档,修改配置文件/etc/docker/daemon.json

  
  
  1. sudo mkdir -p /etc/docker

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

  3. {

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

  5. }

  6. EOF

  7. sudo systemctl daemon-reload

  8. sudo systemctl restart docker

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

  
  
  1. service docker restart

  2. 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上配置其他文件。

  
  
  1. #删除错误的配置文件

  2. rm /etc/docker/daemon.json

  3. #重新配置

  4. vim /etc/sysconfig/docker

  5. #OPTIONS中增加registry-mirror属性

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

  7. DOCKER_CERT_PATH=/etc/docker

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

  
  
  1. #重启

  2. service docker restart

  3. #查看启动信息

  4. ps aux | grep docker

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

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


3.4 查看当前已存在的镜像

  
  
  1. docker images

  2. #结果如下:

  3. REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE

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

4. 运行centos镜像输出hello world

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

  
  
  1. docker run centos echo "hello word"

  2. hello word

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

  
  
  1. docker run -it centos /bin/bash

  2. [root@1a3d1376e367 /]#

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

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

  5. hello word

  6. [root@1a3d1376e367 /]#

  7. #exit退出容器

  8. [root@1a3d1376e367 /]# exit

  9. exit

  10. [root@localhost opt]#

参考资料

1.在阿里云上使用 Docker 并配置阿里云镜像加速器,结果遇到 daemon.json 导致 docker daemon 无法启动的问题,https://pagespeed.v2ex.com/t/326229

2.docker: Error response from daemon: Container command could not be invoked..,http://blog.csdn.net/qq_29352959/article/details/54847794

3.Docker 镜像加速器,https://yq.aliyun.com/articles/29941

4.Docker,https://baike.baidu.com/item/Docker/13344470?fr=aladdin

5.Docker 的应用场景在哪里?,https://www.zhihu.com/question/22969309

6.Docker入门教程,http://www.docker.org.cn/book/docker/what-is-docker-16.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值