docker 在ubuntu系统安装,以及常用命令,配置阿里云镜像仓库,搭建本地仓库等

server/2024/12/2 8:37:55/

1.docker安装

1.1 先检查ubuntu系统有没有安装过docker 使用 docker -v 命令 如果有请先卸载旧版本,如果没有直接安装命令如下:

1.1.0 首先,确保你的系统包是最新的: 如果是root 权限下面命令的sudo可以去掉

sudo apt-get update
sudo apt-get upgrade

1.1.2. 安装必要的依赖
安装一些必要的依赖包,以便 apt 可以通过 HTTPS 使用仓库:

sudo apt-get install apt-transport-https ca-certificates curl software-properties-common

1.1.3. 添加 Docker 的官方 GPG 密钥
下载并添加 Docker 的官方 GPG 密钥:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

1.1.4. 添加 Docker APT 仓库
将 Docker 的 APT 仓库添加到你的系统中。确保你使用的是正确的 Ubuntu 版本代号(例如 focal 对应 Ubuntu 20.04,jammy 对应 Ubuntu 22.04):

sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

1.1.5. 更新 APT 包索引
更新 APT 包索引以包含新添加的 Docker 仓库:

sudo apt-get update

1.1.6. 安装 Docker
安装 Docker CE(社区版):

sudo apt-get install docker-ce docker-ce-cli containerd.io

1.1.7. 验证 Docker 安装
验证 Docker 是否安装成功并正在运行:

sudo systemctl status docker

你应该会看到类似以下的输出,表明 Docker 服务正在运行

docker.service - Docker Application Container EngineLoaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)Active: active (running) since ...

1.1.8. 将当前用户添加到 docker
为了在不使用 sudo 的情况下运行 Docker 命令,将当前用户添加到 docker 组:

sudo usermod -aG docker ${USER}

注意:添加用户到 docker 组后,需要重新登录或重启系统才能使更改生效。

1.1.9. 测试 Docker
运行一个简单的 Docker 容器来测试安装是否成功:

docker run hello-world

如果一切正常,你应该会看到一条欢迎消息,表明 Docker 已经成功安装并运行。

1.1.10. 配置 Docker 镜像加速器(可选)
如果你在中国大陆,建议配置 Docker 镜像加速器以提高下载速度。编辑或创建 /etc/docker/daemon.json 文件,添加以下内容:

{"registry-mirrors": ["https://<your_mirror>.mirror.aliyuncs.com"]
}

替换 <your_mirror> 为你的阿里云镜像加速器地址。
保存文件后,重启 Docker 服务以使配置生效:

sudo systemctl restart docker

至此docker安装完成。

2.docker常用命令:
 

可以通过docker --help  查看docker 命令帮助systemctl restart docker 重启docker 服务systemctl stop docker  停止docker 服务systemctl start docker  开启docker 服务docker pull 镜像名称 拉取镜像,从本地拉取镜像,本地没有,从远程仓库拉取docker push 镜像名称 推送镜像到本地仓库docker cp  复制docker commit 提交一个新的副本使它成为一个新的镜像 命令如下docker commit -m="提交的描述信息" -a="作者" 容器ID 要创建的目标镜像名:[镜像版本号]docker 命令 --help 查询命令帮助docker images 查看镜像docker ps  查询正在运行的容器docker ps -a 查询所有容器docker ps -ap 查询所有容器 image的IDdocker restart 容器名称或容器id  重启容器docker stop 容器名称或容器id  停止容器docker run -d  容器名称或容器id  后台启容器docker run -d -p 宿主机端口号:容器端口号 -v 宿主机挂载的绝对目录:容器的数据存放目录 -e 环境变量 容器名称    代表的意思是: 后台启动某个镜像 端口映射,目录挂载到宿主机的目录上 docker exec -it 容器名称 bash 意思进入某个容器内,进行shell交互docker logs -f 容器名称 持续查看容器的输出日志

3.本地镜像发布到阿里云仓库

3.1首先登录阿里云创建仓库如下图所示

企业用就要使用企业实例

我这里使用个人实例

先创建命名空间如图

在创建镜像仓库如下图

选择本地仓库如下图

按照阿里云的脚本运行就可以了如图

到此推送到阿里云仓库以及完成

4.将本地镜像推送到私服仓库中因为有些镜像属于公司敏感服务,所以搭建自己的私服仓库

4.1 docker registry 是官方提供的工具,可以用于构建私有镜像仓库

4.2.拉取docker registry镜像  使用命令

docker pull registry

4.3 启动registry镜像

docker run -d -p 5000:5000 -v 宿主机的仓库目录使用绝对路径:容器存放镜像的目录使用绝对路径 --privileged=true registry

4.4 开始镜像推送工作

docker tag 镜像名称 47.98.233.56:5000/ubuntu:latest

4.5由于docker 不能推送 http协议需要配置如下

在配置阿里云的daemon.json 下面配置{"registry-mirrors":["阿里云的仓库地址"],"insecure-registries":["你私服的地址加你映射仓库的端口"]}

如图:

4.6.推送到私服仓库如图

4.7用命令验证仓库有没有推送成功

如下图说明推送成功

4.7从私服拉取镜像如图

到此结束


http://www.ppmy.cn/server/146659.html

相关文章

Redis和MySQL之间如何进行数据同步

原因 为什么要进行Redis和MySQL的数据同步&#xff1f; 性能优化&#xff1a;MySQL是关系型数据库&#xff0c;数据读取和存储相对复杂&#xff1b;Redis是内存数据库&#xff0c;读写速度极快&#xff0c;将热点数据存在Redis&#xff0c;可以大大提高系统的访问速度。 数据…

状态模式 (State Pattern)

文章目录 状态模式 (State Pattern)原理优点缺点示例代码场景描述1. 定义状态接口2. 定义具体状态类3. 定义上下文类4. 客户端代码输出结果 UML 类图使用场景扩展与优化小结 状态模式 (State Pattern) 状态模式是一种 行为型设计模式&#xff0c;允许对象在其内部状态改变时改…

CSS学习记录01

什么是CSS&#xff1f; CSS指的是层叠样式表&#xff08;Cascading Style Sheets), CSS描述了如何在屏幕、纸张或其他媒体上显示HTML元素&#xff0c; CSS可以同时控制多张网页的布局&#xff0c;因此节省了大量的工作。 外部样式表存储在CSS文件中。 *&#xff1a;也称为级联…

一条select语句的执行流程

select的工作原理 套接字(socket)&#xff1a; 是一个编程接口&#xff0c;允许位于不同主机&#xff08;甚至同一主机上的不同进程&#xff09;之间的进程进行双向通信 套接字可以用来发送和接收数据&#xff0c;实现不同计算机或进程之间的网络通信 在网络分层模型中&…

1.2 算法和算法评价

1.2.1 算法的基本概念 算法&#xff1a;对特定问题求解步骤的一种描述&#xff0c;它是指令的有限序列&#xff0c;其中的每条指令表示一个或多个操作。 算法的五个重要特性 “好”的算法的五个目标 1.2.2 算法效率的度量 一、时间复杂度 算法的时间复杂度是指一个算法每行…

MySQL、Oracle、SQL Server 和 PostgreSQL 的分页查询

在不同的数据库中&#xff0c;分页查询是常见的操作&#xff0c;用于从大量数据中获取部分数据集。不同的数据库有不同的分页实现方式。下面是 MySQL、Oracle、SQL Server 和 PostgreSQL 的分页查询语法介绍。 1. MySQL 分页 在 MySQL 中&#xff0c;可以使用 LIMIT 和 OFFSE…

开源 - Ideal库 - Excel帮助类,设计思路(一)

今天开始和大家分享关于Excel最长常用操作封装。 01、起因 市面上有很多Excel操作库&#xff0c;这些库设计之初的目标是提供对Excel的各种操作功能&#xff0c;包括数据、样式、公式、图表等等。而对于我们平时开发来说&#xff0c;大多时候并不需要那么多强大的功能&#xf…

java 接口防抖

防抖&#xff1a;防止重复提交 在Web系统中&#xff0c;表单提交是一个非常常见的功能&#xff0c;如果不加控制&#xff0c;容易因为用户的误操作或网络延迟导致同一请求被发送多次&#xff0c;进而生成重复的数据记录。要针对用户的误操作&#xff0c;前端通常会实现按钮的l…