阿里云代码上传及容器镜像制作
阿里云镜像制作实现镜像加速
本地代码上传阿里云
# 因为镜像是交由阿里云制作,所以首先将自己的本地代码上传至阿里云中。
代码保存地址:https://code.aliyun.com/
操作步骤
1)登录阿里云代码仓库,然后点击新建项目
- 输入项目名,并点击创建项目
- 代码仓库准备好,就按照下图操作,在本地进行代码上传
4)本地操作
# 1.安装git
[root@db01 opt]# yum install -y git
# 2.根据上图提示,git全局设置
[root@db01 opt]# git config --global user.name "玉采汤"
[root@db01 opt]# git config --global user.email "1213261357@qq.com"
# 3.自动目录创建
[root@db01 opt]# git clone git@code.aliyun.com:lindytom/demonstration.git
[root@db01 opt]# ll
drwxr-xr-x 3 root root 18 Aug 31 23:54 demonstration
# 4.进入目录中,并且根据上图创建相关文件
[root@db01 opt]# cd demonstration/
[root@db01 demonstration]# touch README.md
# 5. 本地项目书写
[root@db01 demonstration]# mkdir k8s
[root@db01 demonstration]# cd k8s/
[root@db01 k8s]# cat Dockerfile
FROM centos
RUN yum update -y
RUN yum install wget -y
RUN wget https://dl.k8s.io/v1.18.8/kubernetes-client-linux-amd64.tar.gz
# 6.退出到 demonstration目录下,点表示将当前目录下所有文件或目录上传
[root@db01 demonstration]# git add .
# 7.为此次提交书写注释信息-m后面必须书写注释信息,可随意定义
[root@db01 demonstration]# git commit -m "test"
[master 97242b5] test
1 file changed, 4 insertions(+)
create mode 100644 k8s/Dockerfile
# 8.目录文件推送至代码仓库
[root@db01 demonstration]# git push -u origin master
Counting objects: 7, done.
Compressing objects: 100% (4/4), done.
Writing objects: 100% (7/7), 625 bytes | 0 bytes/s, done.
Total 7 (delta 0), reused 0 (delta 0)
To git@code.aliyun.com:lindytom/demonstration.git
* [new branch] master -> master
Branch master set up to track remote branch master from origin.
# 9.代码仓库查看结果(图一,图二)
- 图一(代码仓库中的上传文件)
- 图二,依次点击进入可以上传的文件
代码仓库注意事项:
如果本机是第一次上传代码至阿里云中,因需输入账号密码,可能会出现无法上传问题,可在本地生成秘钥对,将公钥上传至阿里云中即可
# 本地生成秘钥对
[root@db01 demonstration]# ssh-keygen
# 查看对应目录生成文件
[root@db01 demonstration]# cd ~/.ssh/
[root@db01 .ssh]# ll
-rw------- 1 root root 1679 Sep 1 00:21 id_rsa
-rw-r--r-- 1 root root 391 Sep 1 00:21 id_rsa.pub
-rw-r--r-- 1 root root 411 Aug 30 20:41 known_hosts
# 查看公钥文件
[root@db01 .ssh]# cat id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC5TWyetvhwTogGUhneJQYgwbwJ3Z3YOZ0047xoVyNKw9B0piBbzSmMrYiuHdivZJ0wSOCoeJX/s1TW+bfMcvgq5Wv2v4qV2z8uKGrQ7vyEOqpIS28VuhffhAnhfx3xRsg7UWE2ys8aiL+WieArzlZGVcSo7joZUXwTHwRWxF46HwPXRQipfoJtxPK0T6Y69C1KOgAhDg4CHJTgaL3lDN1Zyt/vYwQBosieDxGbi44J9tluj826ZYrY8zFRfSN8Vi7GOb99D93wRx2xEvk8G3moZjvcx9pT1BC09LC8c6UIUZj4x69WY5kToy+j/SN6CwKzwvo8K7x93JPYdkIoc8KF root@db01
# 将公钥复制到阿里云代码仓库(图三、图四、图五)
- 图三
- 图四
- 图五
阿里云镜像制作
# 注意:
如果是首次进行镜像制作,登录阿里云后需要进行阿里云和代码仓库的绑定。
# 说明:
本地制作镜像是基于dockerfile文件,而阿里云中镜像制作则基于代码仓库中文件。
# 为什么要使用阿里云制作镜像
当使用docker制作dockerfile文件时,避免不了需要基于镜像书写dockerfile文件,但有些镜像本身在国外,在本地拉取首先不谈能不能拉取下来的问题,肯定的是阿里云的拉取速度是比本地速度更快的,所以就这里就需要将本地代码上传至阿里云的代码仓库中,然后从阿里云的容器镜像站获取代码仓库中的dockerfile文件,从而进行镜像制作,制作完成后,本地再进行制作好的镜像拉取。
操作步骤
1)进入阿里云中,选择容器镜像服务
2)点击管理控制台
3) 点击创建镜像仓库
4)注意,这里的命名空间必须唯一,如果命名空间无法书写,可自行创建命名空间
5)因为之前我已经进行了容器镜像站和代码仓库的绑定,这里直接可以选择,首次需要进行绑定
- 选择创建容器仓库
7)点击进入,然后进行构建镜像
8)镜像构建
9)这里指定的dockerfile目录一定要为代码仓库的目录,比如demonstration就是根,则下级的目录需要写出来
我这里是将demonstration/k8s/Dockerfile文件制作为镜像
10)点击立即构建
11)点击日志,可对构建过程进行查看
- 成功
13)可根据此提示进行容器拉取
本地拉取容器
# 以下操作均需基于安装docker环境
# 书写Dockerfie文件
[root@db01 opt]# cat Dockerfile
FROM registry.cn-hangzhou.aliyuncs.com/lindytom/ks8:v1.18.8
# 根据dockerfile文件制作镜像
[root@db01 opt]# docker build -t k8s:v1.18.8 .
# 查看镜像
[root@db01 opt]# docker images
k8s v1.18.8 195ba3c59337 8 hours ago 283MB
registry.cn-hangzhou.aliyuncs.com/lindytom/ks8 v1.18.8 195ba3c59337 8 hours ago 283MB
# 进入容器,查看是否有文件
[root@db01 opt]# docker run -it --name kbv 195ba3c59337
[root@ccdcad5c7c4e /]# ls -l(这里就通过阿里云将国外的k8s文件拉取到容器中)
total 12928
lrwxrwxrwx 1 root root 7 May 11 2019 bin -> usr/bin
drwxr-xr-x 5 root root 360 Aug 31 17:03 dev
drwxr-xr-x 1 root root 66 Aug 31 17:03 etc
drwxr-xr-x 2 root root 6 May 11 2019 home
-rw-r--r-- 1 root root 13237066 Aug 13 18:09 kubernetes-client-linux-amd64.tar.gz
lrwxrwxrwx 1 root root 7 May 11 2019 lib -> usr/lib
lrwxrwxrwx 1 root root 9 May 11 2019 lib64 -> usr/lib64
drwx------ 2 root root 6 Aug 9 21:40 lost+found
drwxr-xr-x 2 root root 6 May 11 2019 media
drwxr-xr-x 2 root root 6 May 11 2019 mnt
drwxr-xr-x 2 root root 6 May 11 2019 opt
dr-xr-xr-x 113 root root 0 Aug 31 17:03 proc
dr-xr-x--- 2 root root 162 Aug 9 21:40 root
drwxr-xr-x 11 root root 163 Aug 9 21:40 run
lrwxrwxrwx 1 root root 8 May 11 2019 sbin -> usr/sbin
drwxr-xr-x 2 root root 6 May 11 2019 srv
dr-xr-xr-x 13 root root 0 Aug 31 17:03 sys
drwxrwxrwt 1 root root 6 Aug 31 08:51 tmp
drwxr-xr-x 1 root root 54 Aug 9 21:40 usr
drwxr-xr-x 1 root root 52 Aug 9 21:40 var
# 退出容器并保持前台运行
Ctrl + P + Q 退出容器保持后台运行(按住ctrl和P 再按Q
# 将容器中的文件拷贝至本地,实现通过容器将国外安装包容器拉取
[root@db01 opt]# docker cp kbv:/kubernetes-client-linux-amd64.tar.gz .