با گسترش استفاده از بازو ، ساختن تصاویر شما در بازو برای در دسترس قرار دادن و عملکرد مناسب تصاویر در همه معماری ها بسیار مهم است ، به همین دلیل ما در سهولت ساختن تصاویر بازو و چند قوس سرمایه گذاری کرده ایم. در وبلاگ قبلی نحوه ساختن تصاویر چند قوسی به صورت محلی با استفاده از شبیه ساز QEMU که از قبل با Docker Desktop بسته بندی شده است را بیان کردیم. در این وبلاگ نحوه شروع کار با سازنده راه دور برای دستیابی به همان هدف را شرح می دهیم ، برای اهداف ما از نمونه EC2 آمازون استفاده می کنیم. در دسامبر سال 2019 ، آمازون موارد جدید آمازون EC2 را که از پردازنده های AWS Graviton2 پشتیبانی می کند ، اعلام کرد که عملکرد آنها را نسبت به نسل اول پردازنده های AWS Graviton به میزان قابل توجهی بهبود می بخشد. استفاده از نمونه Graviton2 برای ساختن تصاویر از راه دور از راه دور ، روند کار را تسریع می کند و توسعه ظروف روی سرورها و دستگاه های بازو را حتی ساده تر می کند.
موارد زیر را طی می کنیم:
- استفاده از Graviton2 EC2 به عنوان میزبان از راه دور
- ثبت نمونه Graviton2 EC2 به عنوان سازنده راه دور
- ساختن تصویر docker در نمونه Graviton2 EC2
- افزودن موارد اضافی به عنوان مورد نیاز
برای کسب اطلاعات بیشتر در مورد buildX و سازندگان راه دور ، می توانید از اسناد ما دیدن کنید.
شروع به کار با Remote Builder
پیش نیازها
ابتدا باید اطمینان حاصل کنیم که به جای از دستگاه محلی شما راههای متداول برای دسترسی به موارد Docker از راه دور از طریق mTLS یا SSH است. در اینجا ما از SSH برای سادگی استفاده می کنیم. برای شروع استفاده از سازنده از راه دور با Buildx و BuildKit در Graviton2 ، میزبان باید از طریق Docker CLI قابل دسترسی باشد ، با استفاده از URL ssh: //
به شرح زیر:
$ docker -H ssh: // me@graviton2-shembull info
مشتری:
زمینه: به طور پیش فرض
حالت اشکال زدایی: نادرست
افزونه ها:
buildx: Build with BuildKit (Docker Inc.، v0.6.1-65-gad9dddc3)
نوشتن: Docker Compose (Docker Inc.، v2.0.0-rc.3)
اسکن: Docker Scan (Docker Inc.، v0.8.0)
سرور:
ظروف: 0
در حال اجرا: 0
متوقف شد: 0
متوقف شد: 0
تصاویر: 0
نسخه سرور: 20.10.9
درایور ذخیره سازی: overlay2
سیستم فایل پشتیبان: extfs
پشتیبانی از d_type: true
Native Overlay Diff: true
userxattr: false
درایور ورود به سیستم: json-file
درایور Cgroup: cgroupfs
نسخه Cgroup: 1
افزونه ها:
حجم: محلی
شبکه: پل میزبان ipvlan macvlan null overlay
log: awslogs glupled gcplogs gelf journald json-file logentries local splunk syslog
ازدحام: غیرفعال
زمان اجرا: io.containerd.runc.v2 io.containerd.runtime.v1.linux runc
مدت زمان پیش فرض: runc
Init Binary: docker-init
نسخه ظرف: 5b46e404f6b9f661a205e28d59c982d3634148f8
نسخه runc: v1.0.2-0-g52b36a2
نسخه اولیه: de40ad0
گزینه های امنیتی:
لباس زن
seccomp
مشخصات: به طور پیش فرض
نسخه هسته: 5.4.0-1045-aws
سیستم عامل: اوبونتو 20.04.2 LTS
OSType: لینوکس
معماری: aarch64
CPU ها: 2
حافظه کل: 1.837 گیگابایت
ایجاد سازنده راه دور با Buildx
اکنون می توانید این نمونه از راه دور Graviton2 را با استفاده از دستور create در Docker Buildx ثبت کنید:
$ docker buildx create --name graviton2
-راننده docker-container
--platform linux/arm64
ssh: // me@graviton2-example
graviton2
-پلتفرم
به گونه ای مشخص شده است که وقتی گره های دیگری را به این خوشه بیل اضافه می کنیم ، این گره برای ساخت arm64 ترجیح داده شود.
Bootstrap builder برای بررسی و ایجاد ظرف BuildKit در میزبان راه دور:
$ docker buildx بازرسی -bootstrap -builder graviton2
#1 [internal] booting buildkit
شماره 1 کشیدن تصویر moby/buildkit: buildx-stable-1
شماره 1 کشیدن تصویر moby/buildkit: buildx-stable-1 2.2s انجام شده است
#1 ایجاد container buildx_buildkit_node1
#1 ایجاد ظرف buildx_buildkit_node1 1.4s انجام شد
شماره 1 3.7 ثانیه انجام شد
نام: graviton2
راننده: docker-container
گره ها:
نام: node1
نقطه پایانی: ssh: // me@graviton2-example
وضعیت: در حال اجرا
بسترهای نرم افزاری: linux/arm64*، linux/arm/v7 ، linux/arm/v6
تصویر خود را بسازید
اکنون یک Dockerfile ساده ایجاد می کنیم:
از busybox به عنوان ساخت
ARG TARGETPLATFORM
ARG BUILDPLATFORM
RUN پژواک "من در حال اجرا در $ BUILDPLATFORM ، ساختمان برای $ TARGETPLATFORM"> /log
از busybox
کپی -از = build /log /log
RUN cat /log
RUN uname -a
و اجازه دهید تصویر را در برابر سازنده خود بسازیم:
docker buildx build -builder graviton2
--push -t example.com/hello:latest
--platform linux/arm64.
#2 [internal] بار .dockerignore
شماره 2 انتقال زمینه:
شماره 2 انتقال زمینه: 2B 0.2s انجام شده است
شماره 2 0.2 ثانیه انجام شد
#1 [internal] تعریف بارگذاری از Dockerfile
شماره 1 انتقال dockerfile: 246B 0.3 ثانیه انجام شد
شماره 1 0.4 ثانیه انجام شد
شماره 3 [internal] بارگذاری ابرداده برای docker.io/library/busybox:latest
شماره 3 ...
#4 [auth] library/busybox: نشانه را برای registry-1.docker.io بکشید
شماره 4 0.08 انجام شد
شماره 3 [internal] بارگذاری ابرداده برای docker.io/library/busybox:latest
شماره 3 1.5 ثانیه انجام شد
#5 [build 1/2] از docker.io/library/busybox@sha256:f7ca5a32c10d51aeda3b4d01c61c6061f497893d7f6628b92f822f7117182a57
#5 حل docker.io/library/busybox@sha256:f7ca5a32c10d51aeda3b4d01c61c6061f497893d7f6628b92f822f7117182a57 0.0s انجام شد
#5 0.08 انجام شد
#5 [build 1/2] از docker.io/library/busybox@sha256:f7ca5a32c10d51aeda3b4d01c61c6061f497893d7f6628b92f822f7117182a57
#5 sha256: 7560ee4921c3fab4f1d34c83600f6f65841ec863e072374f4e8044ff01df156f 821.72kB / 821.72kB 0.1 ثانیه انجام شده است
#5 استخراج sha256: 7560ee4921c3fab4f1d34c83600f6f65841ec863e072374f4e8044ff01df156f 0.0s انجام شد
شماره 5 0.2 ثانیه انجام شد
#6 [build 2/2] پژواک RUN "من در $ BUILDPLATFORM ، در حال ساخت برای $ TARGETPLATFORM"> /log اجرا می کنم "> /log
شماره 6 انجام شد 0.1 ثانیه
#7 [stage-1 2/4] کپی -از = build /log /log
شماره 7 انجام شده 0.0 ثانیه
#8 [stage-1 3/4] RUN cat /log
#8 0.078 من در $ BUILDPLATFORM ، با قیمت $ TARGETPLATFORM اجرا می کنم
#8 0.1 ثانیه انجام شد
#9 [stage-1 4/4] RUN uname -a
#9 0.081 Linux buildkitsandbox 5.4.0-1045-aws #47-Ubuntu SMP سه شنبه 13 آوریل 07:04:23 UTC 2021 aarch64 GNU/Linux
#9 0.1 ثانیه انجام شد
شماره 10 صادر می شود به تصویر
#10 لایه های صادر کننده
#10 صادرات لایه 0.3s انجام شده است
#10 صادرات مانیفست sha256: 7097ec1c09675617e2c44b5924b76f7863c4ff685c640b32dfaa1b1e8f2bc641 0.0s انجام شد
#10 پیکربندی صادرات sha256: d18ca92a45b563373606f0a06d0a1d2280d0c11976b1ca64dba0e567d540a3e2 0.0s انجام شد
#10 فشار دادن لایه ها
#10 فشار دادن لایه ها 0.7 ثانیه انجام شد
موارد دیگر را اضافه کنید
همچنین می توانید سایر موارد Graviton2 (گره) را به همان سازنده با:
docker buildx create --name graviton2 اضافه کنید
-گره گره 2
-راننده docker-container
--platform linux/arm64
--append ssh: // me@graviton2-example2
به پرچم -ضمیمه
توجه کنید تا یک گره به سازنده graviton2
موجود اضافه شود.
اکنون ، شما » تصویر خود را از راه دور با استفاده از نمونه Graviton2 ساخته اید! اینها تنها برخی از کارهایی است که می توانید با buildx انجام دهید. ما خوشحال می شویم نظرات شما راجع به نحوه انجام آن و آنچه می خواهید در آینده ما را مشاهده کنید ، دوست دارید ، می توانید آن را به نقشه راه عمومی ما ارسال کنید.