Docker安装与管理

Docker概述

Docker安装与管理

创新互联服务项目包括清水河网站建设、清水河网站制作、清水河网页制作以及清水河网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,清水河网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到清水河省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!

Docker是什么?

是一种轻量级的“虚拟机"
在Linux容器里运行应用的开源工具

Docker的使用场景

 打包应用程序简化部署
可脱离底层硬件任意迁移

Docker核心概念

镜像
容器
仓库
公有仓库:官方提供
私有仓库:私人搭建
注:进项和容器可以相互转换!

CentOS安装Docker的两种方式

使用CURL获得Docker的安装脚本进行安装
使用YUM仓库来安装Docker
注:建议使用YUM安装!

docker安装

主机操作系统IP地址主要软件
服务器 CentOS7 192.168.142.130 Docker-19.003.0-ce
#安装依赖包
yum install -y yum-utils device-mapper-persistent-data lvm 2

#设置阿里云镜像源
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

#安装Docker-CE
yum install docker-ce -y

#关闭防火墙和安全功能
systemctl stop firewalld.service
setenforce 0

#开启docker
systemctl start docker.service

#开机自启动docker
systemctl enable docker.service

#查看服务进程状态
ps aux | grep docker


docker基础操作

#查看docker本号
docker version

#公有仓库搜索镜像
docker search nginx

#下载镜像(忒慢!)
docker pull 仓库名称【:标签】

实例:

docker pull nginx
#重载守护进程
systemctl daemon-reload

#重启服务
systemctl restart docker

#查看已下载的镜像
docker images

#查看镜像详细信息
docker inspect 镜像ID  

#添加新标签
docker tag 名称[:标签] 新名称[:新标签]

#删除镜像
docker rmi 仓库名称[:标签]
docker rmi 镜像ID

#存出镜像
docker save -o 存出镜像名 存出的镜像

#载入镜像
docker load --input 存出文件名
docker load < 存出文件名

#上传镜像
docker push 仓库名称[:标签]


docker容器操作

#创建容器
docker create [选项]镜像运行的程序

#选项
-i让容器的标准输入保持打开
-t让Docker分配一个伪终端

**实例:**
```bash
docker create -it nginx:latest  /bin/bash
#查看容器
docker ps [选项]

#选项
-a:列出最近一次启动的容器
-q:静默模式,只显示容器编号

实例:

docker ps -a

#启动容器
docker start  容器ID

#创建容器并执行shell命令
docker run [选项]镜像运行的程序,执行的命令

#选项
-p:可以指定映射端口;
-P:将容器开放的网络端口(默认是80端口)映射到主机随机的一个端口;
-d:在后台进行运行

#持续在后台执行
docker run -d 容器名称 /bin/bash -c "while true;do echo hello;done"

#终止容器
docker stop 容器的ID/名称

#进入容器,容器一定要处于up状态

docker exec p[选项]容器的ID/名称 /bin/bash
docker exec -it 容器ID /bin/bash

#选项
-i : 即使没有连接,也保持STDIN 打开;
-t : 分配一个伪终端,这样就可以看到 Linux 命令提示符了;

#退出容器
exit 

#导出容器
docker export 容器的ID/名称ID > 文件名

#导入容器(会生成镜像,而不会创建容器)
cat 文件名 | docker import -生成的镜像名称:标签

#删除容器
docker rm [选项]容器的ID/名称

#批量删除
docker ps -a | awk '{print "docker rm "$1}' | bash


docker资源控制

1.限制CPU使用速率

●通过--cpu-quota选项来限制CPU的使用率
●通过修改配置文件cpu.cfs_quota_us实现

实例:

docker run --cpu-quota 20000 centos

2.多任务按比例分享CPU

docker run --cpu-shares 1024容器A
docker run --cpu-shares 1024容器B
docker run --cpu-shares 2048容器C

实例:

#按比例分配
#创建两个容器为c1和c2, 若只有这两个容器,设置容器的权重,使得c1和c2的CPU资源占比为33.3%和166.7%。
locker run -itd --name c1 --cpu-shares 512 paigeeworld/centos7
locker run -itd --name c2 --cpu-shares 1024 paigeewor1d/centos7

3.使用--cpuset-cpus选项限制CPU内核使用权

docker run- -m 512m paigeeworld/ centos7

4.对blkio的限制

--device-read-bps: 限制读某个设备的bps (数据量)

实例:

docker run -d --device-read-bps /dev/sda: 30M paigeeworld/centos7

--device-write-bps :限制写入某个设备的bps (数据量)

实例:

docker run -d --device-write-bps dev/sda: 30M pai geewor ld/ centos7

--device-read-iops :限制读某个设备的iops (次数)

--device-write-iops :限制写入某个设备的iops (次数)


Docker的数据管理

数据管理操作

方便查看容器内产生的数据
多容器间实现数据共享

两种管理方式

数据卷(容器和宿主间的共享)
数据卷容器(实现容器之间的共享)

docker数据卷

数据卷是一个提供容器使用的特殊目录
#创建数据卷
docker run -d -V /data1 -V /data2 --name web httpd:centos

#挂载主机目录作为数据卷
docker run -d -V /var/www:/data1 --name web-1 httpd:centos

#挂载web容器中的数据卷到新的容器
docker run -it --volumes-from web --name db1 httpd:centos /bin/bash

实例:

#下载镜像
docker pull centos
#宿主机目录/var/www挂载容器中的/data1
docker run -v /var/www:/data1 --name web1 -it centos /bin/bash

#创建测试
cd /data1/
touch test

#退出容器
exit

#返回宿主机进行查看
ls /var/www

[root@localhost ~]# ls /var/www
test

docker数据卷容器

#数据卷容器
docker run --name web100 -v /data1 -v /data2 -it centos /bin/bash

#新容器挂载数据卷容器web100
docker run -it --volumes-from web100 --name db1 centos /bin/bash

谢谢阅读!!!


当前名称:Docker安装与管理
当前地址:http://myzitong.com/article/ggpcpc.html