प्रौद्योगिकी साझेदारी

डॉकर सारांश

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

पर्यावरणस्य सज्जीकरणं कुर्वन्तु : १.

  • VMware17
  • उबंटु१८.०४(एलटीएस):https://releases.ubuntu.com/१८.०४/उबन्टु-१८.०४.६-डेस्कटॉप-एम्ड६४.आइसो

1. डॉकर पूर्वावलोकनम्


Docker सम्बद्धाः दस्तावेजाः : १.

  • docker आधिकारिक वेबसाइट पता: https://www.docker.com/
  • docker दस्तावेजीकरणपता: https://docs.docker.com/
  • docker इमेज गोदाम: https://hub.docker.com/

डॉकरस्य शुभकामना

1. docker इति किम् : एतत् एकं मुक्तस्रोत-पात्र-इञ्जिनं भवति यत् सहजतया पात्र-प्रबन्धनं कर्तुं शक्नोति, तथा च पात्राणि रेत-पेटी-तन्त्रस्य उपयोगेन परस्परं पृथक् भवन्ति ।

2. docker किं समस्यां समाधायति: सॉफ्टवेयर वातावरणस्य प्रवासनसमस्यायाः समाधानं करोति।

3. पात्रेषु आभासीयन्त्रेषु च भेदः : १.

  • पात्रम् : एतत् एकस्य अनुप्रयोगस्य अमूर्तं भवति (सङ्केतं निर्भरतां च एकत्र पैकेजिंग्), न्यूनसंसाधनं गृह्णाति, द्रुतप्रारम्भः, हल्कं लचीलं च
  • वर्चुअल् मशीन् : एतत् भौतिकहार्डवेयरस्य अमूर्तं भवति (एकं सर्वरं बहुषु सर्वरेषु परिणमयति एतत् बहु संसाधनं गृह्णाति तथा च विशालं शक्तिशाली च भवति ।

छवि-20240706011000322

4. डॉकर भण्डारणम् : १.

  • निर्देशिकां माउण्ट् कुर्वन्तु, उदाहरणम् : १. -v /宿主机目录:容器目录
  • आँकडा आयतनमानचित्रणम्, उदाहरणम् : १.数据卷:容器目录

5. Docker network: स्थिर डोमेननामरूपेण होस्ट् नाम प्रवेशं प्राप्तुं कस्टम् नेटवर्क् रचयन्तु। (एकस्मिन् जालपुटे स्थितानां पात्राणां परस्परं संवादं कर्तुं शक्नोति)

#示例
#自定义网络
docker network create mynet
#主节点
docker run -d -p 6379:6379 
-v /app/rd1:/bitnami/redis/data 
-e REDIS_REPLICATION_MODE=master 
-e REDIS_PASSWORD=123456 
--network mynet --name redis01 
bitnami/redis

#从节点
docker run -d -p 6380:6379 
-v /app/rd2:/bitnami/redis/data 
-e REDIS_REPLICATION_MODE=slave 
-e REDIS_MASTER_HOST=redis01 
-e REDIS_MASTER_PORT_NUMBER=6379 
-e REDIS_MASTER_PASSWORD=123456 
-e REDIS_PASSWORD=123456 
--network mynet --name redis02 
bitnami/redis
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

2. Docker संस्थापयन्तु


अयं लेखः उबण्टु वातावरणस्थापनस्य आधारेण अस्ति यदि भवतः अनुमतिः नास्ति तर्हि केवलं पुरतः sudo योजयन्तु ।

1. अग्निप्रावरणं निष्क्रियं कुर्वन्तु (अनन्तरं बाह्यप्रवेशार्थं पोर्ट् मैन्युअल् रूपेण उजागरयितुं आवश्यकता नास्ति, यत् परीक्षणार्थं सुविधाजनकम् अस्ति)

sudo ufw disable

#关闭防火墙:sudo ufw disable
#查看防火墙状态:sudo ufw status
#开启防火墙:sudo ufw enable
  • 1
  • 2
  • 3
  • 4
  • 5

2. docker संस्थापयन्तु

#卸载旧版docker
sudo apt-get remove docker docker-engine docker.io containerd runc

#更新软件包
sudo apt-get update

#安装一些工具
sudo apt-get install 
    apt-transport-https 
    ca-certificates 
    curl 
    gnupg-agent 
    software-properties-common

#安装docker
sudo apt install docker.io 

#验证dokcer是否安装成功
docker --version

#启动& 开机启动docker; enable + start 二合一
sudo systemctl enable docker --now

#配置阿里云镜像加速
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://82m9ar63.mirror.aliyuncs.com"]
}
EOF

#重新加载配置
sudo systemctl daemon-reload
#重启docker服务
sudo systemctl restart docker
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35

3. सामान्याः Docker आदेशाः


छवि-20240706032721566

1. डॉकरसेवायाः स्थितिप्रबन्धनम् : १.

  • systemctl status docker: docker इत्यस्य चालितस्थितिं पश्यन्तु
  • systemctl stop docker: डॉकरं बन्दं कुर्वन्तु
  • systemctl start docker: डॉकर प्रारम्भ
  • systemcl पुनः आरम्भ डॉकर: पुनः आरम्भ डॉकर
  • systemctl enable docker: बूट् समये स्वयमेव आरभ्यतुं docker सेट् कुर्वन्तु

2. डॉकर इमेज प्रबन्धनम् : १.

  • अन्वेषण चित्र: docker अन्वेषण चित्र नाम
  • चित्रं आकर्षयन्तु: docker pull चित्रस्य नाम: टैग् यदि टैग् निर्दिष्टं नास्ति तर्हि अन्तिमः आकृष्यते
  • चित्राणि पश्यन्तु: docker चित्राणि
  • चित्रं विलोपयन्तु: docker rmi चित्रस्य नाम: टैगः

3. Docker पात्रप्रबन्धनम् : १.

  • एकं पात्रं रचयन्तु: docker run -di --name=पात्रस्य नाम चित्रनाम: टैग्
  • पात्रं बन्दं कुर्वन्तु: docker stop container name
  • पात्रं आरभत: docker start container name
  • पात्रं विलोपयन्तु: docker rm पात्रनाम
  • पात्रं पश्यन्तु : १.
    • docker ps -a सर्वाणि पात्राणि पश्यन्तु, ये न चालिताः सन्ति
    • docker ps चलन्तं पात्रं द्रष्टुं
  • पात्रं प्रविष्टं कुर्वन्तु: docker exec -it पात्रस्य नाम/bin/bash

4. डॉकर-दत्तांश-आयतनम् : १.

  • Data volume: एतत् docker द्वारा प्रबन्धितं पुटम् अस्ति ।

  • दत्तांशमात्रायाः उपयोगः : पात्रस्य मेजबानस्य च मध्ये सञ्चिकानां द्विपक्षीयस्वचालितस्थापनं साकारयितुं भवान् पात्रे मार्गे दत्तांशमात्रं बन्धयितुं शक्नोति ।

    सञ्चिकां होस्ट् इत्यस्य दत्तांशमात्रायां स्थापयन्तु: docker स्वयमेव सञ्चिकां पात्रे समन्वययिष्यति

    यदि पात्रे सञ्चिकाः परिवर्तन्ते: docker स्वयमेव तान् मेजबानस्य दत्तांशमात्रायां समन्वययिष्यति ।

  • आँकडा आयतनसञ्चालन आदेशाः : १.

    दत्तांशमात्राणां सूचीकरणम्: docker आयतन ls

    एकं आँकडा आयतनं रचयन्तु: docker आयतनं आँकडा आयतननाम रचयन्तु

    आँकडा आयतनविवरणं पश्यन्तु (वास्तविकमार्गः): docker आयतनं आँकडा आयतननाम निरीक्षणं कुर्वन्तु

    डेटा आयतनं विलोपयन्तु: docker आयतन rm आँकडा आयतननाम

  • पात्रं रचयन्तु तथा च दत्तांश-आयतनं बन्धयन्तु:

    docker run -di --name=पात्रनाम -v आँकडा आयतननाम: पात्रे मार्गः चित्रनाम: टैगः

    docker run -di --name=पात्रनाम -v होस्ट् मध्ये मार्गः: पात्रे मार्गः चित्रनाम: टैग्

    नोट्: -v पैरामीटर् मध्ये सर्वे मार्गाः निरपेक्षमार्गाः भवेयुः ।

5. दर्पणस्य बैकअपः : १.

  • चित्रं निर्यातयन्तु: docker save -o सञ्चिकानाम चित्रनाम
  • चित्रं लोड् कुर्वन्तु: docker load -i xxx.tar

4. डॉकरसञ्चिका


प्रलेखनम् : https://docs.docker.com/reference/dockerfile/

Dockerfile भूमिका: कस्टम् इमेज् रचयन्तु।

Dockerfile मूलभूतप्रतिबिम्बस्य आधारेण भवति तथा च प्रत्येकं निर्देशं प्रतिबिम्बस्य स्तरं निर्माति ।

सामान्यनिर्देशाःपरिणाम
इत्यस्मात्‌चित्राधारवातावरणं निर्दिशन्तु
धावनं करोतुकस्टम् आदेशं चालयन्तु
सीएमडीकंटेनर स्टार्टअप आदेशः अथवा पैरामीटर्
नामपत्रकस्टम लेबल
उद्घाटनउजागरितं पोर्ट् निर्दिशन्तु
एनवीपर्यावरणचराः
संयोजयतिचित्रे सञ्चिकाः योजयन्तु
COPYसञ्चिकाः चित्रे प्रतिलिख्यताम्
ENTRYPOINT इतिकंटेनरः स्टार्टअप आदेशं निश्चितवान्
मात्राdata volume
USERउपयोक्तारः उपयोक्तृसमूहाः च निर्दिशन्तु
WORKDIRपूर्वनिर्धारितं कार्यनिर्देशिकां निर्दिशन्तु
आर्जीबिल्ड् पैरामीटर्स् निर्दिशन्तु

उदाहरण:

#编写dockerfile文件
vim Dockerfile
FROM openjdk:17
LABEL author=aopmin
COPY app.jar /app.jar   #把jar包复制到容器的根目录下
EXPOSE 8080
ENTRYPOINT ["java","-jar","app.jar"]  #运行命令

# 构建镜像
docker bulid -f Dockerfile -t 镜像名:tag .
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

5. सेवा आर्केस्ट्रेशन


सेवा आर्केस्ट्रेशन अथवा कंटेनर आर्केस्ट्रेशन : कतिपयव्यापारनियमानुसारं बैचरूपेण कंटेनरस्य प्रबन्धनं कुर्वन्तु।

Docker Compose इति एकाधिकं Docker-पात्रं परिभाषितुं चालयितुं च एकं आर्केस्ट्रेशन-उपकरणम् अस्ति ।

एकेन आदेशेन बहुविधपात्रं आरभ्यतुं शक्यते । मुख्यतया पात्राणां प्रबन्धनं, आर्केस्ट्रा च कथं करणीयम् इति समस्यायाः समाधानं करोति ।

Docker Compose इत्यस्य उपयोगाय त्रीणि सोपानानि सन्ति :

  1. चालितवातावरणं परिभाषितुं Dockerfile इत्यस्य उपयोगं कुर्वन्तु (यदि भवतां समीपे पूर्वमेव दर्पणं अस्ति तर्हि भवान् एतत् पदं परित्यक्तुं शक्नोति)
  2. उपयुञ्जताम्‌docker-compose.ymlअनुप्रयोगं निर्मान्ति ये सेवाः परिभाषयन्तु
  3. धावनं करोतुdocker-compose up -dआवेदनम् आरभत

docker-compose संस्थापनं कुर्वन्तु:

# 下载docker compose
curl -L https://github.com/docker/compose/releases/download/1.22.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

# 设置权限
chmod +x /usr/local/bin/docker-compose

# 查看版本 
docker-compose -version
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

यदि भवान् docker-compose इत्यस्य विस्थापनं कर्तुम् इच्छति तर्हि निम्नलिखितम् आदेशं निष्पादयितुं शक्नोति ।

# docker compose是二进制包方式安装的,删除二进制文件即可
rm /usr/local/bin/docker-compose
  • 1
  • 2

docker-compose इत्यस्य सामान्याः आदेशाः :

# !!!注意:必须先切换到`docker-compose.yaml`文件所在的目录后,才可以执行以下命令!!!

#创建容器并后台启动
docker-compose up -d

#直接启动容器
docker-compose start

#其它命令:
docker-compose help # 查看帮助
docker-compose stop  # 停止容器
docker-compose start # 启动容器
docker-compose restart # 重启容器
docker-compose rm # 删除已停止的容器
docker-compose down # 停止并删除容器
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

उदाहरण:

1. docker-compose निर्देशिकां रचयन्तु

mkdir ~/docker-compose
cd ~/docker-compose
  • 1
  • 2

2. लिखतdocker-compose.yamlप्रलेख

version: "3.0"
services:
  redis:
    container_name: redis 
    image: redis:5.0
    ports:
      - 6379:6379
  nginx:
    container_name: nginx
    image: nginx:1.14.2
    ports:
      - 80:80
    volumes:
      - /root/volumes/nginx/html:/usr/share/nginx/html
  tomcat:
    container_name: tomcat
    image: tomcat:8.5.88
    ports:
      - 8080:8080
    volumes:
      - /root/volumes/tomcat/webapps:/usr/local/tomcat/webapps
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

3. आरभत

# !!!注意:必须先切换到有`docker-compose.yaml`文件所在的目录后,才可以执行以下命令!!!
cd ~/docker-compose

# docker-compose up -d 以守护进程方式创建并启动容器
docker-compose up -d
  • 1
  • 2
  • 3
  • 4
  • 5