المحتويات

المقدمة

المتطلبات الأساسية

المتطلبات

المكونات المستخدمة

تكوين وكلاء HTTP/HTTPS

تكوين وكلاء HTTP/HTTPS مؤقتا

تكوين وكلاء HTTP/HTTPS بشكل دائم

تثبيت مكون Docker

التحقق من وظيفة تكوين Docker

معلومات ذات صلة

المقدمة

يصف هذا المستند الخطوات المستخدمة لتثبيت حزمة تكوين Docker ضمن طبقة NX-OS الأساسية.

تدعم أجهزة Cisco Nexus 3000 و 9000 وظيفة الإرساء ضمن طبقة BaseH بدءا من NX-OS الإصدار 9.2(1). كما هو موضح في وثائق Docker Compose، "التأليف هو أداة لتعريف وتشغيل تطبيقات Docker متعددة الحاويات." يسمح Docker Compose لمطوري التطبيقات بتحديد كافة الخدمات التي تشكل تطبيقا داخل ملف YAML واحد يسمى "docker-compose.yml". ثم، باستخدام أمر واحد، يمكن إنشاء جميع هذه الخدمات وبنائها وبدء تشغيلها. علاوة على ذلك، يمكن إيقاف جميع الخدمات ومراقبتها من داخل مجموعة أوامر Docker Compose.

على الرغم من أن وظائف الإرساء مدعومة بشكل أصلي ضمن طبقة NX-OS Bash، يجب تثبيت Docker Compose بشكل منفصل.

المتطلبات الأساسية

المتطلبات

يتطلب هذا المستند تمكين BaseShell على جهاز Cisco Nexus لديك. ارجع إلى قسم "الوصول إلى BASH" من الفصل BaseH في دليل قابلية البرمجة من السلسلة Cisco Nexus 9000 Series NX-OS للحصول على تعليمات لتمكين BaseShell.

يتطلب هذا المستند تكوين "طبقة أساسية" كعميل DNS قادر على حل أسماء مضيفات المجال إلى عناوين IP. ارجع إلى المستند للحصول على تعليمات لتكوين خوادم DNS داخل طبقة الأمان.

المكونات المستخدمة

تستند المعلومات الواردة في هذا المستند إلى إصدارات البرامج والمكونات المادية التالية:

- منصة Nexus 9000 تبدأ من NX-OS، الإصدار 9.2(1)

- منصة Nexus 3000 تبدأ من NX-OS، الإصدار 9.2(1)

تم إنشاء المعلومات الواردة في هذا المستند من الأجهزة الموجودة في بيئة معملية خاصة. بدأت جميع الأجهزة المُستخدمة في هذا المستند بتكوين ممسوح (افتراضي). إذا كانت شبكتك مباشرة، فتأكد من فهمك للتأثير المحتمل لأي أمر.

تكوين وكلاء HTTP/HTTPS

إذا كانت بيئتك تتطلب إستخدام وكيل HTTP أو HTTPS، فسيلزم تكوين طبقة BaseH لاستخدام هذه الوكلاء قبل تثبيت تكوين Docker.

قم بتسجيل الدخول إلى طبقة BaseH كمستخدم جذري من خلال الأمر run bash sudo su.

Nexus# run bash sudo su -

root@Nexus#whoami

root

تكوين وكلاء HTTP/HTTPS مؤقتا

لتكوين وكلاء HTTP/HTTPS مؤقتا لجلسة العمل هذه، أستخدم الأمر export لتحديد متغيرات البيئة "http_proxy" و"https_proxy". ويرد أدناه مثال على ذلك، حيث يمثل "proxy.example-domain.com" اسم المضيف لخادم وكيل افتراضي.

root@Nexus#export http_proxy=http://proxy.example-domain.com:80/

root@Nexus#export https_proxy=https://proxy.example-domain.com:80/

تأكد من تكوين متغيرات البيئة كما هو مطلوب باستخدام أوامر echo http_proxy وecho https_proxy، كما هو موضح أدناه:

root@Nexus#echo $http_proxy

http://proxy.example-domain.com:80/

root@Nexus#echo $https_proxy

https://proxy.example-domain.com:80/

سيتم مسح القيم المعينة لمتغيرات البيئة هذه عند إنهاء الجلسة، وسيلزم إعادة تكوينها كل مرة يتم فيها إدخال BaseH shell. في المثال التالي، جلسة عمل BaseH حيث يتم إنهاء التكوين المذكور أعلاه، لإرجاع موجه الأمر إلى NX-OS. بعد ذلك، خلقت جلسة جديد إلى Bash طبقة، حيث متغيرات البيئة يكون أمسح.

root@Nexus#export http_proxy=http://proxy.example-domain.com:80/

root@Nexus#export https_proxy=https://proxy.example-domain.com:80/

root@Nexus#echo $http_proxy

http://proxy.example-domain.com:80/

root@Nexus#echo $https_proxy

https://proxy.example-domain.com:80/

root@Nexus#exit

Nexus# run bash sudo su -

root@Nexus#echo $http_proxy

root@Nexus#echo $https_proxy

root@Nexus#

تكوين وكلاء HTTP/HTTPS بشكل دائم

لتكوين وكلاء HTTP/HTTPS بشكل دائم لجميع جلسات العمل لمستخدم محدد يدخل في طبقة BaseH، يجب تصدير متغيرات البيئة "http_proxy" و"https_proxy" تلقائيا في كل مرة يقوم فيها أي مستخدم بتسجيل الدخول. يمكن تحقيق ذلك من خلال إلحاق أوامر تصدير بملف .bash_profile الموجود في دليل المستخدم، والذي يتم تحميله تلقائيا عندما يقوم المستخدم بتسجيل الدخول في BaseH shell. ويرد أدناه مثال على ذلك، حيث يمثل "proxy.example-domain.com" اسم المضيف لخادم وكيل افتراضي.

root@Nexus#pwd

/root

root@Nexus#ls -al

total 28

drwxr-xr-x  5 root floppy         200 Dec  6 13:22 .

drwxrwxr-t 62 root network-admin 1540 Nov 26 18:10 ..

-rw-------  1 root root          9486 Dec  6 13:22 .bash_history

-rw-r--r--  1 root floppy         703 Dec  6 13:22 .bash_profile

drwx------  3 root root            60 Nov 26 18:10 .config

drwxr-xr-x  2 root root            60 Nov 26 18:11 .ncftp

-rw-------  1 root root             0 Dec  5 14:37 .python-history

-rw-------  1 root floppy          12 Nov  5 05:38 .rhosts

drwxr-xr-x  2 root floppy          60 Nov  5 06:17 .ssh

-rw-------  1 root root          5499 Dec  6 13:20 .viminfo

root@Nexus#echo "export http_proxy=http://proxy.example-domain.com:80/" >> .bash_profile

root@Nexus#echo "export https_proxy=https://proxy.example-domain.com:80/" >> .bash_profile

root@Nexus#cat .bash_profile | grep proxy

export http_proxy=http://proxy.example-domain.com:80/

export https_proxy=https://proxy.example-domain.com:80/

root@Nexus#exit

Nexus# run bash sudo su -

root@Nexus#echo $http_proxy

http://proxy.example-domain.com:80/

root@Nexus#echo $https_proxy

https://proxy.example-domain.com:80/

إذا رغب المرء في تكوين وكلاء HTTP/HTTPS محددين لجميع جلسات العمل لجميع المستخدمين الذين يدخلون BaseShell، فقم بإلحاق أوامر التصدير هذه إلى ملف /etc/profile. يقوم Bash بتحميل هذا الملف تلقائيا أولا عندما يقوم أي مستخدم بتسجيل الدخول إلى BaseH shell - ونتيجة لذلك، سيتم تكوين جميع المستخدمين الذين يقومون بتسجيل الدخول إلى BaseH shell وفقا لوكلاء HTTP/HTTPS.

ويرد أدناه مثال على ذلك، حيث يمثل "proxy.example-domain.com" اسم المضيف لخادم وكيل افتراضي. وبعد ذلك يتم تكوين حساب المستخدم "docker-admin" باستخدام BashShellType، مما يسمح لحساب المستخدم بتسجيل الدخول مباشرة إلى Bash shell عند الوصول عن بعد إلى الجهاز. ثم يتم إستخدام SSH للوصول إلى عنوان IP mgmt0 (192.0.2.1) الخاص بجهاز Nexus من خلال VRF الخاص بالإدارة باستخدام حساب مستخدم docker-admin. يوضح المثال أنه قد تم تعيين متغيرات بيئة "http_proxy" و"https_proxy"، حتى عند تسجيل حساب مستخدم جديد في BaseH.

root@Nexus#echo "export http_proxy=http://proxy.example-domain.com:80/" >> /etc/profile

root@Nexus#echo "export https_proxy=https://proxy.example-domain.com:80/" >> /etc/profile

root@Nexus#cat /etc/profile | grep proxy

export http_proxy=http://proxy.example-domain.com:80/

export https_proxy=https://proxy.example-domain.com:80/

root@Nexus#exit

Nexus# run bash sudo su -

root@Nexus#echo $http_proxy

http://proxy.example-domain.com:80/

root@Nexus#echo $https_proxy

https://proxy.example-domain.com:80/

root@Nexus#exit

Nexus# configure terminal

Nexus(config)# username docker-admin role dev-ops password example_password

Nexus(config)# username docker-admin shelltype bash

Nexus(config)# exit

Nexus# ssh docker-admin@192.0.2.1 vrf management

Password:

-bash-4.3$ whoami

docker-admin

-bash-4.3$ echo $http_proxy

http://proxy.example-domain.com:80/

-bash-4.3$ echo $https_proxy

https://proxy.example-domain.com:80/

تثبيت مكون Docker

لتثبيت Docker Compose، يجب إستخدام الأداة المساعدة wget لتنزيل أحدث إصدار ثنائي من Docker Compose، ثم وضع هذا الرقم الثنائي في الدليل /usr/bin.

1. تحديد أحدث إصدار ثابت من Docker Compose المتوفر مع أحدث الإصدارات المتوفرة في صفحة GitHub الخاصة ب Docker. حدد موقع رقم الإصدار لأحدث إصدار مستقر في أعلى صفحة الويب. في وقت كتابة هذه السطور، كان آخر إصدار ثابت هو 1.23.2.

2. قم بتكوين عنوان URL الخاص ب Docker Configure Binary من خلال إستبدال {latest إصدار} في عنوان URL أدناه برقم إصدار أحدث إصدار ثابت تم العثور عليه في الخطوة السابقة:

https://github.com/docker/compose/releases/download/{latest-version}/docker-compose-Linux-x86_64

على سبيل المثال، عنوان URL ل 1.23.2 في وقت كتابة هذا التقرير هو كما يلي: https://github.com/docker/compose/releases/download/1.23.2/docker-compose-Linux-x86_64

3. أدخل طبقة Bash كجذر لمطالبة NX-OS باستخدام الأمر run bash sudo su -، كما هو موضح أدناه:

Nexus# run bash sudo su -

root@Nexus#whoami

root

4. إذا لزم الأمر، قم بتغيير سياق مساحة اسم الشبكة ل BaseShell إلى مساحة اسم باستخدام DNS واتصال إنترنت. تتطابق مساحات أسماء الشبكة منطقيا مع VRFs لنظام التشغيل NX. يوضح المثال التالي كيفية الانتقال إلى سياق مساحة اسم شبكة الإدارة، والذي يحتوي على DNS واتصال إنترنت في هذه البيئة المحددة.

root@Nexus#ip netns exec management bash

root@Nexus#ping cisco.com -c 5

PING cisco.com (72.163.4.161) 56(84) bytes of data.

64 bytes from www1.cisco.com (72.163.4.161): icmp_seq=1 ttl=239 time=29.2 ms

64 bytes from www1.cisco.com (72.163.4.161): icmp_seq=2 ttl=239 time=29.3 ms

64 bytes from www1.cisco.com (72.163.4.161): icmp_seq=3 ttl=239 time=29.3 ms

64 bytes from www1.cisco.com (72.163.4.161): icmp_seq=4 ttl=239 time=29.2 ms

64 bytes from www1.cisco.com (72.163.4.161): icmp_seq=5 ttl=239 time=29.2 ms

--- cisco.com ping statistics ---

5 packets transmitted, 5 received, 0% packet loss, time 4000ms

rtt min/avg/max/mdev = 29.272/29.299/29.347/0.218 ms

5. أدخل الأمر التالي، مع إستبدال {docker-url} بعنوان URL الذي تم إنشاؤه في الخطوة السابقة: wget {docker-url} -O /usr/bin/docker-compose. يتم عرض مثال على تنفيذ هذا الأمر أدناه، باستخدام https://github.com/docker/compose/releases/download/1.23.2/docker-compose-Linux-x86_64 كعنوان URL البديل ل {docker-url}:

root@Nexus#wget https://github.com/docker/compose/releases/download/1.23.2/docker-compose-Linux-x86_64 -O /usr/bin/docker-compose

--2018-12-06 15:24:36--  https://github.com/docker/compose/releases/download/1.23.2/docker-compose-Linux-x86_64

Resolving proxy.example-domain.com... 2001:DB8::1, 192.0.2.100

Connecting to proxy.example-domain.com|2001:DB8::1|:80... failed: Cannot assign requested address.

Connecting to proxy.example-domain.com|192.0.2.100|:80... connected.

Proxy request sent, awaiting response... 302 Found

Location: https://github-production-release-asset-2e65be.s3.amazonaws.com/15045751/67742200-f31f-11e8-947e-bd56efcd8886?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20181206%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20181206T152526Z&X-Amz-Expires=300&X-Amz-Signature=dfccfd5a32a908040fd8c18694d6d912616f644e7ab3564c6b4ce314a0adbbc7&X-Amz-SignedHeaders=host&actor_id=0&response-content-disposition=attachment%3B%20filename%3Ddocker-compose-Linux-x86_64&response-content-type=application%2Foctet-stream [following]

--2018-12-06 15:24:36--  https://github-production-release-asset-2e65be.s3.amazonaws.com/15045751/67742200-f31f-11e8-947e-bd56efcd8886?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20181206%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20181206T152526Z&X-Amz-Expires=300&X-Amz-Signature=dfccfd5a32a908040fd8c18694d6d912616f644e7ab3564c6b4ce314a0adbbc7&X-Amz-SignedHeaders=host&actor_id=0&response-content-disposition=attachment%3B%20filename%3Ddocker-compose-Linux-x86_64&response-content-type=application%2Foctet-stream

Connecting to proxy.example-domain.com|192.0.2.100|:80... connected.

Proxy request sent, awaiting response... 200 OK

Length: 11748168 (11M) [application/octet-stream]

Saving to: ‚Äò/usr/bin/docker-compose‚Äô

/usr/bin/docker-compose                                   100%[=======================================================================================================================================>]  11.20M  6.44MB/s   in 1.7s

2018-12-06 15:24:38 (6.44 MB/s) - ‚Äò/usr/bin/docker-compose‚Äô saved [11748168/11748168]

root@Nexus#

6. قم بتعديل أذونات الملف الثنائي /usr/bin/docker-configure بحيث يكون قابلا للتنفيذ باستخدام الأمر chmod+x /usr/bin/docker-configure. وهذا موضح أدناه:

root@Nexus#docker-compose

bash: /usr/bin/docker-compose: Permission denied

root@Nexus#chmod +x /usr/bin/docker-compose

root@Nexus#docker-compose

Define and run multi-container applications with Docker.

Usage:

docker-compose [-f

...] [options] [COMMAND] [ARGS...] docker-compose -h|

--help Options: -f,

--file FILE Specify an alternate compose file (default: docker-compose.yml) -p,

--project-name NAME Specify an alternate project name (default:

directory name)

--verbose Show more output

--log-level LEVEL Set log level (DEBUG, INFO, WARNING, ERROR, CRITICAL)

--no-ansi Do not print ANSI control characters -v,

--version Print version and exit -H,

--host HOST Daemon socket to connect to

--tls Use TLS; implied by --tlsverify

--tlscacert CA_PATH Trust certs signed only by this CA

--tlscert CLIENT_CERT_PATH Path to TLS certificate file

--tlskey TLS_KEY_PATH Path to TLS key file

--tlsverify Use TLS and verify the remote

--skip-hostname-check Don't check the daemon's hostname against the name specified

in

the client certificate

--project-directory PATH Specify an alternate working directory (default:

the path

of

the Compose

file)

--compatibility If set, Compose will attempt to convert deploy

keys

in v3

files

to their non-Swarm equivalent Commands: build Build

or rebuild services bundle Generate

a Docker bundle

from

the Compose

file config Validate

and view

the Compose

file

create Create services down Stop

and remove containers, networks, images,

and volumes events Receive real

time events

from containers exec Execute

a

command

in

a

running

container help Get help

on

a

command images List images

kill Kill containers logs View output

from containers pause Pause services port Print

the public port

for

a port binding ps List containers pull Pull service images push Push service images restart Restart services rm Remove stopped containers run Run

a

one-off

command scale Set

number

of containers

for

a service

start Start services

stop Stop services top Display

the running processes unpause Unpause services up Create

and

start containers

version Show

the Docker-Compose

version information

التحقق من وظيفة تكوين Docker

يمكن التحقق من تثبيت Docker Compose بنجاح وعمله من خلال إنشاء ملف Docker-Compose.yml صغير وتشغيله. المثال التالي يمر بهذه العملية.

root@Nexus#mkdir docker-compose-example

root@Nexus#cd docker-compose-example/

root@Nexus#ls -al

total 0

drwxr-xr-x 2 root root    40 Dec  6 15:31 .

drwxr-xr-x 6 root floppy 260 Dec  6 15:31 ..

root@Nexus#vi docker-compose.yml

root@Nexus#cat docker-compose.yml

version: "3"

services:

example_mongo:

image: mongo:latest

container_name: "example_mongo"

example_alpine:

image: alpine:latest

container_name: "example_alpine"

root@Nexus#docker-compose up

Creating network "docker-compose-example_default" with the default driver

Pulling example_mongo (mongo:latest)...

latest: Pulling from library/mongo

7b8b6451c85f: Pull complete

ab4d1096d9ba: Pull complete

e6797d1788ac: Pull complete

e25c5c290bde: Pull complete

45aa1a4d5e06: Pull complete

b7e29f184242: Pull complete

ad78e42605af: Pull complete

1f4ac0b92a65: Pull complete

55880275f9fb: Pull complete

bd0396c9dcef: Pull complete

28bf9db38c03: Pull complete

3e954d14ae9b: Pull complete

cd245aa9c426: Pull complete

Creating example_mongo  ... done

Creating example_alpine ... done

Attaching to example_alpine, example_mongo

example_mongo     | 2018-12-06T15:36:18.710+0000 I CONTROL  [main] Automatically disabling TLS 1.0, to force-enable TLS 1.0 specify --sslDisabledProtocols 'none'

example_mongo     | 2018-12-06T15:36:18.717+0000 I CONTROL  [initandlisten] MongoDB starting : pid=1 port=27017 dbpath=/data/db 64-bit host=c4f095f9adb0

example_mongo     | 2018-12-06T15:36:18.717+0000 I CONTROL  [initandlisten] db version v4.0.4

example_mongo     | 2018-12-06T15:36:18.717+0000 I CONTROL  [initandlisten] git version: f288a3bdf201007f3693c58e140056adf8b04839

example_mongo     | 2018-12-06T15:36:18.717+0000 I CONTROL  [initandlisten] OpenSSL version: OpenSSL 1.0.2g  1 Mar 2016

example_mongo     | 2018-12-06T15:36:18.717+0000 I CONTROL  [initandlisten] allocator: tcmalloc

example_mongo     | 2018-12-06T15:36:18.717+0000 I CONTROL  [initandlisten] modules: none

example_mongo     | 2018-12-06T15:36:18.717+0000 I CONTROL  [initandlisten] build environment:

example_mongo     | 2018-12-06T15:36:18.717+0000 I CONTROL  [initandlisten]     distmod: ubuntu1604

example_mongo     | 2018-12-06T15:36:18.717+0000 I CONTROL  [initandlisten]     distarch: x86_64

example_mongo     | 2018-12-06T15:36:18.717+0000 I CONTROL  [initandlisten]     target_arch: x86_64

example_mongo     | 2018-12-06T15:36:18.717+0000 I CONTROL  [initandlisten] options: { net: { bindIpAll: true } }

example_mongo     | 2018-12-06T15:36:18.717+0000 I STORAGE  [initandlisten]

example_mongo     | 2018-12-06T15:36:18.717+0000 I STORAGE  [initandlisten] ** WARNING: Using the XFS filesystem is strongly recommended with the WiredTiger storage engine

example_mongo     | 2018-12-06T15:36:18.717+0000 I STORAGE  [initandlisten] **          See http://dochub.mongodb.org/core/prodnotes-filesystem

example_mongo     | 2018-12-06T15:36:18.717+0000 I STORAGE  [initandlisten] wiredtiger_open config: create,cache_size=31621M,session_max=20000,eviction=(threads_min=4,threads_max=4),config_base=false,statistics=(fast),log=(enabled=true,archive=true,path=journal,compressor=snappy),file_manager=(close_idle_time=100000),statistics_log=(wait=0),verbose=(recovery_progress),

example_alpine exited with code 0

example_mongo     | 2018-12-06T15:36:19.722+0000 I STORAGE  [initandlisten] WiredTiger message [1544110579:722686][1:0x7f9d5de45a40], txn-recover: Set global recovery timestamp: 0

example_mongo     | 2018-12-06T15:36:19.745+0000 I RECOVERY [initandlisten] WiredTiger recoveryTimestamp. Ts: Timestamp(0, 0)

example_mongo     | 2018-12-06T15:36:19.782+0000 I CONTROL  [initandlisten]

example_mongo     | 2018-12-06T15:36:19.782+0000 I CONTROL  [initandlisten] ** WARNING: Access control is not enabled for the database.

example_mongo     | 2018-12-06T15:36:19.782+0000 I CONTROL  [initandlisten] **          Read and write access to data and configuration is unrestricted.

example_mongo     | 2018-12-06T15:36:19.782+0000 I CONTROL  [initandlisten]

example_mongo     | 2018-12-06T15:36:19.783+0000 I STORAGE  [initandlisten] createCollection: admin.system.version with provided UUID: dc0b3249-576e-4546-9d97-de841f5c45c4

example_mongo     | 2018-12-06T15:36:19.810+0000 I COMMAND  [initandlisten] setting featureCompatibilityVersion to 4.0

example_mongo     | 2018-12-06T15:36:19.814+0000 I STORAGE  [initandlisten] createCollection: local.startup_log with generated UUID: 2f9820f5-11ad-480d-a46c-c58222beb0ad

example_mongo     | 2018-12-06T15:36:19.841+0000 I FTDC     [initandlisten] Initializing full-time diagnostic data capture with directory '/data/db/diagnostic.data'

example_mongo     | 2018-12-06T15:36:19.842+0000 I NETWORK  [initandlisten] waiting for connections on port 27017

example_mongo     | 2018-12-06T15:36:19.842+0000 I STORAGE  [LogicalSessionCacheRefresh] createCollection: config.system.sessions with generated UUID: d4aeac07-29fd-4208-9f83-394b4af648a2

example_mongo     | 2018-12-06T15:36:19.885+0000 I INDEX    [LogicalSessionCacheRefresh] build index on: config.system.sessions properties: { v: 2, key: { lastUse: 1 }, name: "lsidTTLIndex", ns: "config.system.sessions", expireAfterSeconds: 1800 }

example_mongo     | 2018-12-06T15:36:19.885+0000 I INDEX    [LogicalSessionCacheRefresh]          building index using bulk method; build may temporarily use up to 500 megabytes of RAM

example_mongo     | 2018-12-06T15:36:19.886+0000 I INDEX    [LogicalSessionCacheRefresh] build index done.  scanned 0 total records. 0 secs

^C

Gracefully stopping... (press Ctrl+C again to force)

Stopping example_mongo  ... done

root@Nexus#

تحذير: تأكد من أنه عند تنفيذ الأمر docker-compose، فإنه يتم ذلك ضمن سياق مساحة اسم الشبكة التي تحتوي على DNS واتصال إنترنت. وإلا، لن يتمكن Docker Compose من سحب الصور المطلوبة من Docker Hub.

ملاحظة: للإيقاف المؤقت لتطبيق Docker متعدد الحاويات الذي تم بدء تشغيله بواسطة Docker Compose أثناء إرفاقه بجلسة تكوين Docker، اضغط مجموعة المفاتيح "Ctrl+C".

معلومات ذات صلة

- يقوم Docker بتكوين وثائق التثبيت

- نظرة عامة على وثائق تكوين Docker

- دليل قابلية البرمجة Cisco Nexus 9000 Series NX-OS، الإصدار 9.x

- دليل قابلية البرمجة Cisco Nexus 9000 Series NX-OS، الإصدار 7.x

- دليل قابلية البرمجة Cisco Nexus 9000 Series NX-OS، إصدار 6.x

- دليل قابلية البرمجة Cisco Nexus 3000 Series NX-OS، الإصدار 9.x

- دليل قابلية البرمجة Cisco Nexus 3000 Series NX-OS، الإصدار 7.x

- دليل قابلية البرمجة Cisco Nexus 3000 Series NX-OS، إصدار 6.x

- دليل قابلية البرمجة Cisco Nexus 3500 Series NX-OS، الإصدار 9.x

- دليل قابلية البرمجة Cisco Nexus 3500 Series NX-OS، الإصدار 7.x

- دليل قابلية البرمجة Cisco Nexus 3500 Series NX-OS، إصدار 6.x

- دليل قابلية البرمجة Cisco Nexus 3600 Series NX-OS، الإصدار 9.x

- دليل قابلية البرمجة Cisco Nexus 3600 Series NX-OS، الإصدار 7.x

- القابلية للبرمجة والتشغيل التلقائي باستخدام نظام التشغيل Cisco Open NX-OS