docker简明教程

Docker介绍

Docker 帮助开发人员在任何地方构建、共享、运行和验证应用程序,而无需繁琐的环境配置或管理。

1. 镜像

可以理解为某个程序或服务的打包,包含了该程序运行所需的所有文件和依赖

2.容器

容器是基于镜像创建的可运行实例,是镜像运行起来的样子。容器拥有自己独立的文件系统、网络、资源和进程等。不会与宿主机中的文件、网络等发生干扰

3. Docker Registry

集中存放docker镜像的仓库,可以从公开共享的仓库中获取docker镜像

4. Docker Compose

通过YAML配置文件方便的管理多个docker容器

5. Volume

卷,存储卷,docker管理和创建的数据持久化目录(虽然挂载于主机目录但完全由docker创建和管理,适用于不关注宿主机存储路径的情况)

6. Bind Mount

将主机目录挂载至docker容器中

Docker安装

debian安装最新docker

设置apt仓库:

# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

# Add the repository to Apt sources:
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update

安装最新版本:

sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

CentOS Stream 9、10安装docker

设置dnf仓库:

sudo dnf -y install dnf-plugins-core
sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

安装最新版本:

sudo dnf install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

更多发行版安装参见官方文档:https://docs.docker.com/engine/install/

启动Docker守护进程

sudo systemctl daemon-reload
sudo systemctl start docker
sudo systemclt enable docker

sudo dockerd #假如不使用systemd管理

镜像操作

Docker Hub镜像搜索

用法docker search [选项] 关键词

docker search busybox

拉取镜像

用法docker image pull [选项] NAME[:TAG|@DIGEST]

docker image pull debian #如果未提供标签则默认使用:last标签。即:docker image pull debian:last

支持使用别名以简化命令(推荐):

docker pull debian:1.0

使用哈希值(@DIGEST)

docker pull nginx@sha256:1b930d010525941c1d56ec53b97bd057a67ae1865eebdf0429d10aa60d9666

使用代理配置

编辑docker客户端配置文件~/.docker/config.json添加如下代理配置:

{
 "proxies": {
   "default": {
     "httpProxy": "http://proxy.example.com:3128",
     "httpsProxy": "https://proxy.example.com:3129",
     "noProxy": "*.test.example.com,.example.org,127.0.0.0/8"
   }
 }
}

评论