0
点赞
收藏
分享

微信扫一扫

1.Docker基础及自动安装

docker的介绍和基础操作

docker 单机容器
docker compose 单机多个容器
k8s  多机多个容器

container即容器,集装箱
docker就是搬运集装的码头工人,管理容器的管理工具

Docker的组成:
Docker 主机(Host): 一个物理机或虚拟机,用于运行Docker服务进程和容器,也称为宿主机, node节点
Docker 服务端(Server): Docker守护进程,运行docker容器 
Docker 客户端(Client): 客户端使用 docker 命令或其他工具调用docker API 
Docker 镜像(Images): 镜像可以理解为创建实例使用的模板,本质上就是一些程序文件的集合 
Docker 仓库(Registry): 保存镜像的仓库,官方仓库: https://hub.docker.com/,可以搭建私有仓库harbor 
Docker 容器(Container): 容器是从镜像生成对外提供服务的一个或一组服务,其本质就是将镜像中 的程序启动后生成的进程


容器是基于什么核心技术来实现的:Namespace和control groups

docker安装方式

1.二进制安装,可使用脚本
2.包安装:apt install docker.io

安装docker后会增加一个新的网卡docker0
docker自动生成IPtables规则

docker安装脚本:Ubuntu

#!/bin/bash
#
#********************************************************************
#Author:            limanman
#QQ:                461624736
#Date:              2023-3-14
#FileName:          install_docker.sh
#Description:       The test script
#********************************************************************
# step 1: 安装必要的一些系统工具
sudo apt-get update
sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common
# step 2: 安装GPG证书
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
# Step 3: 写入软件源信息
sudo add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
# Step 4: 更新并安装Docker-CE
sudo apt-get -y update
sudo apt-get -y install docker-ce

# 安装指定版本的Docker-CE:
# Step 1: 查找Docker-CE的版本:
# apt-cache madison docker-ce
#   docker-ce | 17.03.1~ce-0~ubuntu-xenial | https://mirrors.aliyun.com/docker-ce/linux/ubuntu xenial/stable amd64 Packages
#   docker-ce | 17.03.0~ce-0~ubuntu-xenial | https://mirrors.aliyun.com/docker-ce/linux/ubuntu xenial/stable amd64 Packages
# Step 2: 安装指定版本的Docker-CE: (VERSION例如上面的17.03.1~ce-0~ubuntu-xenial)
# sudo apt-get -y install docker-ce=[VERSION]

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://si7y70hh.mirror.aliyuncs.com"]
}
EOF
sudo systemctl restart docker

docker安装脚本:centos

#!/bin/bash
#
#********************************************************************
#Author:            limanman
#QQ:                461624736
#Date:              2023-3-14
#FileName:          install_docker.sh
#Description:       The test script
#********************************************************************
# step 1: 安装必要的一些系统工具
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
# Step 2: 添加软件源信息
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# Step 3
sudo sed -i 's+download.docker.com+mirrors.aliyun.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo
# Step 4: 更新并安装Docker-CE
sudo yum makecache fast
sudo yum -y install docker-ce
# Step 4: 开启Docker服务
sudo service docker start

# 注意:
# 官方软件源默认启用了最新的软件,您可以通过编辑软件源的方式获取各个版本的软件包。例如官方并没有将测试版本的软件源置为可用,您可以通过以下方式开启。同理可以开启各种测试版本等。
# vim /etc/yum.repos.d/docker-ce.repo
#   将[docker-ce-test]下方的enabled=0修改为enabled=1
#
# 安装指定版本的Docker-CE:
# Step 1: 查找Docker-CE的版本:
# yum list docker-ce.x86_64 --showduplicates | sort -r
#   Loading mirror speeds from cached hostfile
#   Loaded plugins: branch, fastestmirror, langpacks
#   docker-ce.x86_64            17.03.1.ce-1.el7.centos            docker-ce-stable
#   docker-ce.x86_64            17.03.1.ce-1.el7.centos            @docker-ce-stable
#   docker-ce.x86_64            17.03.0.ce-1.el7.centos            docker-ce-stable
#   Available Packages
# Step2: 安装指定版本的Docker-CE: (VERSION例如上面的17.03.0.ce.1-1.el7.centos)
# sudo yum -y install docker-ce-[VERSION]

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://si7y70hh.mirror.aliyuncs.com"]
}
EOF
sudo systemctl restart docker

docker常用命令

查看所有容器:
[root@ubuntu2004 ~]#docker ps -a
查看本地镜像及大小:
[root@ubuntu2004 ~]#docker images
REPOSITORY   TAG       IMAGE ID       CREATED         SIZE
busybox      latest    beae173ccac6   9 months ago    1.24MB
nginx        latest    605c77e624dd   9 months ago    141MB
alpine       latest    c059bfaa849c   10 months ago   5.59MB
ubuntu       latest    ba6acccedd29   12 months ago   72.8MB
查看镜像id
[root@ubuntu2004 ~]#docker images -q     
beae173ccac6
605c77e624dd
查看镜像的详细信息:
podman image inspect alpine	   (image可以省略)

拉取镜像:
[root@ubuntu2004 ~]#docker pull ubuntu

拉取应用:
[root@ubuntu2004 ~]#docker run -d --name nginx nginx
拉取应用后会生成一个新的容器叫nginx:
[root@ubuntu2004 ~]#docker ps -a
CONTAINER ID   IMAGE     COMMAND                  CREATED         STATUS         PORTS     NAMES
83090c35f1dd   nginx     "/docker-entrypoint.…"   3 minutes ago   Up 3 minutes   80/tcp    nginx
同时生成一个新的网卡:
 veth5cba4dc@if10: 桥接到docker网卡docker0
 
导出镜像:
docker save 镜像名或id -o 生成的文件名.tar 
导入镜像:
docker load -i 镜像文件名     会自动解压
删除镜像标签:
docker rmi 标签
强制删除容器:(如果有容器正在使用,那么是一种虚拟删除,空间并不释放)
docker rmi -f id
删除没有名字的none镜像:默认清dangling的,加-a清理所有不在用的镜像,定期清理
docker image prune

存储引擎

aufs/overlay/overlay2/...
docker使用overlay2
允许多个设备挂载到同一个地方

Debian(ubuntu)系统建议安装的基础包

apt update                          #安装软件前需要先更新索引
apt install procps                  #提供top, ps, free等命令
apt install psmisc                  #提供pstree, killall等命令
apt install iputils-ping            #提供ping命令
apt install net-tools               #提供netstat网络工具等
apt install iproute2                #提供ip,ss网络工具等

容器规范

运行时规范runtime spec和格式规范image format spec
runtime是真正运行容器的地方

runtime类型:
Lxc
Libcontainer
runc
rkt

容器编排工具

docker compose:单机的容器编排工具
docker swarm:容器编排引擎  多机
mesos+marathon:多机
kubernetes:多机编排引擎

举报

相关推荐

0 条评论