前言
2024/3/6 更新创建阿里云容器服务和上传到阿里云
应该有不少小伙伴打不开dockerhub
吧(doge),那本期教程教你如何制作完镜像上传到我们国内仓库,让大家都可以下载使用
打包镜像
Dockerfile
首先要在项目根目录下创建Dockerfile
注意名字要一模一样,而且没有后缀
成功创建的话,文件前面就会出现Docker的图标
我们必须在Dockerfile
里面指定基本镜像,如果你想从头开始制作的话
FROM alpine:3.18
FROM centos:7
...
基本镜像就要使用操作系统
当然如果你图省事的话,可以用二次构建别人的镜像,eg:
FROM node:18.19-alpine3.18
我的一个web项目就使用了这样一个镜像,node:18.19-alpine3.18
已经是由alpine
这个Linux发行版构建来的了。
接着我们需要把本目录的文件复制到镜像的系统里面去,可以使用COPY
或ADD
命令
COPY source dest
source
源路径是相对与Dockerfile
文件而言的,dest
目标路径是相于用镜像里的用户目录,这只是默认情况,我们可以指定工作目录
WORKDIR /usr/src/app
这样dest
目标路径就会相对于这个工作目录
如果我需要复制本目录下的所有文件到目标路径的webapp目录下,可以
COPY . /webapp
如果突然不想复制某个文件或文件夹 ,比如node_moudules,我们只需要创建.dockerignore
,填入
node_moudules
以上有几个需要注意的地方:
COPY
命令遇到文件夹不会将整个文件夹拷贝,而是将里面的所有文件递归复制过去,这个bugfeature 很久还没有被修复[1]- 涉及到目标路径的,都是相对于镜像所使用的操作系统。如果你还不明白我在说什么,找一台虚拟机或服务器在terminal输入
~
,看下显示的是啥路径
构建镜像、打标签、运行镜像
然后我们就可以使用docker build
命令进行构建镜像了
docker build image[:version] .
// []是可选的内容,没有指定版本默认是latest .代表当前目录
// eg:
docker build webapp .
发布镜像
登录Dockerhub
docker login
如何输入账户和密码就可以了
这里只是提一下,我们的重点的是上传到阿里云
在阿里云容器服务个人版新建仓库
可以直接搜索容器镜像服务
进去之后是这样的,没有申请的需要申请
我们需要创建一个镜像仓库
提交镜像
docker login --username=aliyun9356116088 registry.cn-hangzhou.aliyuncs.com
用于登录的用户名为阿里云账号全名,密码为开通服务时设置的密码
然后我们需要给本地镜像打上标签
docker tag [ImageId] registry.cn-hangzhou.aliyuncs.com/dsusch/xxx-webapp:[镜像版本号]
最后提交上去就可以啦
docker push registry.cn-hangzhou.aliyuncs.com/dsusch/xxx-webapp:[镜像版本号]
还没写完,会持续更新滴~
参考:
[1]:https://www.iszy.cc/archives/