Linux Docker 安装方法

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: Linux Docker 安装方法

前言:



Linux Docker的安装方法,这里作为一个笔记进行归档总结。


0. Linux  简介:



Linux Standard Base的缩写,lsb_release命令用来显示LSB和特定版本的相关信息

命令格式如下:lsb_release -a

阿里云安装手册:help.aliyun.com/document_de…

常见问题:blog.csdn.net/daluguishou…


1. 什么是Dokcer



一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口;

使用go语言编写,在LCX(linux容器)基础上进行的封装


简单介绍:


1)就是可以快速部署启动应用

2)实现虚拟化,完整资源隔离

3)一次编写,四处运行(有一定的限制,比如Docker是基于Linux 64bit的,无法在32bit的linux/Windows/unix环境下使用)


为什么使用


开箱即用,快速部署,可移植性强,环境隔离

1、提供一次性的环境,假如需要安装Mysql,则需要安装很多依赖库、版本等,如果使用Docker则通过镜像就可以直接启动运行

2、快速动态扩容,使用docker部署了一个应用,可以制作成镜像,然后通过Dokcer快速启动

3、组建微服务架构,可以在一个机器上模拟出多个微服务,启动多个应用

4、更好的资源隔离和共享


Docket结构:


Docker 镜像 - Docker images:

容器运行时的只读模板,操作系统+软件运行环境+用户程序


class User{
    private String userName;
    private int age;
}
复制代码


Docker 容器 - Docker containers:


容器包含了某个应用运行所需要的全部环境


User user = new User()
复制代码


Docker 仓库 - Docker registeries:


用来保存镜像,有公有和私有仓库,好比Maven的中央仓库和本地私服,镜像仓库:


(参考)配置国内镜像仓库:https://blog.csdn.net/zzy1078689276/article/details/77371782
复制代码


对比面向对象的方式理解Docker,通过类创建对象,通过镜像创建容器

  • Dokcer 里面的镜像 : Java里面的类 Class
  • Docker 里面的容器 : Java里面的对象 Object


2. Linux安装Docker



安装前置条件


  • 64-bit 系统
  • kernel 3.10+


检查内核版本


返回的值大于3.10即可


uname -r
复制代码


更新yum


yum update
复制代码


添加yum仓库(直接拷贝即可)


tee /etc/yum.repos.d/docker.repo <<-'EOF'
[dockerrepo]
name=Docker Repository
baseurl=https://yum.dockerproject.org/repo/main/centos/$releasever/
enabled=1
gpgcheck=1
gpgkey=https://yum.dockerproject.org/gpg
EOF
复制代码


安装


yum install -y docker-engine
复制代码


启动docker


systemctl start docker.service
复制代码


验证安装是否成功


(有client和service两部分表示docker安装启动都成功了)


docker version
复制代码


设置开机自启动


sudo systemctl enable docker
复制代码


查看当前进程


docker ps
复制代码


3. 阿里云安装linux docker (centeros7 版本)


下面的内容使用脚本安装 Docker

1、使用 sudoroot 权限登录 Centos。

2、确保 yum 包更新到最新。


$ sudo yum update
复制代码


3、执行 Docker 安装脚本。


$ curl -fsSL https://get.docker.com/ | sh
复制代码


执行这个脚本会添加 docker.repo 源并安装 Docker。

4、启动 Docker 进程。


$ sudo service docker start
复制代码


5、验证 docker 是否安装成功并在容器中执行一个测试的镜像。


$ sudo docker run hello-world
复制代码


到此,docker 在 CentOS 系统的安装完成。


docker 常用命令


常用命令(安装部署好Dokcer后,执行的命令是docker开头),xxx是镜像名称

  • 搜索镜像:docker search xxx
  • 列出当前系统存在的镜像:docker images
  • 拉取镜像:docker pull xxxxxx是具体某个镜像名称(格式 REPOSITORY:TAG) REPOSITORY:表示镜像的仓库源,TAG:镜像的标签
  • 运行一个容器:docker run -d --name "xd_mq" -p 5672:5672 -p 15672:15672 rabbitmq:management

docker run - 运行一个容器 -d 后台运行 -p 端口映射 rabbitmq:management  (格式 REPOSITORY:TAG),如果不指定tag,默认使用最新的 --name "xxx"

  • 列举当前运行的容器:docker ps
  • 检查容器内部信息:docker inspect 容器名称
  • 删除镜像:docker rmi IMAGE_NAME

强制移除镜像不管是否有容器使用该镜像 增加 -f 参数,

  • 停止某个容器:docker stop 容器名称
  • 启动某个容器:docker start 容器名称
  • 移除某个容器: docker rm 容器名称 (容器必须是停止状态)

文档:blog.csdn.net/permike/art…


4. Docker部署Nginx服务器


Docker部署Nginx服务器

  1. 获取镜像 :docker run

(首先会从本地找镜像,如果有则直接启动,没有的话,从镜像仓库拉起,再启动)

  1. 查找镜像:docker search nignx
  2. 列举镜像:docker images
  3. 拉取Nignx的镜像:docker pull nignx
  4. 启动


docker run -d --name "nginx" -p 8088:80 nginx
docker run -d --name "nginx2" -p 8089:80 nginx
docker run -d --name "nginx3" -p 8090:80 nginx
复制代码


如果是阿里云服务,记得配置安全组,腾讯云也需要配置,这个就是一个防火墙


5. 构建自己的私人镜像



操作流程:


1)登录: 
  docker login --username=xxx@xx.com registry.cn-xxxx.aliyuncs.com  
2) 推送本地镜像:
  docker tag [ImageId] registry.cn-xxxx.aliyuncs.com/xd/xd_images:[镜像版本号]
  例子:
    docker tag 2f415b0e9a6e registry.cn-xxx.aliyuncs.com/xd/xd_images:xd_rabbitmq-v1.0.2
    docker push registry.cn-xxxxx.aliyuncs.com/xd/xd_images:xd_rabbitmq-v1.0.2
3)拉取镜像
  线上服务器拉取镜像:
    docker login --username=xxx@qqxxxcom registry.cn-xxxx.aliyuncs.com
    docker pull registry.cn-xxxxx.aliyuncs.com/xd/xd_images:xd_rabbitmq-v1.0.2
  启动容器:
    docker run -d --name "xd_mq" -p 5672:5672 -p 15672:15672 2f415b0e9a6e
复制代码


阿里云操作流程


1. 登录阿里云Docker Registry
$ sudo docker login --username=xxxxx registry.cn-xxxxx.aliyuncs.com
用于登录的用户名为阿里云账号全名,密码为开通服务时设置的密码。
您可以在产品控制台首页修改登录密码。
2. 从Registry中拉取镜像
$ sudo docker pull registry.cn-xxxxx.aliyuncs.com/zxd-registry/zxd-res:[镜像版本号]
3. 将镜像推送到Registry
$ sudo docker login --username=xiaolaodong11 registry.cn-xxxxx.aliyuncs.com
$ sudo docker tag [ImageId] registry.cn-xxxxx.aliyuncs.com/zxd-registry/zxd-res:[镜像版本号]
$ sudo docker push registry.cn-xxxxx.aliyuncs.com/zxd-registry/zxd-res:[镜像版本号]
请根据实际镜像信息替换示例中的[ImageId]和[镜像版本号]参数。
4. 选择合适的镜像仓库地址
从ECS推送镜像时,可以选择使用镜像仓库内网地址。推送速度将得到提升并且将不会损耗您的公网流量。
如果您使用的机器位于经典网络,请使用 registry-internal.cn-xxxxx.aliyuncs.com 作为Registry的域名登录,并作为镜像命名空间前缀。
如果您使用的机器位于VPC网络,请使用 registry-vpc.cn-xxxxx.aliyuncs.com 作为Registry的域名登录,并作为镜像命名空间前缀。
5. 示例
使用"docker tag"命令重命名镜像,并将它通过专有网络地址推送至Registry。
$ sudo docker images
REPOSITORY                                                         TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
registry.aliyuncs.com/acs/agent                                    0.7-dfb6816         37bb9c63c8b2        7 days ago          37.89 MB
$ sudo docker tag 37bb9c63c8b2 registry-vpc.cn-xxxxx.aliyuncs.com/acs/agent:0.7-dfb6816
使用"docker images"命令找到镜像,将该镜像名称中的域名部分变更为Registry专有网络地址。
$ sudo docker push registry-vpc.cn-xxxxx.aliyuncs.com/acs/agent:0.7-dfb6816


相关实践学习
Docker镜像管理快速入门
本教程将介绍如何使用Docker构建镜像,并通过阿里云镜像服务分发到ECS服务器,运行该镜像。
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。 &nbsp; &nbsp; 相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
存储 安全 .NET
ASP.NET Core Identity 实战(2)——注册、登录、Claim
上一篇文章(ASP.NET Core Identity Hands On(1)——Identity 初次体验)中,我们初识了Identity,并且详细分析了AspNetUsers用户存储表,这篇我们将一起学习Identity 默认生成的样板代码的注册与登陆过程 注册/Register 打开Accou...
2717 0
|
8月前
|
监控 Ubuntu Linux
ubuntu中设置开机自动运行的(sudo)指令
通过合理选择和配置上述方法,您可以确保在系统启动时自动执行所需的命令,并具备sudo权限,从而提高系统自动化管理的能力。
1270 8
|
6月前
|
自然语言处理 JavaScript 前端开发
🌟 CodeBuddy Craft智能体实战:开发一个智能语法检查工具
本文分享了使用CodeBuddy开发英语语法检查工具的实战经验。通过智能提示与优化建议,大幅提升了正则规则编写、DOM交互实现等环节效率,整体开发时间从24小时缩短至5分钟!项目具备实时语法检测、三类错误高亮及修正建议等功能,并接入剑桥词典学习链接。用户反馈显示误报率显著降低,颜色区分与互动修正功能备受青睐。未来计划加入深层语义分析与自定义词典功能,进一步完善工具。总结来看,CodeBuddy在智能补全、错误检测与架构设计上表现出色,为开发者提供了强大助力。
269 2
|
7月前
|
芯片
从"卡哇伊字体"看Docusign繁体中文显示异常 —甫连团队快速排障案例
3月23日,Docusign反馈台湾客户上传的繁体中文合同出现字体显示异常问题,影响多家重要企业。作为Docusign亚太区专业合作伙伴,我们迅速介入排查,确认为字体兼容性问题:系统无法识别DFKai-SB字体导致替代字体异常。通过测试验证与Docusign合作,最终于4月1日解决。此案例体现FreeLink在技术定位、临时解决方案及平台本地化改进推动中的关键价值,彰显全球SaaS平台与本地需求连接的专业能力。我们专注Docusign集成解决方案,获多项国际认证与殊荣,致力于为企业提供专业化支持。
196 2
|
人工智能
人类偏好就是尺!SPPO对齐技术让大语言模型左右互搏、自我博弈
【5月更文挑战第23天】SPPO技术针对大语言模型的对齐问题提出新的解决方案,通过两个LLM自我博弈来学习和满足人类偏好。该方法能更准确地捕捉偏好复杂性,优于传统奖励模型。实验显示SPPO提升了LLM性能,但依赖外部偏好模型和高计算需求限制了其扩展性。[链接](https://arxiv.org/pdf/2405.00675.pdf)
661 1
|
Java UED Spring
Spring Boot中的零停机升级策略
Spring Boot中的零停机升级策略
|
机器学习/深度学习 人工智能 定位技术
Stable Diffusion 是如何运行的(一)
Stable Diffusion 是如何运行的
449 1
|
供应链 安全 数据处理
GDPR开发者指南
站在技术角度,如何落地GDPR?需要考虑哪些点?如何有步骤的执行?为了帮助Web和App开发者实现GDPR合规,法国CNIL在2020年发布了《GDPR developer's guide》,并在GitHub上做了开源,吸引专业人士贡献补充。文末附了原文链接。
633 0
|
XML 前端开发 JavaScript
前端开发语言有哪些?
前端开发语言有哪些?
1294 0
|
编解码 算法 BI
地表温度数据、LST温度数据、地表反照率、NDVI数据、NPP数据、植被覆盖度、土地利用数据
地表温度数据、LST温度数据、地表反照率、NDVI数据、NPP数据、植被覆盖度、土地利用数据
地表温度数据、LST温度数据、地表反照率、NDVI数据、NPP数据、植被覆盖度、土地利用数据