首页 > 其他 > 详细

Docker学习笔记(一)

时间:2018-08-04 17:03:01      阅读:198      评论:0      收藏:0      [点我收藏+]
Docker组件:images,containers,networks,volumes,plugins,other objects.

安装:
下载此repo文件并修改,它里面默认是指向docker官方镜像,使用时会有问题,需要修改指向
https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/7/x86_64/stable/
技术分享图片

技术分享图片
修改如下:
技术分享图片
另外,在安装docker-ce时需要extras源来安装container-selinux,配置源如下:
技术分享图片
安装完后,配置镜像站,国内都需要用镜像加速站
技术分享图片
以上是官方镜像站,但是不稳定,可以到阿里云上生成私有加速地址

安装完成后,一些基本信息查看:
docker version查看版本信息,查看服务端版本信息需要先启动docker服务
#systemctl start docker.service
#docker version
技术分享图片
#docker info 查看containers,images,storage,宿主机操作系统
技术分享图片

常用docker命令,使用docker --help查看
技术分享图片
技术分享图片

技术分享图片
技术分享图片
个人觉得help中对于这些命令的意义和用法已经解释的比较清楚了
还可以使用docker help [Managements Commands]查看具体管理命令的用法
例如,
技术分享图片
查看所有本地镜像:
技术分享图片

上搜索docer hub上的image (需要联网)
技术分享图片
在docker hub上搜索nginx,其中官方提供的镜像中还有小版本alpine版,它不包含调试工具,所以可以用来做测试
示例,下载镜像
技术分享图片
删除镜像
技术分享图片
查看容器:
docker container ls [-a] 或者docker ps [-a]
技术分享图片
容器在宿主机上是一个进程,上图中的command表示容器默认运行的程序(命令)
运行一个容器的命令:
docker [container] run .......
技术分享图片
docker run常用的参数:
--name 指定容器名称,格式string
-d 即--detach 让容器运行在后台
--network 指定让容器选择使用哪个网络,默认bridge
-t 即--tty 如果容器需要运行在交互式接口,这个参数使之有一个终端可操作
-i 即--interactive 让容器保持在交互式接口状态,通常和-t同时使用
--rm 表示当容器停止时自动删除容器
问题1,如何创建一个容器:
技术分享图片
这里就创建了一个容器式的操作系统,并且它的主机名就是容器ID
技术分享图片
上图可以看到STATUS项,容器是退出状态,并且docker container ls没有正在运行的容器,因为一开始就是让centos1运行在前台,在exit时容器就自动停止了。
让容器在后台持续运行:
技术分享图片
技术分享图片
可以再进入容器看看之前创建的文件是否还存在
技术分享图片

问题2,如何在一个微系统容器中运行httpd服务
busybox是一个相对完整的简单的微系统docker image,镜像中已经包含了httpd服务
技术分享图片
container中80端口开启
技术分享图片

宿主机上的虚拟桥接网卡:
技术分享图片
访问container提供的http服务
技术分享图片

问题3,我们在使用容器来运行服务时,不必每次都运行一个微系统,直接使用需要的服务镜像,例如nginx 
技术分享图片
那如何访问此服务呢?还是之前说的如果不指明网络,创建容器是自动会使用虚拟桥接网络模式。这里只需要docker inspect来查看指定容器被分配的IP即可
技术分享图片
技术分享图片
技术分享图片
因此我们可以通过宿主机访问http服务了:
技术分享图片

问题4,如果我们需要进入一个已启动的容器中进行调试服务呢?通常服务都是运行在容器的前台,这样才能避免容器一启动即退出。我们需要接入容器那肯定需要一个运行在前台的交互式界面。但是服务型的容器是不会启用shell程序的,所以我们需要在容器中服务的进程基础是开启一个进程并独立运行,这时候就会用到exec方式
例如,接着上面的nginx容器,假如此时我一定要进入容器调一些配置,那进入方法如下:
技术分享图片
技术分享图片

问题5,上面的nginx容器运行后,其日志放在哪的,如何查看呢?这个问题还是要回到之前提到的概念:容器运行只有服务本身一个进程。它不需要像通常的操作系统中那样把程序的日志存储起来(因为有其它程序所以必须储存在一个文件中),而容器中服务即主程序,它直接将日志传给控制台即可(没有其它程序会用到)因为整个容器只有它一个主程序。
以上可以验证:
技术分享图片
真正的日志可以使用docker container logs获取:
技术分享图片






Docker学习笔记(一)

原文:https://www.cnblogs.com/allin2018/p/9419062.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!