Docker基本管理

Docker基本管理

文章目录

  • Docker核心概念
  • Docker镜像操作
  • Docker容器操作
  • Docker数据管理

Docker概述

Docker是什么?
  • 是一种轻量级的“虚拟机”
  • 在Linux容器里运行应用的开源工具
Docker的使用场景
  • 打包应用程序简化部署
  • 可脱离底层硬件任意迁移

Docker的核心概念及安装方式

Docker核心概念

  • 镜像
  • 容器
  • 仓库
    公有仓库:官方提供
    私有仓库:私人搭建

CentOS安装Docker的两种方式

  • 使用CURL获得Docker的安装脚本进行安装
  • 使用YUM仓库来安装Docker

安装Docker及基本管理

主机操作系统IP地址主要软件
服务器CentOS7192.168.45.129Docker-19.003.0-ce
需求描述
  • 安装Docker
  • 完成最基本的Docker操作管理(创建、启动、参数等)
  • 完成Docker创建资源控制及数据卷管理

安装Docker

#安装依懒包
yum install -y yum-utils device-mapper-persistent-data lvm2
#设置阿里云镜像版
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
#安装docker-ce
yum install -y docker-ce
#关闭防火墙和安全功能
systemctl stop firewalld.service
setenforce 0
#开启docker,并设置为开机自启
systemctl start docker.service
systemctl enable docker.service
#查看docker进程
ps aux | grep docker
#查看docker版本
docker version

在这里插入图片描述

Docker镜像操作

#搜索镜像
docker search 关键字
#示例
docker search nginx

#获取镜像
docker pull 仓库名称【:标签】
#示例
docker pull nginx

#查看镜像
docker images

#查看详细信息
docker inspect 镜像ID  
#示例
docker inspect 231d40e811cd

#添加新标签
docker tag 名称[:标签] 新名称[:新标签]
#示例
docker tag nginx:latest nginx:web

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

#存出镜像
docker save -o 存出镜像名 存出的镜像
#示例
docker save -o nginx nginx:latest

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

#上传镜像
docker push 仓库名称[:标签]
#示例
docker push abner/nginx:web

在这里插入图片描述

Docker容器操作

-------------容器操作--------------------------
#创建容器
docker create -it nginx:latest  /bin/bash
-i:让容器的标准输入保持打开
-t:让Docker分配一个伪终端

#查看容器
docker ps -a
-a 列出最近一次启动放入容器

#启动容器
docker start  容器ID


在这里插入图片描述

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

在这里插入图片描述

#进入容器,容器一定要处于up状态
docker exec p[选项]容器的ID/名称 /bin/bash
示例:docker exec -it 容器ID /bin/bash
exit 退出

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

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

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

在这里插入图片描述

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

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

在这里插入图片描述

Docker的数据管理

数据管理操作
  • 方便查看容器内产生的数据
  • 多容器间实现数据共享
两种管理方式
  • 数据卷:容器和数组之间的数据共享
  • 数据卷容器:容器之间实现共享

数据卷

数据卷是一个提供容器使用的特殊目录
创建数据卷
# 创建数据卷
docker run -d -v /data1 -v /data2 --name web
httpd:centos
示例:
docker run -v /var/www:/data1 --name web1 -it centos /bin/bash

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

数据卷容器

数据卷容器就是一个普通的容器
挂载web容器中的数据卷到新的容器
//数据卷容器
docker run --name web100 -v /data1 -v /data2 -it centos /bin/bash
//新容器挂载数据卷容器web100
docker run -it --volumes-from web100 -it centos /bin/bash

资源控制

#cpu使用率控制
#设置容器占用cpu资源为20%
[root@localhost docker]# docker run --cpu-quota 20000 nginx:latest

#按比例,权重分配
创建两个容器为c1和c2,若只有这两个容器,设置容器的权重,是的c1和c2的cpu资源占比为33.3%66.7%
docker run -itd --name c1 --cpu-shares 512 nginx:latest
docker run -itd --name c2 --cpu-shares 1024 nginx:latest
[root@localhost docker]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                     PORTS               NAMES
d28b1d73b0ed        nginx:latest        "nginx -g 'daemon of…"   6 seconds ago       Up 5 seconds               80/tcp              c2
de49e4d6b4f9        nginx:latest        "nginx -g 'daemon of…"   17 seconds ago      Up 16 seconds              80/tcp              c1
35cb117c9cc7        nginx:latest        "nginx -g 'daemon of…"   6 minutes ago       Exited (0) 5 minutes ago                       dazzling_goldberg
2286b99c2c6d        nginx:latest        "/bin/bash"              7 minutes ago       Up 7 minutes               80/tcp              flamboyant_booth

#限制容器使用指定的cpu,0,1核心数为2
[root@localhost docker]# docker run --name c3 --cpuset-cpus 0,1 nginx:latest 
[root@localhost docker]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED              STATUS                      PORTS               NAMES
83e56a65c604        nginx:latest        "nginx -g 'daemon of…"   About a minute ago   Exited (0) 52 seconds ago                       c3

#对blkio某一块磁盘的读写的限制
--device-read-bps   限制读某个设备的bps(数据量)
--device-write-bps  限制写入某个设备的bps
--device-read-iops  限制读某个设备的ipos(次数)
--device-write-iops  限制写某个设备的ipos

[root@localhost docker]# docker run -d --device-write-bps /dev/sda:30mb nginx:latest 
1a386d9c306baa36c02edda2df793ff673b46f4ace4e5ee5f72177d8cd4a3d42
[root@localhost docker]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                      PORTS               NAMES
1a386d9c306b        nginx:latest        "nginx -g 'daemon of…"   4 seconds ago    
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值