docker容器部署

Posted jeffzhao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了docker容器部署相关的知识,希望对你有一定的参考价值。

一.容器三大概念

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

二.概念:由于在物理机上实行的隔离,启动容器和启动进程一样快速

三.核心技术:

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

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

     1.主机名(一个终端改主机名,其余所有终端打开都能看到改过的主机名) -容器看不到

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

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

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

     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

容器常用命令:

docker run 运行容器

docker ps 查看容器列表

docker stop 关闭容器

docker start 启动容器

docker restart 重启容器

docker attach|exec 进入容器

docker inspect 查看容器底层信息

docker top 查看容器进程列表

docker rm 删除容器

 

以上是关于docker容器部署的主要内容,如果未能解决你的问题,请参考以下文章

Docker多容器部署LNMP环境

如何使用 Docker 部署容器

前端应用容器化部署 Docker

8g内存部署docker mysql容器够吗

docker2 Docker容器操作,Docker应用部署,迁移备份

docker多个容器连接 将 Rails 程序部署到 Docker 容器中