docker容器部署

一.容器三大概念linux

1.镜像    2.容器 至关于打隔断,独立的空间     3.仓库nginx

2.概念:因为在物理机上实行的隔离,启动容器和启动进程同样快速redis

二.核心技术docker

1.Cgroups (Control Groups)-资源管理:控制最多使用多少内存,cpu,用来限制使用资源windows

2.NameSpace-命名空间   在总空间(系统驱动全部资源)的基础上划分出独立的空间,隔离6个东西以下:centos

     1.主机名(一个终端改主机名,其他全部终端打开都能看到改过的主机名) -容器看不到安全

     2.网络命名空间(当一个终端改ip地址的时候,其他终端用原ip则登不上去)-容器ip变了bash

     3.文件系统命名空间(chroot 改变根目录路径)网络

     4.进程命名空间(pstree执行几个进程,)只能看见本身的进程,别的进程看不见curl

     5.信号向量命名空间(好比kill -l 有64个信号,发一个信号进程会有回应)

     6.用户隔离(不一样的命名空间里有不一样的用户)

3.Selinux安全

三.Docker概念

1.是一套完整的容器管理系统

2.docker提供了一组命令,让用户更加直接方便的使用

3.优势:相比传统虚拟化技术,容器更加简洁高效,容器不须要虚拟机操做系统(缺点就是linux不能兼容windows),容器使用共享公共库和程序

 缺点:1.隔离线没有虚拟化强(改一个全部全变了)

         2.公用linux内核,安全性有先天缺陷

         3.Selinux 难以控制

         4.监控容器和容器排错是挑战

四.安装docker

1.安装前准备:

  须要64位操做系统

  至少是RHEL6.5以上的版本,强烈推荐RHEL7

  关闭防火墙(必须)

2.配置yum源(建立两台虚拟机docker1,docker2)

1.docker软件包位于光盘RHEL-extras.iso下面

2.在物理机ftp目录下建立文件夹extras

mkdir  /var/ftp/extras

3.挂载光盘在此目录下

mount RHEL-extras /var/ftp/extras
df -h 查看一下
4.安装docker

yum -y install docker(35个包)

systemctl restart docker

systemctl enable docker

五.镜像

1.在docker中容器是基于镜像启动的

2.镜像 是启动容器的核心

3.镜像启用分层设计

4.使用快照的cow技术,确保底层数据不丢失

5.查看镜像 docker images

6.官网:(hub.docker.com网址上下载镜像)

7.命令行搜索镜像: docker search 关键字(如nginx)

]#docker search busybox

]#docker pull docker.io/busybox (这个是官方的,下载次数最多)

六.下载.上传镜像

]#docker help pull

]#docker pull [options] name[:tag| @digest]

]#docker pull docker.io/busybox   下载镜像

]#docker push docker.io/busybox  上传镜像

七.打包镜像

docker save 名称(repository)   :    标签(tag) -o 文件名

docker1]#docker save docker.io/busybox:latest -o busybox.tar

docker1]#scp busybox.tar root@192.168.1.32:/root

docker2]#ls

docker2]# docker images

docker2]#docker load -i busybox.tar

docker2]#docker images

八.运行容器:

docker run -it docker.io/busybox:latest /bin/sh   #/bin/sh 为启动命令,若是不写就为默认的启动命令

/ # ps -ef 进程隔离

/ # hostname  主机名隔离

/ # ifconfig     网络隔离

/ # ls /        文件系统隔离

/ # cat /etc/passwd    用户隔离

/ #       信号向量命名空间隔离

九.镜像经常使用命令  (镜像:标签)

1.docker history 查看镜像的制做历史

  ]#docker history docker.io/redis:latest

2.docker inspect 查看底层详细信息

  ]#docker inspect docker.io/redis:latest

  Env 环境变量

  Cmd 启动命令

3.docker images 查看镜像列表

4.docker pull 下载镜像

  ]#docker pull docker.io/busybox   下载镜像

5.docker push 上传镜像

  ]#docker push docker.io/busybox  上传镜像

6.docker rmi 删除本地镜像

  ]#docker rmi docker.io/centos

7.docker save 镜像另存为tar包

  ]#docker save docker.io/busybox:latest -o busybox.tar

8.docker load 使用tar包导入镜像

  ]#docker load -i busybox.tar

9.docker search 搜索镜像

10.docker tag 修改镜像名称和标签

  ]#docker tag docker.io/centos:latest cen:v1     将 docker.io/centos:latest 改成 cen:v1

十.容器经常使用命令:  (命令+id)

1.docker run 运行容器          #建立一个新的容器而且启动

   docker run -it docker.io/centos

2.docker run -itd docker.io/nginx:latest     启动后放在后台(好比nginx)

   docker inspect 882117d0581d 能够查看到nginx的地址

   ping 172.17.0.2
   curl 172.17.0.2

3.docker ps 查看容器列表

           ]#docker ps -a  显示全部容器

            ]#docker ps -aq  只显示ID

4.docker stop 关闭容器

       经过docker ps 查看容器的Id       docker stop id号 关闭容器

5.docker start 启动容器

      经过docker ps 查看容器的Id       docker start id号 开启容器

6.docker restart 重启容器

      经过docker ps 查看容器的Id       docker restart id号 重启容器

7.docker attach|exec 进入容器

   1.docker attach 进入已经启动的容器  链接的是systemd(上帝进程)  exit会致使容器关闭   须要 ctrl + p q 放入后台

   docker ps 查看id 后   docker attch id号 进入

   2.docker exec 进入新的进程     比较经常使用(新开一个控制台) 直接退出后不会影响进程

  docker exec  -it   id号  /bin/bash

  进入后:pstree -p

8.docker inspect 查看容器底层信息

  ]#docker top 882117d0581d

9.docker top 查看容器进程列表

  ]#docker top 882117d0581d

10.docker rm 删除容器

     ]#docker rm 882117d0581d

相关文章
相关标签/搜索