阿里云Docker镜像管理入门

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: 本文基于阿里云服务器Docker镜像,一切操作均在阿里云服务器内进行,其他云服务厂商或者完全在linux系统下进行请根据实际情况自行查阅相关知识进行调整。

本文基于阿里云服务器Docker镜像,一切操作均在阿里云服务器内进行,其他云服务厂商或者完全在linux系统下进行请根据实际情况自行查阅相关知识进行调整。

1、切换至Web Terminal ,安装Docker依赖库:

yum install -y yum-utils device-mapper-persistent-data lvm2

添加Docker CE的软件源信息:

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

安装Docker CE
yum makecache fast &&
yum -y install docker-ce
启动Docker服务:

systemctl start docker

配置DockerHub镜像加速器
tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://registry.docker-cn.com"]
}
EOF
重启Docker服务
systemctl restart docker

2、准备应用代码和Dockerfile
创建工作空间:
mkdir -p /tmp/demo && cd /tmp/demo
工作空间下创建HelloWorld代码文件,用来在容器环境中监听HTTP服务,输出HelloWorld字符串。
cat > /tmp/demo/main.go << EOF
package main

import (

    "fmt"
    "net/http"

)

func main() {

    http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
            fmt.Fprintf(w, "Hello! World\n")
    })

    fmt.Println("start to serve...")
    http.ListenAndServe(":80", nil)

}
EOF

在工作空间下创建Dockerfile文件:

cat > /tmp/demo/Dockerfile << EOF
FROM golang:1.12-alpine

change current working dir

WORKDIR /go/src/app

copy main.go into /go/src/app

COPY . .

go build and install the app

RUN go install -v ./...

run the app by default

CMD ["app"]
EOF
3、本地构建镜像并运行镜像
本地构建镜像并运行镜像:
docker build . -t demo:v1
说明:
参数.表示指定当前路径作为构建上下文,即Dockerfile所在的本地路径;
参数-t demo:v1指定镜像名称和标签;
使用docker run命令运行镜像:
docker run -d -p 8000:80 demo:v1

说明:
参数-d设置容器运行模式为后台运行;
参数-p 8000:80将容器内部使用的网络端口映射到主机上,其中8000为主机端口,80为容器内部使用端口。
使用curl工具访问容器中的HelloWorld服务:
curl localhost:8000

使用docker rm命令删除容器:

docker rm -f $(docker ps -a | grep "demo:v1" | awk '{print $1}')
4、创建远程镜像仓库
使用您的阿里云主账号登录容器镜像服务控制台 -单击【前往开通】 - 单击【设置Registry登录密码】 - 设置阿里云Docker Registry登录密码,然后单击 【确定】 - 在容器镜像服务控制台,依次单击 【个人实例】 > 【命名空间】 > 【创建命名空间】,在 【创建命名空间】 弹框中填写命令空间名称,然后单击 【确定】- 选择 【镜像仓库】 > 【创建镜像仓库】,在 【创建镜像仓库】 弹框中选择 【命名空间】 ,填写 仓库名称 和 摘要 ,然后单击 【下一步】- 单击 【本地仓库】 > 【创建镜像仓库】- 在镜像仓库列表,选择上一步创建的镜像仓库,单击 【管理】 ,查看镜像仓库详情-
5、推送镜像:
本步骤操作将本地镜像推送到远程仓库中,并运行远程仓库中的指定版本镜像。请将本步骤命令中涉及的远程镜像地址替换为步骤五中创建的镜像仓库的公网地址。

执行以下命令登录到阿里云Docker Registry:
docker login --username="用户名" registry.cn-hangzhou.aliyuncs.com

说明: 请将命令中的用户名替换为您的阿里云账号全名,回车后输入远程镜像仓库密码,密码为步骤六开通服务时设置的密码。
请登录阿里云用户中心查看您的主账号用户名称。
标记本地镜像,将其归入远程仓库:

docker tag demo:v1 registry.cn-hangzhou.aliyuncs.com/space_test/demo:v1

将本地镜像推送到远程仓库:
docker push registry.cn-hangzhou.aliyuncs.com/space_test/demo:v1

拉取指定版本的远程镜像:
docker pull registry.cn-hangzhou.aliyuncs.com/space_test/demo:v1

运行拉取的远程镜像:
docker run -d -p 8000:80 registry.cn-hangzhou.aliyuncs.com/space_test/demo:v1

访问HelloWorld服务验证:

curl localhost:8000

总结:
本文通过一步步实际操作过程,可以构建一个简单的docker实例,对docker有一个初步的认识。由于此教程基于阿里云服务器,有部分步骤是基于阿里云官网操作控制台操作,缺乏基于unbuntu或者其他linux操作系统的通用操作方式。后续还需要进一步学习相关知识,方能随心所欲创建自己需要的docker实例。

相关实践学习
通过容器镜像仓库与容器服务快速部署spring-hello应用
本教程主要讲述如何将本地Java代码程序上传并在云端以容器化的构建、传输和运行。
Kubernetes极速入门
Kubernetes(K8S)是Google在2014年发布的一个开源项目,用于自动化容器化应用程序的部署、扩展和管理。Kubernetes通常结合docker容器工作,并且整合多个运行着docker容器的主机集群。 本课程从Kubernetes的简介、功能、架构,集群的概念、工具及部署等各个方面进行了详细的讲解及展示,通过对本课程的学习,可以对Kubernetes有一个较为全面的认识,并初步掌握Kubernetes相关的安装部署及使用技巧。本课程由黑马程序员提供。 &nbsp; 相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情:&nbsp;https://www.aliyun.com/product/kubernetes
目录
相关文章
|
1月前
|
Java Linux C语言
《docker基础篇:2.Docker安装》包括前提说明、Docker的基本组成、Docker平台架构图解(架构版)、安装步骤、阿里云镜像加速、永远的HelloWorld、底层原理
《docker基础篇:2.Docker安装》包括前提说明、Docker的基本组成、Docker平台架构图解(架构版)、安装步骤、阿里云镜像加速、永远的HelloWorld、底层原理
355 90
|
1天前
|
消息中间件 Kafka 流计算
docker环境安装kafka/Flink/clickhouse镜像
通过上述步骤和示例,您可以系统地了解如何使用Docker Compose安装和配置Kafka、Flink和ClickHouse,并进行基本的验证操作。希望这些内容对您的学习和工作有所帮助。
41 28
|
1月前
|
Ubuntu NoSQL 开发工具
《docker基础篇:4.Docker镜像》包括是什么、分层的镜像、UnionFS(联合文件系统)、docker镜像的加载原理、为什么docker镜像要采用这种分层结构呢、docker镜像commit
《docker基础篇:4.Docker镜像》包括是什么、分层的镜像、UnionFS(联合文件系统)、docker镜像的加载原理、为什么docker镜像要采用这种分层结构呢、docker镜像commit
207 70
|
14天前
|
网络协议 Linux 网络安全
docker centos镜像 npm安装包时报错“npm ERR! code ECONNRESET”
通过上述步骤,您可以有效解决在 Docker 中使用 CentOS 镜像安装 npm 包时遇到的 "npm ERR! code ECONNRESET" 错误。希望这些方法能帮助您顺利进行 npm 包的安装。
90 26
|
1月前
|
存储 Docker 容器
Docker-基础(数据卷、自定义镜像、Compose)
通过数据卷实现持久化存储,通过自定义镜像满足特定需求,通过Docker Compose方便地管理多容器应用
85 27
|
1月前
|
Ubuntu NoSQL Linux
《docker基础篇:3.Docker常用命令》包括帮助启动类命令、镜像命令、有镜像才能创建容器,这是根本前提(下载一个CentOS或者ubuntu镜像演示)、容器命令、小总结
《docker基础篇:3.Docker常用命令》包括帮助启动类命令、镜像命令、有镜像才能创建容器,这是根本前提(下载一个CentOS或者ubuntu镜像演示)、容器命令、小总结
156 6
《docker基础篇:3.Docker常用命令》包括帮助启动类命令、镜像命令、有镜像才能创建容器,这是根本前提(下载一个CentOS或者ubuntu镜像演示)、容器命令、小总结
|
1月前
|
存储 Docker 容器
Docker-基础(数据卷、自定义镜像、Compose)
通过数据卷实现持久化存储,通过自定义镜像满足特定需求,通过Docker Compose方便地管理多容器应用。掌握这些Docker基础概念和操作,可以显著提高开发和部署效率,确保应用程序的可移植性和可扩展性。
74 22
|
1月前
|
Ubuntu NoSQL 关系型数据库
《docker基础篇:6.本地镜像发布到私有库》包括本地镜像发布到私有库流程、docker regisry是什么、将本地镜像推送到私有库
《docker基础篇:6.本地镜像发布到私有库》包括本地镜像发布到私有库流程、docker regisry是什么、将本地镜像推送到私有库
126 29
|
2月前
|
Ubuntu 应用服务中间件 nginx
docker入门-快速学会docker
本文介绍了Docker的基本概念,包括镜像、容器、tar文件、Dockerfile和仓库,并通过实际操作演示了如何使用Docker。从拉取Nginx镜像、运行容器、修改容器内容、保存容器为新镜像,到使用Dockerfile构建自定义镜像,最后讲解了如何保存和恢复镜像。文中还推荐了一个在线实践平台Play with Docker,方便读者快速上手Docker。
249 5
docker入门-快速学会docker
|
2月前
|
NoSQL PHP MongoDB
docker push推送自己搭建的镜像
本文详细介绍了如何搭建和复盘两个Web安全挑战环境:人力资源管理系统和邮件管理系统。首先,通过Docker搭建MongoDB和PHP环境,模拟人力资源管理系统的漏洞,包括nosql注入和文件写入等。接着,复盘了如何利用这些漏洞获取flag。邮件管理系统部分,通过目录遍历、文件恢复和字符串比较等技术,逐步绕过验证并最终获取flag。文章提供了详细的步骤和代码示例,适合安全研究人员学习和实践。
70 3
docker push推送自己搭建的镜像