Docker 简介
Docker 是什么?
Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。
Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。
参考文档
- Docker 官网:https://www.docker.com/
- Docker 仓库:https://hub.docker.com/
- Docker 文档:https://docs.docker.com/reference/cli/docker/
安装
Windows
下载
Docker Desktop
下载地址:https://www.docker.com/products/docker-desktop/
配置
在安装前需要对 windows 系统进行一些配置 启用或关闭 windows 功能,开启 Hyper-V 和 Linux 子系统(WSL2)
安装
双击安装程序,傻瓜式安装即可
接收协议
跳过登录
跳过调查
进入之后就可以愉快的食用了
配置镜像加速
已华为云为例:其他镜像源可自行搜索
登录华为云,找到镜像加速地址,请参考华为云镜像加速地址,然后把地址加入到配置文件中
卸载
直接在控制面板点右键卸载即可
Linux
配置
- 云服务:华为云
- 规格:2vCPUs | 4GiB | c7.large.2
- 镜像:CentOS 7.9 64bit
设置华为云 yum 源
说明
- 只是为了下载速度更快,不是必要步骤
- 查看源信息
bash
yum repolist
- 备份配置文件
bash
cp -a /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
- 下载华为云的
CentOS-Base.repo
文件到/etc/yum.repos.d/
目录下
bash
wget -O /etc/yum.repos.d/CentOS-Base.repo https://repo.huaweicloud.com/artifactory/os-conf/centos/centos-7.repo
- 清除原有 yum 缓存
bash
yum clean all
- 刷新缓存
bash
yum makecache
- 或者查看所有配置可以使用的文件,也会自动刷新缓存
bash
yum repolist all
- 查看源信息
bash
yum repolist
还原 yum 源
说明
- 只是为了记录如何还原 yum 源,可忽略
- 还原
CentOS-Base.repo
文件
bash
cp -a /etc/yum.repos.d/CentOS-Base.repo.bak /etc/yum.repos.d/CentOS-Base.repo
- 清除原有 yum 缓存
bash
yum clean all
- 刷新缓存
bash
yum makecache
- 或者查看所有配置可以使用的文件,也会自动刷新缓存
bash
yum repolist all
- 查看源信息
bash
yum repolist
安装 docker
- 若您安装过 docker,需要先卸载,之后再安装依赖
bash
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
- 根据版本不同,下载 repo 文件,这里是 CentOS/RHEL 系统
bash
wget -O /etc/yum.repos.d/docker-ce.repo https://repo.huaweicloud.com/docker-ce/linux/centos/docker-ce.repo
bash
cat /etc/yum.repos.d/docker-ce.repo
- 替换软件仓库地址
bash
sudo sed -i 's+download.docker.com+repo.huaweicloud.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo
bash
cat /etc/yum.repos.d/docker-ce.repo
- 更新索引文件
bash
sudo yum makecache
- 安装 docker
bash
sudo yum install docker-ce
- 查看 docker 版本
bash
docker --version
- 开机自启
bash
systemctl enable docker
- 启动 docker
bash
systemctl start docker
设置镜像加速
- 在华为云控制台找到镜像加速地址
- 将加速器地址复制到剪切板,在 linux 系统中执行即可
bash
cat >> /etc/docker/daemon.json << EOF
{
"registry-mirrors": [ "https://xxxx.swr.myhuaweicloud.com" ]
}
EOF
- 重启 docker
bash
systemctl restart docker
- 检查是否配置成功
bash
docker info
安装 docker-compose
- 下载最新版本的 Docker Compose
bash
curl -SL https://github.com/docker/compose/releases/download/v2.27.1/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose
说明
- 使用 curl 方式安装下载很慢,可以先在本地下载 docker-compose 离线安装包:
- 国外下载地址:https://github.com/docker/compose/releases
- 下载完后将离线安装包上传到 /usr/local/bin/ 目录。
- docker-compose 安装包是一个名为 docker-compose 的文件,没有后缀名
- 给可执行权限给下载的二进制文件
bash
sudo chmod +x /usr/local/bin/docker-compose
- 创建软链接以便于从任何位置调用 docker-compose 命令
bash
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
- 验证安装是否成功
bash
docker-compose --version
卸载 docker
- 先删掉 docker 资源
bash
docker rm -f $(docker ps -aq) # 删掉所有容器
docker rmi $(docker images -aq) # 删掉所有镜像
docker network rm $(docker network ls -q) # 删掉所有网络
docker volume rm $(docker volume ls -q) # 删掉所有存储卷
- 查看相关包
bash
yum list installed | grep docker
- 删除相关包
bash
yum remove containerd.io docker-buildx-plugin docker-ce docker-ce-cli docker-ce-rootless-extras docker-compose-plugin
- 删除 docker 相关文件
bash
rm -rf /var/lib/docker
rm -rf /etc/docker
rm -rf /run/docker
rm -rf /var/run/docker.sock
命令清单
仓库命令
命令 | 描述 |
---|---|
docker login | 登录仓库 |
docker logout | 登出仓库 |
docker pull | 下载镜像 |
docker push | 上传镜像 |
docker search | 搜索镜像 |
镜像命令
命令 | 描述 |
---|---|
docker images | 列出本地主机上的镜像 |
docker history | 显示镜像的历史记录 |
docker inspect | 获取有关 Docker 对象的详细信息 |
docker tag | 给镜像添加新的标签 |
docker save | 将一个或多个镜像保存成压缩(tar)存档 |
docker load | 从 tar 存档或 STDIN 加载镜像 |
docker build | 从 Dockerfile 构建映像 |
docker rmi | 删除一个或多个镜像 |
容器命令
命令 | 描述 |
---|---|
docker ps | 列出容器 |
docker top | 列出容器中运行进程 |
docker port | 列出端口映射或容器的特定映射 |
docker stats | 显示容器资源使用情况统计信息的实时流 |
docker logs | 获取容器的日志 |
docker create | 基于镜像创建容器 |
docker rename | 重命名容器 |
docker run | 新建并启动容器 |
docker start | 启动一个或多个已停止的容器 |
docker restart | 重新启动一个或多个容器 |
docker exec | 进入运行中的容器 |
docker stop | 停止一个或多个运行中的容器 |
docker commit | 根据容器的更改创建新镜像 |
docker cp | 在容器和本地文件系统之间复制文件/文件夹 |
docker kill | 杀死一个或多个正在运行的容器 |
docker rm | 删除一个或多个容器 |
数据卷命令
命令 | 描述 |
---|---|
docker volume ls | 列出所有卷 |
docker volume create | 创建卷 |
docker volume inspect | 显示一个或多个卷上的详细信息 |
docker volume rm | 删除一个或多个卷 |
docker volume prune | 删除所有未使用的本地卷 |
网络命令
命令 | 描述 |
---|---|
docker network ls | 列出所有网络 |
docker network create | 创建一个网络 |
docker network inspect | 返回有关一个或多个网络的信息 |
docker network connect | 将容器连接到网络 |
docker network disconnect | 断开容器与网络的连接 |
docker network rm | 删除一个或多个网络 |
docker network prune | 删除所有未使用的网络 |
清理命令
命令 | 描述 |
---|---|
清理镜像 | |
清理容器 | |
清理数据卷 | |
清理网络 | |
清理所有 |