千家信息网

Docker安装与管理

发表于:2024-09-22 作者:千家信息网编辑
千家信息网最后更新 2024年09月22日,Docker概述Docker是什么?是一种轻量级的"虚拟机"在Linux容器里运行应用的开源工具Docker的使用场景 打包应用程序简化部署可脱离底层硬件任意迁移Docker核心概念镜像容器仓库公有仓
千家信息网最后更新 2024年09月22日Docker安装与管理

Docker概述

Docker是什么?

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

Docker的使用场景

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

Docker核心概念

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

CentOS安装Docker的两种方式

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

docker安装

主机操作系统IP地址主要软件
服务器CentOS7192.168.142.130Docker-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-CEyum install docker-ce -y#关闭防火墙和安全功能systemctl stop firewalld.servicesetenforce 0#开启dockersystemctl start docker.service#开机自启动dockersystemctl 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分配一个伪终端**实例:**```bashdocker 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/bashdocker 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容器Adocker run --cpu-shares 1024容器Bdocker run --cpu-shares 2048容器C

实例:

#按比例分配#创建两个容器为c1和c2, 若只有这两个容器,设置容器的权重,使得c1和c2的CPU资源占比为33.3%和166.7%。locker run -itd --name c1 --cpu-shares 512 paigeeworld/centos7locker 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挂载容器中的/data1docker run -v /var/www:/data1 --name web1 -it centos /bin/bash#创建测试cd /data1/touch test#退出容器exit#返回宿主机进行查看ls /var/www[root@localhost ~]# ls /var/wwwtest

docker数据卷容器

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

谢谢阅读!!!

0