Rumah > Artikel > Operasi dan penyelenggaraan > Pemasangan dan penggunaan docker dalam Win10 (penjelasan terperinci dengan gambar dan teks)
Artikel ini membawa anda pengetahuan yang berkaitan tentang cara memasang dan menggunakan docker pada win10. Saya harap ia akan membantu anda.
1 Pemasangan Docker
Docker untuk Windows ialah aplikasi Docker Community Edition (CE). Pakej pemasangan Docker untuk Windows mengandungi semua yang anda perlukan untuk menjalankan Docker pada sistem Windows. Jika anda tidak mahu memasang mesin maya dan ingin memasang serta belajar menggunakan Docker secara langsung dalam sistem pengendalian Windows anda, maka anda mesti menyemak dahulu sama ada sistem anda memenuhi keperluan pemasangan dan penggunaan Docker untuk Windows.
Versi semasa Docker untuk Windows dijalankan pada edisi Windows 10 Pro, Pro, Perusahaan dan Pendidikan 64-bit (Kemas Kini Ulang Tahun 1607, versi 14393 atau lebih baru). Ps: Versi rumah tidak boleh dilakukan jika anda adalah versi rumah, maka yang pertama adalah untuk menaik taraf kepada versi profesional Alamat yang disyorkan untuk memecahkan versi profesional ialah: http://blog.csdn.net/SONGCHUNHONG/article. /details/78006389 Yang kedua ialah memasangnya Docker Toolbox, layan diri dalam talian Baidu http://blog.csdn.net/tina_ttl/article/details/51372604
Jika. anda memenuhi syarat persekitaran untuk Docker untuk Windows, kemudian semak dahulu komputer Sama ada virtualisasi didayakan: Masukkan pengurus tugas (ctrl alt delete), klik Performance->cpu, semak sama ada virtualisasi didayakan, jika virtualisasi dilumpuhkan, maka anda perlu untuk memulakan semula komputer dan masukkan bios untuk membolehkan virtualisasi (kami Semua CPU komputer riba yang dihasilkan oleh kami menyokong virtualisasi. Apabila memulakan semula, masukkan bios dan tekan esc -> dan kemudian tekan f12 -> untuk menghidupkan virtualisasi)
Selepas menghidupkan virtualisasi dan memulakan semula, Pergi ke Pengurus Tugas untuk melihat sama ada virtualisasi didayakan.
Kemudian masukkan panel kawalan komputer->Programs->Dayakan atau matikan ciri Windows->Tandakan Hyper-v dan dayakannya Komputer akan mulakan semula, dan anda boleh memuat turun dan memasang Docker untuk Windows kemudian.
Masukkan URL https://docs.docker. com/ docker-for-windows/install/#download-docker-for-windows Muat turun dan pasang. Saya memasang versi stabil. Tiada apa-apa yang perlu diperhatikan semasa proses pemasangan.
akan muncul di sudut kanan bawah desktop selepas permulaan Apabila tetikus diletakkan padanya, ia akan memaparkan Docker sedang berjalan, menunjukkan bahawa permulaan Berjaya. Nampaknya pop timbul akan muncul selepas pemasangan dan pengaktifan antara muka log masuk Docker Cloud, daftar dan log masuk, penggunaannya serupa dengan git, anda boleh tarik imej, dsb.
<.>
Hentikan atau alih keluar bekas dan imej. Jika anda ingin menghentikan pelayan web, taip: docker stop webserver dan kemudian mulakan semula docker start webserver. Untuk menghentikan dan memadamkan bekas yang sedang berjalan dengan satu arahan, taip: docker rm -f webserver. Ini akan memadamkan bekas, tetapi bukan imej nginx. Anda boleh menyenaraikan imej docker imej tempatan. Anda mungkin mahu menyimpan beberapa imej supaya anda tidak perlu mengeluarkannya dari Docker Hub sekali lagi. Untuk memadam imej yang tidak diperlukan lagi, gunakan docker rmi diikuti dengan ID imej atau nama imej. Contohnya, docker rmi nginx
Set-ExecutionPolicy RemoteSigned
get-executionpolicy
Install-Module posh-docker
Sebagai alternatif, untuk memasang modul hanya untuk pengguna semasa, taip: Install-Module -Scope CurrentUser posh-docker
Import-Module posh-docker
if (-Not (Test-Path $PROFILE)) { New-Item $PROFILE –Type File –Force}Add-Content $PROFILE "`nImport-Module posh-docker"
Ini akan mencipta $PROFILE
jika ia tidak wujud dan menambah baris ini pada fail: Import-Module posh-docker
Untuk menyemak sama ada fail telah dibuat dengan betul atau hanya edit secara manual, dalam PowerShell Taip yang berikut ke dalam: Notepad $PROFILE
Buka sesi PowerShell baharu. Perintah Docker seperti mula, berhenti, jalankan dan pilihannya serta nama bekas dan imej kini harus dilengkapkan secara automatik apabila anda menekan kekunci Tab selepas beberapa huruf pertama menaip.
Cari ikon docker di sudut kanan bawah, klik kanan dan pilih tetapan
Umum : Berikut ialah tetapan untuk docker bermula secara automatik semasa but, semak kemas kini apabila aplikasi dimulakan dan terbitkan statistik penggunaan
Lanjutan: Peruntukkan bilangan CPU dan memori
Daemon: Docker untuk windows10 boleh mengkonfigurasi imej Alibaba Cloud, pergi ke https://cr.console.aliyun.com/ untuk daftar akaun, log masuk dan pilih pemecut daripada senarai, salin dan tampal alamat pemecut eksklusif anda ke dalam cermin Pendaftaran Daemon
Pada masa lalu, jika anda ingin mula menulis aplikasi Python, langkah pertama anda ialah memasang pustaka runtime Python pada mesin anda. Walau bagaimanapun, ini mewujudkan persekitaran pada mesin anda yang mesti memenuhi syarat tertentu agar aplikasi anda berjalan.
Menggunakan Docker, anda boleh menggunakan masa jalan Python mudah alih sebagai imej, tiada pemasangan diperlukan. Binaan anda kemudiannya boleh memasukkan imej Python asas bersama-sama dengan kod aplikasi anda, memastikan aplikasi, kebergantungan dan masa jalan anda semuanya berjalan bersama-sama.
Imej mudah alih ini ditakrifkan oleh sesuatu yang dipanggil Dockerfile
Buat direktori kosong, yang saya namakan docker kemudian buat tiga yang baharu fail di dalamnya: Dockerfile, app.py, requirements.txt
Kandungan ketiga-tiga fail itu masing-masing direka sebagai:
1.Dockerfile:# Use an official Python runtime as a parent imageFROM python:2.7-slim# Set the working directory to /appWORKDIR /app# Copy the current directory contents into the container at /appADD . /app# Install any needed packages specified in requirements.txtRUN pip install --trusted-host pypi.python.org -r requirements.txt# Make port 80 available to the world outside this containerEXPOSE 80# Define environment variableENV NAME World# Run app.py when the container launchesCMD ["python", "app.py"]2.app.py: from flask import Flask from redis import Redis, RedisError import os import socket# Connect to Redisredis = Redis(host="redis", db=0, socket_connect_timeout=2, socket_timeout=2)app = Flask(__name__)@app.route("/")def hello(): try: visits = redis.incr("counter") except RedisError: visits = "<i>cannot connect to Redis, counter disabled</i>" html = "<h3>Hello {name}!</h3>" \ "<b>Hostname:</b> {hostname}<br>" \ "<b>Visits:</b> {visits}" return html.format(name=os.getenv("NAME", "world"), hostname=socket.gethostname(), visits=visits)if __name__ == "__main__": app.run(host='0.0.0.0', port=80)3. requirements.txt: Flask Redis
在docker目录下打开cmd.exe运行命令(确保能够找到Dockerfile文件,镜像取名叫friendlyhello): docker build -t friendlyhello .
ps:千万不要落了上面那行后面的那个点,曾经入过坑的。。命令包括后面的那个点
然后再执行命令:
docker images
运行镜像程序:
docker run -p 4000:80 friendlyhello
可以看到Python正在为应用程序提供消息的http://0.0.0.0:80。但是,这个消息来自容器内部,它不知道我们将该容器的端口80映射到4000,从而打开URL: http://localhost:4000
首先在接着上面的操作步骤后按下ctrl+c在终端退出,这并不意味着镜像停止运行了
键入docker container ls 列出正在运行的容器
运行命令: docker container stop <container name or id></container>
停止容器。否则,在下一步中重新运行容器时,将会收到错误响应。
前面已经说过了,docker和git的操作有类似之处,所以docker也
有远程仓库,如果前面已经注册过并登录了docker cloud,那么
访问网址:https://hub.docker.com 在里面创建存储库,否则先
注册吧。
前面在本地创建了一个friendlyhello的镜像,现在要把它push到
自己的docker hub的存储库中去,首先:
1. 登录docker hub (我已经登录过了。。再登录一次吧)
2. 标记镜像:
把镜像放入wangliguo存储库并标记为test
3. 查看镜像:
4. 发布镜像(推送镜像)
5. Docker Hub上查看镜像:
6. 从远程存储库中提取并运行镜像:现在当远程存储库有了镜像后,就可以从远程存储库提取并运行了
在分布式应用程序中,应用程序的不同部分被称为“服务”。例如,想象一个视频共享站点,它可能包括用于将应用程序数据存储在数据库中的服务,用于用户上传东西的视频转码服务,为前端服务等等。
服务实际上只是“生产中的容器”。服务只运行一个镜像,但它编码镜像运行的方式 - 应该使用哪个端口,容器应该运行多少个副本,以便服务具有所需的容量,以及等等。缩放服务会更改运行该软件的容器实例的数量,从而为流程中的服务分配更多的计算资源。
使用Docker平台定义,运行和扩展服务非常简单 - 只需编写一个docker-compose.yml文件即可。
键入:
version: "3"services: web: # replace username/repo:tag with your name and image details image: 15433/wangliguo:test deploy: replicas: 5 resources: limits: cpus: "0.1" memory: 50M restart_policy: condition: on-failure ports: - "80:80" networks: - webnet networks: webnet:
拉取的是上个步骤中的存储库的tag。
运行该镜像的5个实例作为一个服务调用web,限制每个使用,最多10%的CPU(跨所有核心)和50MB的RAM。
如果一个失败,立即重新启动容器。
将主机上的端口80映射到web端口80。
指导web容器通过一个负载平衡的网络共享80端口webnet。(在内部,容器本身将web在临时端口上发布到 端口80)。
webnet使用默认设置(这是一个负载平衡覆盖网络)定义网络。
先运行命令:docker swarm init
然后再运行命令:docker stack deploy -c docker-compose.yml getstartedlab
给它取名叫getstartedlab
服务堆栈在这台主机上运行了5个部署镜像的容器实例
运行命令查看:docker service ls
在服务中运行的单个容器称为任务,可以看到上面有个getstartedlab_web的服务
运行命令docker service ps getstartedlab_web 查看此服务下的任务:
如果只列出系统中的所有容器,也会显示任务,但不会被服务过滤:
运行命令:docker container ls -q
然后打开浏览器,键入http://localhost
点击刷新多次,可以发现Hostname的更改,以循环方式选择5个任务中的一个来响应。容器ID将与前一个命令(docker container ls -q)的输出相匹配。
比如更改docker-compose.yml中的replicas值,保存更改并重新运行docker stack deploy命令来更新应用程序:
运行命令:
docker stack deploy -c docker-compose.yml getstartedlab
Docker会做一个就地更新,然后重新运行docker container ls -q以查看重新配置的已部署实例
可以看到之前是6个,现在是7个,刚好多了一个任务
ps:电脑中还运行这之前步骤中从docker hub中拉取并运行着的那个任务,所以会看到6个和7个
Tutup application docker stack rm getstartedlab
Tutup kumpulan docker swarm leave –force
Sekarang jalankan arahan selepas semua tugas dalam perkhidmatan ditutup:
bekas docker ls -q
Inilah yang ditarik dan dijalankan dari hab docker dalam langkah sebelumnya Tugas itu
Kawanan ialah sekumpulan mesin yang menjalankan Docker dan menyertai kluster. Tetapi kini mereka akan dilaksanakan pada kluster oleh pengurus kluster. Mesin dalam kumpulan boleh berbentuk fizikal atau maya. Selepas menyertai kumpulan, mereka dipanggil nod.
Pengurus kumpulan boleh menggunakan beberapa strategi untuk menjalankan bekas, seperti "nod paling kosong" - yang mengisi mesin yang paling kurang digunakan dengan bekas. atau "global", yang memastikan bahawa setiap mesin hanya mendapat satu contoh bekas yang diberikan. Anda boleh mengarahkan pengurus kumpulan untuk menggunakan dasar ini dalam fail Karang.
Pengurus kumpulan ialah satu-satunya mesin dalam kumpulan yang boleh melaksanakan arahan anda atau memberi kuasa kepada mesin lain untuk menyertai kumpulan sebagai pekerja. Pekerja menyediakan keupayaan dan tidak mempunyai kuasa untuk memberitahu mana-mana mesin lain apa yang boleh dan tidak boleh dilakukan.
Sehingga kini, saya telah menggunakan Docker dalam mod hos tunggal pada mesin tempatan saya. Tetapi Docker juga boleh bertukar kepada mod kluster, itulah sebabnya kluster digunakan. Mendayakan mod swarm menjadikan mesin semasa sebagai pengurus swarm. Docker kemudiannya akan menjalankan arahan yang dilaksanakan pada kluster yang anda urus, bukan hanya pada mesin semasa.
Sebuah kelompok terdiri daripada berbilang nod, yang boleh menjadi mesin fizikal atau mesin maya. Konsep asasnya mudah: jalankan docker swarm init untuk mendayakan mod swarm, menjadikan mesin semasa sebagai pengurus swarm, dan kemudian jalankan docker swarm bergabung pada mesin lain untuk menyertai swarm sebagai pekerja. Seterusnya, kami akan menggunakan mesin maya untuk mencipta kluster dua mesin dengan cepat dan mengubahnya menjadi kluster.
Langkah:
1. Jalankan cmd.exe sebagai pentadbir Ini mesti dijalankan oleh pentadbir, jika tidak, kebenaran untuk operasi seterusnya tidak akan mencukupi
2. Jalankan docker swarm init. untuk mendayakan mod swarm, supaya semasa Mesin menjadi pengurus swarm, dan kemudian docker swarm join dijalankan pada mesin lain, membolehkan mereka menyertai swarm sebagai pekerja.
3. Mulakan Pengurus Hyper-V
Klik Mula → Alat Pengurusan Windows → Pengurus Hyper-V
4. Klik Pengurus Suis Maya dalam menu kanan
5. Klik Buat suis maya jenis Rangkaian Luaran, beri nama myswitch, dan tandakan kotak Kongsi penyesuai rangkaian aktif hos anda
6. Gunakan Nod Alat pengurusan mencipta beberapa mesin maya mesin docker:
docker-machine create -d hyperv –hyperv-virtual-switch “myswitch” myvm1
docker-machine create -d hyperv –hyperv-virtual-switch “myswitch” myvm2
Saya telah pun menciptanya sebelum ini, jadi saya akan mencipta dua lagi sekarang: myvm3 dan myvm4
docker-machine create -d hyperv –hyperv-virtual-switch “myswitch” myvm3
docker-machine create -d hyperv –hyperv-virtual-switch “myswitch” myvm4
7. Kini dua mesin maya dicipta, masing-masing Dinamakan myvm3 dan myvm4. Gunakan arahan
docker-machine ls untuk menyenaraikan mesin dan mendapatkan alamat IPnya.
先使用命令docker-machine ssh myvm3
然后让myvm3 成为一个管理员:docker swarm init
注意红框中的内容,这是后面的myvm4 加入集群要执行的命令
运行命令:docker node ls
可以看到myvm3 已经成为管理员了
以管理员身份再运行一个cmd.exe.然后运行命令:docker-machine ssh myvm4
然后再运行命令:(这就是上一页中图片里红框中的内容,下面的token是我这里的,正常运行到这里的时候是去myvm3的docker swarm init命令中把红框框位置里的命令复制粘贴过来执行)
docker swarm join --token SWMTKN-1-0csyw4yz6uxob90h0b8ejoimimrgisiuy9t2ugm8c1mxfvxf99-7q7w5jw1mrjk1jlri2bcgqmu8 10.211.106.194:2377
然后再切换到myvm3 的cmd.exe中执行命令:docker node ls
可以看到,我们已经创建了一个简单的集群。、
附离开群命令:docker swarm leave
docker-machine为swarm管理器配置一个shell
运行命令:docker-machine env myvm3
注意最后一行的内容
我这里是@FOR /f "tokens=*" %i IN ('docker-machine env myvm3') DO @%i
复制粘贴运行它
再运行docker-machine ls以验证它myvm3 是否为活动机器
在swarm管理器上部署应用程序
以部署我们之前docker-compose.yml服务为例
首先在这个以管理员身份打开的cmd中进入到docker-compose.yml文件的所在的目录中去,我的因为在D/docker中,如果不过来,那么执行命令:
docker stack deploy -c docker-compose.yml getstartedlab会出现:
进入目录后执行上面那条命令:
再执行命令docker stack ps getstartedlab 查看服务详情:
如果发现state存在shutdown的情况(也有可能出现你的图片上的实例数量大于你在服务文件中定义的数量的情况,这都是我爬过的坑,现在我这里定义的是6,图片上也是6,),那应该是你在之前服务哪一章运行过命令:
docker stack deploy -c docker-compose.yml getstartedlab 而没有把getstartedlab移除掉
这时应该执行命令:docker stack rm getstartedlab 把getstartedlab移除掉
Ps:我是d,c盘都执行了这个命令,因为之前运行docker stack deploy -c docker-compose.yml getstartedlab命令是在d盘的时候
然后重新运行:docker stack deploy -c docker-compose.yml getstartedlab 和
docker stack ps getstartedlab 就好了
浏览器访问集群的网址:
如图红框框所示,浏览器上访问其中的任何一个,然后刷新,将看到6个可能的容器ID,它们都是随机循环的,展示了负载平衡
比如说如果修改了docker-compose.yml文件后,执行命令: docker stack deploy -c docker-compose.yml getstartedlab 再次运行以部署这些更改即可 比如说前面提到的移除应用程序:docker stack rm getstartedlab 离开群:docker swarm leave –force 重新启动已停止的虚拟机,执行: docker-machine start <machine-name></machine-name>
Pembelajaran yang disyorkan: "tutorial video buruh pelabuhan"
Atas ialah kandungan terperinci Pemasangan dan penggunaan docker dalam Win10 (penjelasan terperinci dengan gambar dan teks). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!