Cet article vous expliquera comment utiliser Docker pour télécharger un miroir depuis l'extrémité distante, puis modifier le miroir et enfin pousser le miroir vers votre propre entrepôt de miroirs.
1. Installez Docker
Il n'y a rien à dire à ce sujet, il suffit de télécharger le package d'installation correspondant et de l'installer en fonction de votre propre environnement
Notez que les Mac font la distinction entre les puces et que la version correcte doit être téléchargée. Quelle que soit la version Linux, Mac ou Windows de Docker, vous pouvez utiliser la commande docker pour opérer sur la ligne de commande. Je pense que la ligne de commande est plus concise que le programme de bureau, donc les exemples suivants utilisent la ligne de commande pour fonctionner.
2. Production d'images miroir
Vous pouvez choisir de créer une image miroir à partir de zéro, mais il ne sert à rien de réinventer la roue. Je choisis de télécharger l'image miroir prête à l'emploi à partir de l'entrepôt de miroirs et d'ajouter mes propres besoins pour créer une nouvelle image miroir.
2.1 Extraire l'image de l'entrepôt de miroirs
Avant d'utiliser docker pour effectuer des opérations pull et push, vous devez d'abord vous connecter et vous devez vous connecter à l'image correspondante
Compte de connexion : nom d'utilisateur est le préfixe de la boîte aux lettres, mot de passe de connexion : le mot de passe défini avant
docker login -u g*********n -p ********* iregistry.-int.com
Extraire l'image du référentiel miroir
# 从镜像仓库拉取镜像
docker pull iregistry.-int.com/ubuntu_android/ubuntu-android:1.0.1
# 查看本地镜像文件
docker images
Comme vous pouvez le voir, le miroir distant a été tiré vers le local
2.2 Modifier et créer une image miroir
Tout d'abord, vous devez utiliser la commande tag pour marquer l'image de quelqu'un d'autre et vous approprier le référentiel.
# 第一个参数是原有镜像的image id 第二个参数是新镜像的仓库地址:自定义版本号
docker tag af25f4ae69d6 iregistry.-int.com/test-oem/oem-android:0.1
À ce stade, j'ai cloné ma propre image avec l'image de quelqu'un d'autre, et l'étape suivante consiste à modifier l'image, par exemple en ajoutant le logiciel dont j'ai besoin ou en rapport avec l'environnement de compilation.
La première consiste à démarrer et à saisir l'image, à vérifier d'abord l'image locale, à exécuter l'image via la commande docker run, puis à saisir l'image pour l'opération
docker run -it iregistry.-int.com/test-oem/oem-android:0.1 /bin/bash
Créez ensuite un dossier buildkit dans le répertoire de base. Notez que vous ne pouvez pas quitter avant que la modification ne soit soumise. Une fois que vous quittez, toutes les opérations sont terminées.
Ensuite, vous devez soumettre les modifications et vous devez ouvrir une fenêtre de ligne de commande
# 产看当前运行的镜像
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
172d77a8211f iregistry.-int.com/test-oem/oem-android:0.1 "/bin/bash" 15 seconds ago Up 15 seconds frosty_maxwell
# 提交之前的修改 -m表示修改的内容 -a表示修改者 之后是容器ID,最后是仓库地址和版本
docker commit -m "test mkdir" -a "********" 172d77a8211f iregistry.-int.com/test-oem/oem-android:0.2
sha256:5f173bdf3f47f8a614129cfa4f43face370e68c37481f48aafe8254a6a71f41f
# 查看所有镜像,可以看到,多了一个镜像文件
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
iregistry.-int.com/test-oem/oem-android 0.2 5f173bdf3f47 11 seconds ago 1.19GB
iregistry.-int.com/ubuntu_android/ubuntu-android 1.0.1 af25f4ae69d6 9 months ago 1.19GB
iregistry.-int.com/test-oem/oem-android 0.1 af25f4ae69d6 9 months ago 1.19GB
Entrez ensuite la nouvelle vue d'image dans la fenêtre précédente, et vous pouvez voir que les opérations précédentes sont conservées
# 启动0.2版本的镜像
docker run -it iregistry.-int.com/test-oem/oem-android:0.2 /bin/bash
WARNING: The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested
root@cd8ca67f4e45:/# ls
bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
root@cd8ca67f4e45:/# cd home
root@cd8ca67f4e45:/home# ls
buildkit work
Bien sûr, la création d'un dossier n'est qu'un exemple, vous pouvez également faire d'autres choses, comme télécharger l'environnement de compilation Android lié
Le but principal de l'utilisation de nohup est de ne pas vous empêcher d'exécuter d'autres commandes. Après avoir exécuté la commande, appuyez sur Entrée pour quitter. Vous pouvez faire d'autres choses, ce qui est très utile.
# wget下载jdk1.8.141
nohup wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u141-b15/336fa29ff2bb4ef291e347e091f7f4a7/jdk-8u141-linux-x64.tar.gz" &
# gradle 下载官网 https://gradle.org/releases/
nohup wget https://downloads.gradle-dn.com/distributions/gradle-6.7.1-all.zip &
# Android buildtools下载官网 https://androidsdkmanager.azurewebsites.net/Buildtools
nohup wget https://dl.google.com/android/repository/build-tools_r23.0.3-linux.zip &
# ndk下载官网
# https://developer.android.google.cn/ndk/downloads/
# https://github.com/android/ndk/wiki/Unsupported-Downloads
nohup wget https://dl.google.com/android/repository/android-ndk-r16b-linux-x86_64.zip &
2.3 Pousser l'image vers l'entrepôt
Une fois la modification et la soumission de l'image locale terminées, vous pouvez soumettre l'image que vous avez créée à l'entrepôt d'images, utilisez simplement docker push
docker push iregistry.-int.com/test-oem/oem-android:0.1
Ensuite, allez à l'entrepôt distant pour vérifier, et vous pourrez voir votre image miroir
certaines compétences
1. Transférez le fichier local vers l'image docker
2. Quelques opérations de docker
1. 删除容器
docker ps #查看正在运行的容器
docker ps -a #查看所有容器
docker rm container_id #删除容器
2. 删除镜像
docker images //查看镜像
docker rmi image_id
Les mots de passe originaux ne sont pas faciles, s'ils vous sont utiles, merci de leur donner un coup de pouce !