docker-简介-安装-制作-上传-部署

简介

何为容器

容器是对应用程序及其依赖关系的封装。乍一看容器只是个轻量级的虚拟机,它和虚拟机 一样拥有一个被隔离的操作系统实例,用来运行应用程序。

  • 容器能与主机的操作系统共享资源,因而它的效率高出一个数量级
  • 容器具有可移植性,这极有可能彻底解决由于运行环境的些许改变而导致的问题
  • 容器是轻量的,这意味着开发者能同时运行数十个容器,并能模拟分布式系统在真实运 行环境下的情况

更重要的是,虚拟机和容器的根本目标不尽相同。虚拟机的目的是要完整地模拟另一个环 境,而容器的目的则是使应用程序能够移植,并把所有依赖关系包含进去。

docker和容器

Docker 利用现有的 Linux 容器技术,以不同方式将其封装及扩展——主要是通过提供可移植的 镜像,以及一个用户友好的接口——来创建一套完整的容器创建及发布方案。Docker 平台拥有 两个不同部分:负责创建与运行容器的 Docker 引擎,以及用来发布容器的云服务 Docker Hub。
Docker 引擎提供了一个快速且便捷的接口用来运行容器。在此之前,使用如 LXC 等技术 运行容器需要相当多的专业知识以及手动操作。Docker Hub 提供大量的公共容器镜像以供 下载,方便用户快速上手,并且避免了重复劳动。Docker 还进一步开发了更多的工具,如 集群管理工具 Swarm、用于处理容器的图形用户界面 Kitematic,以及部署 Docker 主机的 命令行工具 Machine。
    主要利用以下功能

  • liux cgroup:将任意进程进行分组化管理的Linux内核功能
  • linux namespace:资源隔离
  • linux file system:存储驱动
  • linux kernel

安装

liunx 安装
//配置镜像仓库
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
//yum安装
yum install -y docker-ce
//启动
systemctl start docker
//设置开机启动
systemctl enable docker
//镜像加速器,这里使用的是阿里云镜像加速,请自行注册阿里云镜像账号
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://xxxxxxx.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
Windows10安装

前提条件,检查电脑是否支持虚拟化,是否开启Hyper-V

Docker下载地址为:https://hub.docker.com/editions/community/docker-ce-desktop-windows 点击如图处即可下载安装包
在这里插入图片描述
下载完,按照提示安装即可,双击Docker Desktop启动程序
配置镜像加速器,如下图操作
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

镜像操作

制作镜像

编写Dockerfile文件制作镜像,示例镜像以springboot 打包的jar包
Dockerfile文件

//基础镜像jdk8
FROM registry.cn-hangzhou.aliyuncs.com/huangding/java8-ttf-dejavu
VOLUME /tmp
//复制本地执行jar包
COPY ./target/car-loan.jar app.jar
//启动时执行命令,设置时区,jar包等参数
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom -Duser.timezone=GMT+08","-jar","/app.jar"]
//时区配置
ENV TZ=Asia/Shanghai
//启动参数
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

执行Dockerfile文件制作镜像

//创建镜像 设置镜像名称和版本
 docker build -t huangding/car_loan:xr .
 //输出
 Sending build context to Docker daemon  149.4MB
Step 1/6 : FROM registry.cn-hangzhou.aliyuncs.com/huangding/java8-ttf-dejavu
 ---> 06aa79300f83
Step 2/6 : VOLUME /tmp
 ---> Using cache
 ---> c201f0e93354
Step 3/6 : COPY ./target/car-loan.jar app.jar
 ---> 706b7d8e3398
Step 4/6 : ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom -Duser.timezone=GMT+08","-jar","/app.jar"]
 ---> Running in 993cc9cbe281
Removing intermediate container 993cc9cbe281
 ---> 418c30d6bdf7
Step 5/6 : ENV TZ=Asia/Shanghai
 ---> Running in 75e0fcf6d141
Removing intermediate container 75e0fcf6d141
 ---> 4cd59e7b13c2
Step 6/6 : RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
 ---> Running in e484bac42e70
Removing intermediate container e484bac42e70
 ---> 04ac2c9fb4a3
Successfully built 04ac2c9fb4a3
Successfully tagged huangding/car_loan:xr
SECURITY WARNING: You are building a Docker image from Windows against a non-Windows Docker host. All files and directories added to build context will have '-rwxr-xr-x' permissions. It is recommended to double check and reset permissions for sensitive files and directories.

使用docker images命令查看刚刚创建的镜像

docker images huangding/car_loan:xr

在这里插入图片描述

镜像上传到镜像仓库

需要docker仓库先创建仓库名称(kill/car_loan)
上传到镜像仓库,等待拉取发布到服务器,示例使用阿里云镜像仓库,hubdocker最近太难进去了

//登录阿里云仓库
$ sudo docker login --username=xxxx registry.cn-hangzhou.aliyuncs.com
// 使用docker tag命令标记本地镜像,将其归入某一仓库
$ sudo docker tag 04ac2c9fb4a3[ImageId] registry.cn-hangzhou.aliyuncs.com/kill/car_loan:xr[镜像版本号]
//使用docker push 上传镜像到私有仓库
$ sudo docker push registry.cn-hangzhou.aliyuncs.com/kill/car_loan:xr[镜像版本号]
//输出
The push refers to repository [registry.cn-hangzhou.aliyuncs.com/huangding/car_loan]
ae1658cf61ab: Pushed
edd2b01508ac: Pushed
44b633d19a15: Layer already exists
14361f2cd676: Layer already exists
20dd87a4c2ab: Layer already exists
78075328e0da: Layer already exists
9f8566ee5135: Layer already exists
Head https://registry.cn-hangzhou.aliyuncs.com/v2/huangding/car_loan/blobs/sha256:04ac2c9fb4a38b2bd967edd0557139995a9687eb200a7c1f00f45cc77e4432b4: EOF
Untagged: huangding/car_loan:xr

登录阿里云镜像仓库,查看是否已上传
在这里插入图片描述

启动镜像

选择需要部署的服务器,进行镜像启动

//登录阿里云镜像仓库
$ sudo docker login --username=xxxx registry.cn-hangzhou.aliyuncs.com
//使用docker pull imagename:tag拉取镜像
$ docker pull registry.cn-hangzhou.aliyuncs.com/huangding/car_loan:xr
//使用docker run 启动 --restart=always 开机自启 -d 后台运行 --name 容器名称 -p设置端口 
docker run --restart=always -d --name car_loan  -p 8081:8081 registry.cn-hangzhou.aliyuncs.com/huangding/car_loan:xr

在这里插入图片描述
完毕

以上使用到的docker 命令
  • docker login 登录命令
  • docker build 打包构建命令
  • docker tag 标记本地镜像
  • docker push 推送到远程仓库
  • docker pull 拉取镜像
  • docker run 启动镜像
### 回答1: registry-1.docker.io/v2/ 是一个Docker镜像仓库。Docker镜像是一种轻量级虚拟化技术,它允许开发者将应用程序和其依赖项打包在一个可移植的容器中。然后,这些容器可以在不同的操作系统上运行,提供了更高的灵活性和便携性。 registry-1.docker.io/v2/ 是Docker官方的公共镜像仓库,也是最常用的镜像仓库之一。在这个仓库中,开发者可以找到各种类型的镜像,如操作系统镜像、数据库镜像、Web服务器镜像等。这些镜像是由Docker社区维护和更新的,有许多开发者可以共享和使用。 通过访问 registry-1.docker.io/v2/ ,开发者可以搜索并获取所需的镜像。他们还可以上传自己的镜像,以便与其他人分享。通过使用这个镜像仓库,开发者可以节省大量的时间和精力,因为他们可以直接使用他人共享的镜像,而不需要从头开始构建。 registry-1.docker.io/v2/ 的存在使得Docker生态系统更加强大和精简。它提供了一个集中存储镜像的地方,帮助开发者快速获取、分享和部署容器化应用程序。这个仓库是Docker技术的重要组成部分,为开发者提供了更好的使用体验和更高效的开发工作流程。 ### 回答2: egistry-1.docker.io/v2/是一个Docker镜像仓库的地址。Docker是一种容器化技术,用于轻量级的应用程序和服务的封装和分发。它可以将应用程序及其依赖项打包成一个镜像,并在不同的环境中运行。镜像仓库是存储和共享这些Docker镜像的地方。 egistry-1.docker.io/v2/是Docker官方的一个镜像仓库地址。在这个仓库中,用户可以下载和上传各种Docker镜像。这个地址中的"/v2"表示使用的是Docker镜像版本2的仓库。 使用egistry-1.docker.io/v2/可以实现很多功能。首先,用户可以通过该地址获取他们需要的Docker镜像。例如,如果用户想要一个包含特定操作系统和软件的镜像,他们可以使用该地址在仓库中搜索并下载满足他们需求的镜像。 同时,用户也可以将他们自己制作Docker镜像上传到该地址。这样其他人就可以通过该地址进行下载和使用。这种共享镜像的方式可以节省时间和资源,提高开发效率。 除了下载和上传功能外,egistry-1.docker.io/v2/还提供了一些其他的功能。例如,用户可以在该地址注册一个帐户,以便管理和跟踪他们下载和上传镜像。他们还可以查看有关特定镜像的信息,如版本、构建日期和作者等。 总之,egistry-1.docker.io/v2/是一个功能强大的Docker镜像仓库地址,可以帮助用户下载和上传各种Docker镜像,实现高效的软件开发和部署。 ### 回答3: registry-1.docker.io/v2/ 是一个Docker镜像仓库的URL。Docker镜像仓库是一个用于存储和管理Docker镜像的服务器。Docker镜像是一个可重复部署的软件包,其中包含了运行一个应用程序所需的所有依赖项。registry-1.docker.io/v2/ 是Docker官方的公共镜像仓库,可以通过该URL访问到它的第二个版本。在这个镜像仓库中,用户可以浏览和下载各种不同的Docker镜像,这些镜像可以用于快速构建和部署容器化应用程序。 Docker镜像仓库中的镜像是通过标签进行识别和区分的。每个镜像可以有多个不同的标签,每个标签对应一个版本。当用户拉取(pull)一个镜像时,可以通过给定镜像的标签来指定所需的版本。registry-1.docker.io/v2/ 中存储了大量常用的Docker镜像,例如操作系统的镜像、开发语言的镜像等等,用户可以根据自己的需求选择合适的镜像来构建自己的应用程序。 该URL中的/v2/表示该镜像仓库正在使用Docker Registry V2的协议。Docker Registry V2是Docker镜像仓库的一种升级版本,它提供了更好的性能和可扩展性。通过/v2/路径,可以访问到该镜像仓库的V2版本,从而能够利用V2协议的新特性和功能。 总之,registry-1.docker.io/v2/ 是Docker官方的公共镜像仓库的URL,用户可以通过该URL访问到大量常用的Docker镜像,并使用这些镜像来构建和部署自己的容器化应用程序。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值