docker已收录(2017-8-15)程序员

docker实践篇之hello world

2018-01-21  本文已影响1863人  robot_test_boy

写在前面:结合往期docker理论篇,进行实战!在Ubuntu 64位操作系统虚机安装容器引擎docker,通过docker创建container,输出hello world!

容器引擎docker的安装准备条件

1. Ubuntu 16.04.3 64位操作系统

2. vmware workstation工具。

为什么选择Ubuntu 16.04.3 64位操作系统?它具备哪些能力?待安装查看,不要心急。

安装容器引擎docker

在docker社区版本Community Edition (CE)中选择stable可靠版本分支进行实践,其余edge新特性分支和企业版本Enterprise  Edition(stable和edge)后期考虑实践下。

步骤1. 在vmware workstation工具中启动好一个ubuntu 16.04.3 64位OS操作系统的虚机,以便安装docker。

ubuntu 16.04.3 64位OS具备什么能力:

1)含有容器依赖的lxc,内核版本

lxc

2)含有容器依赖的内核版本

内核版本号

步骤2:在Ubuntu虚机内部安装容器引擎docker。

先获取docker安装和服务启动的脚本然后指定阿里云软件安装源执行脚本即可。

$ curl -fsSL get.docker.com -o get-docker.sh

$ sudo sh get-docker.sh --mirror Aliyun

脚本执行完可以看到,docker client和server的版本号,API版本号,开发语言等等。

docker安装完成

从安装后的提示信息看,假如使用docker的用户不是root权限的,需要要将你的用户添加到docker用户组内。在未加入docker用户组前,执行了docker命令,发现当前用户没有权限连接到docker daemon socket,原因是在通过Unix socket访问docker sock时没有权限。王宝强问什么情况?原理是什么?

将自己用户添加到docker用户组内

刘若英说后来了解到,在默认情况下,docker 命令会用Unix socket和Docker引擎通讯。而只有 root 用户和docker组的用户才可以访问Docker引擎的Unix socket。出于安全考虑,一般Linux系统上不会直接使用root用户。因此,更好地做法是将docker的用户加入docker用户组。

$ sudo usermod -aG docker_123 $USER

注意要先执行exit退出,重新登录才会有效。或者是不退出,执行source /etc/profile。

自己用户执行docker命令
容器引擎docker的相关检查

1) docker服务状态检查

docker服务检查

2) docker进程检查

docker有两个进程:dockerd守护进程及其子进程docker-containerd。pwdx 进程id可以看到进程运行的目录。到docker-containerd运行目录下可以看到daemon等信息。

docker进程检查

3) docker命令执行,在添加到docker用户组时已经执行查看image。

容器引擎docker启动HelloWorld容器

1) docker中指定镜像名称执行run命令

从执行日志中看,本地没有此镜像,从docker仓库里pull拉取下来。然后启动容器输出,Hello from docker!更详细过程如下图:

docker run HelloWorld

根据安装提示信息还尝试了ubuntu的安装。

容器启动成功了,代表docker安装结束。老师说杰伦不要着急,杰伦答我等你下课

本着理论结合实践的目的,我们看下Ubuntu和HelloWorld的镜像分层结构长啥样?

docker镜像分层

小岳岳看见了,“我的天啊!”,HelloWorld镜像大小只有1.85KB!镜像可以这么小嘛!

从docker history 镜像名来看,HelloWorld只有两层:拷贝文件和输出hello。Ubuntu结构有6层。

看到HelloWorld容器输出的是hello,能不能改成hello robot_test_boy!如何修改制作容器镜像,请看下期内容!不见不散哦!

本期主要参考资料:

docker安装-官方  和  docker安装-中文

上一篇 下一篇

猜你喜欢

热点阅读