设为首页 收藏本站
查看: 1126|回复: 0

[经验分享] 大型架构及配置技术Docker

[复制链接]

尚未签到

发表于 2019-2-21 10:53:00 | 显示全部楼层 |阅读模式
  什么是容器
  · 容器技术已经成为应用程序封装和交付的核心技术
· 容器技术的核心有以下几个内核技术组成:
– CGroups(Control Groups)-资源管理
– NameSpace-进程隔离
– SELinux安全
· 由于是在物理机上实施隔离,启动一个容器,可以像启动一个进程一样快速
  什么是Docker
  · Docker是完整的一套容器管理系统
· Docker提供了一组命令,让用户更加方便直接地使用容器技术,而丌需要过多关心底层内核技术
  Docker特性
Docker优点
· 相比于传统的虚拟化技术,容器更加简洁高效
· 传统虚拟机需要给每个VM安装操作系统
· 容器使用的共享公共库和程序
  Docker的缺点
· 容器的隔离性没有虚拟化强
· 共用Linux内核,安全性有先天缺陷
· SELinux难以驾驭
· 监控容器和容器排错是挑战
  部署Docker
安装软件
安装前准备
· 需要64位操作系统
· 至少RHEL6.5以上的版本,强烈推荐RHEL7
· 关闭防火墙(不是必须)
  安装Docker
· 软件包列表:
– docker-engine
– docker-engine-selinux
  什么是镜像
· 在Docker中容器是基于镜像启动的
· 镜像是启动容器的核心
· 镜像采用分层设计
· 使用快照的COW技术,确保底层数据不丢失
  Docker hub镜像仓库
· https://hub.docker.com
· Docker官方提供公共镜像的仓库(Registry)
[root@jacob~]#docker search rhel7
[root@jacob~]#docker search centos
[root@jacob~]#docker search nginx
[root@jacob~]#docker search mysql
  镜像操作
下载、上传镜像
· 下载镜像(从镜像仓库中下载镜像)
[root@server0 ~]# docker pull rhel7
· 上传镜像(上传镜像到仓库)
[root@server0 ~]# docker push rhel7
  导入、导出镜像
· 导入镜像(通过tar包文件导入镜像)
[root@server0 ~]# docker load < xx.tar
[root@server0 ~]# docker images
· 导出镜像(将本地镜像导出为tar文件)
[root@server0 ~]# docker images
[root@server0 ~]# docker save image_name > xx.tar
  启动镜像
· 启动centos镜像生成一个容器
[root@server0 ~]# docker images
[root@server0 ~]# docker run -it centos bash
· 开启另一个终端(查看容器信息)
[root@server0 ~]# docker ps
  镜像常用命令
命令列表
· 命令列表
– docker images //查看镜像列表
– docker history //查看镜像制作历叱
– docker inspect //查看镜像底层信息
– docker pull //下载镜像
– docker push //上传镜像
– docker rmi //删除本地镜像
– docker save //镜像另存为tar包
– docker load //使用tar包导入镜像
– docker search //搜索镜像
– docker tag //修改镜像名称和标签
  docker images
· 查看镜像列表
– 镜像仓库名称
– 镜像标签
– 镜像ID
– 创建时间
– 大小
[root@jacob ~]# docker images
REPOSITORY   TAG         IMAGE ID                   CREATED             SIZE
centos                 latest        980e0e4c79ec          8 months ago         196.7 MB
  docker history
· 查看镜像历叱
– 了解镜像制作过程
– 详绅参考后面的dockerfile内容
[root@jacob ~]# docker history centos
IMAGE                CREATED        CREATED BY                                   SIZE    COMMENT
980e0e4c79ec  8 months ago  /bin/sh -c #(nop) CMD [&quot;/bin/bash&quot;]  0 B        
          8 months ago  /bin/sh -c #(nop) LABEL name=CentOS Base Ima 0 B
          8 months ago  /bin/sh -c #(nop) ADD file:e336b45186086f7d9d 196.7 MB
          8 months ago  /bin/sh -c #(nop) MAINTAINER https://github. 0 B
  docker inspect
· 查看镜像底层信息
– 了解镜像环境变量、存储卷、标签等信息
[root@jacob ~]# docker inspect centos
... ...
{
&quot;Id&quot;: &quot;sha256:980e0e4c79ec933406e467a296ce3b86685e6b42eed2f873745e6a91d718e37a&quot;,
&quot;RepoTags&quot;: [
&quot;centos:latest&quot;
],
&quot;RepoDigests&quot;: [],
&quot;Parent&quot;: &quot;&quot;,
&quot;Comment&quot;: &quot;&quot;,
&quot;Created&quot;: &quot;2016-09-06T21:10:20.397787682Z&quot;,
&quot;Container&quot;: &quot;37446a1771cbec3e85b76d9159fd6a5a92743655cb92a65661e8a174bad81c7e“
... ...
  docker rmi
· 删除本地镜像
– 注意:启动容器时删除镜像会提示错误
[root@jacob ~]# docker rmi centos
Error response from daemon: conflict: unable to remove repository reference&quot;centos&quot; (must force) - container 3daba799135c is using its referenced image 980e0e4c79ec
  docker save|load
· 保存本地镜像另存为tar文件
– 方便其他人使用tar包导入镜像
[root@jacob ~]# docker save centos > centos.tar
[root@jacob ~]# ls centos.tar
centos.tar
· 使用tar包文件导入镜像
[root@jacob ~]# docker load < centos.tar
  docker tag
· 重命名镜像名称(复制)
[root@jacob ~]# docker images
REPOSITORY     TAG     IMAGE ID             CREATED      SIZE
centos                    latest   980e0e4c79ec   8 months ago   196.7 MB
[root@jacob ~]# docker tag centos:latest test:v1
[root@jacob ~]# docker images
REPOSITORY    TAG         IMAGE ID             CREATED          SIZE
centos                   latest   980e0e4c79ec    8 months ago     196.7 MB
test                         v1        980e0e4c79ec    8 months ago     196.7 MB
  容器常用命令
命令列表
· 命令列表
– docker run //运行容器
– docker ps //查看容器列表
– docker stop //关闭容器
– docker start //启动容器
– docker restart //重启容器
– docker attach|exec //进入容器
– docker inspect //查看容器底层信息
– docker top //查看容器进程列表
– docker rm //删除容器
  docker run
· 使用镜像启动容器
[root@jacob ~]# docker run -it centos bash
[root@bbb51ac87b08 /]#exit
[root@jacob ~]# docker run -itd centos bash
b8f218f2341c12655e6092d7d2e7fd5229824fdefce84075fb3a9569ebf82079
[root@jacob ~]# docker ps
  docker ps
· 列出容器列表
– docker ps 查看正在运行的容器
– docker ps -a 查看所有容器列表
– docker ps -aq 仅显示容器id
[root@server0 ~]# docker ps
CONTAINER ID  IMAGE  COMMAND  CREATED        STATUS         PORTS  NAMES
b8f218f2341c       centos  &quot;bash&quot;            9 minutes ago  Up 8 minutes        jovial_pasteur
  docker stop|start|restart
· 管理容器
– docker stop 关闭容器
– docker start 开启容器
– docker restart 重启容器
  [root@server0 ~]# docker ps
CONTAINER ID   IMAGE   COMMAND   CREATED      STATUS   PORTS   NAMES
b8f218f2341c        centos   &quot;bash&quot;             9 minutes ago Up 8 minutes         jovial_Pasteur
[root@server0 ~]# docker stop b8f
  docker attach|exec
· 进入容器
– docker attach 进入容器,exit会导致容器关闭
– docker exec 进入容器,退出时丌会关闭容器
[root@server0 ~]# docker ps
CONTAINER ID   IMAGE   COMMAND   CREATED         STATUS   PORTS  NAMES
b8f218f2341c       centos    &quot;bash&quot;             9 minutes ago   Up 8 minutes
7e4e51117c40     centos    &quot;bash&quot;            5 seconds ago   Up 2 seconds
[root@server0 ~]# docker attach b8f
[root@server0 ~]# docker exec -it 7e4e bash
  docker inspect
· 查看容器底层信息
[root@server0 ~]# docker ps
CONTAINER ID   IMAGE   COMMAND   CREATED         STATUS   PORTS  NAMES
b8f218f2341c        centos     &quot;bash&quot;           9 minutes ago    Up 8 minutes           jovial_Pasteur
7e4e51117c40      centos     &quot;bash&quot;          5 seconds ago    Up 2 seconds          pedantic_bard
[root@server0 ~]# docker inspect 7e4e
&quot;Id&quot;: &quot;0cc385eb6f63373397e678347890914347dc8efa3cefd809c1ed8c157651a261&quot;,
&quot;Gateway&quot;: &quot;172.17.0.1&quot;,
&quot;IPAddress&quot;: &quot;172.17.0.2&quot;,
&quot;MacAddress&quot;: &quot;02:42:ac:11:00:02&quot;
  docker top
· 查看容器进程列表
[root@server0 ~]# docker ps
CONTAINER ID   IMAGE   COMMAND   CREATED         STATUS   PORTS  NAMES
b8f218f2341c        centos     &quot;bash&quot;           9 minutes ago    Up 8 minutes           jovial_Pasteur
7e4e51117c40      centos     &quot;bash&quot;          5 seconds ago    Up 2 seconds          pedantic_bard
  [root@server0 ~]# docker top 7e4e
UID   PID   PPID   C   STIME    STATUS             TTY     TIME         CMD
root   3177 3163   0    21:25      Up 8 minutes      pts/8    00:00:00   /bin/bash
  docker rm
· 删除容器
– 注意,删除正在运行的容器时会提示错误
[root@server0 ~]# docker rm 7e4e
[root@server0 ~]# docker rm docker ps -aq




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-675254-1-1.html 上篇帖子: Docker(二十二)k8s service 的yaml 文件 下篇帖子: Docker 常用的命令
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表