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:多机编排引擎
标签:sudo,ce,自动,apt,install,Docker,安装,docker
From: https://blog.51cto.com/lmm01/6834284