Docker在Windows下的安装及使用_windows docker

最全的Linux教程,Linux从入门到精通

======================

  1. linux从入门到精通(第2版)

  2. Linux系统移植

  3. Linux驱动开发入门与实战

  4. LINUX 系统移植 第2版

  5. Linux开源网络全栈详解 从DPDK到OpenFlow

华为18级工程师呕心沥血撰写3000页Linux学习笔记教程

第一份《Linux从入门到精通》466页

====================

内容简介

====

本书是获得了很多读者好评的Linux经典畅销书**《Linux从入门到精通》的第2版**。本书第1版出版后曾经多次印刷,并被51CTO读书频道评为“最受读者喜爱的原创IT技术图书奖”。本书第﹖版以最新的Ubuntu 12.04为版本,循序渐进地向读者介绍了Linux 的基础应用、系统管理、网络应用、娱乐和办公、程序开发、服务器配置、系统安全等。本书附带1张光盘,内容为本书配套多媒体教学视频。另外,本书还为读者提供了大量的Linux学习资料和Ubuntu安装镜像文件,供读者免费下载。

华为18级工程师呕心沥血撰写3000页Linux学习笔记教程

本书适合广大Linux初中级用户、开源软件爱好者和大专院校的学生阅读,同时也非常适合准备从事Linux平台开发的各类人员。

需要《Linux入门到精通》、《linux系统移植》、《Linux驱动开发入门实战》、《Linux开源网络全栈》电子书籍及教程的工程师朋友们劳烦您转发+评论

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以点击这里获取!

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

docker pull mysql:8.0.35


**第二步、创建docker网络**



创建docker网络,便于容器可以通过网络与宿主机和其他容器通信

docker network create docker-network


**第三步、创建挂载目录**  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/bb7ad7e66fd64d3aa5873393475f5fdb.png)  
 **第四步:创建并运行容器**



docker run --name mysql-dev -d ^
–restart unless-stopped ^
-e TZ=Asia/Shanghai ^
–network docker-network ^
-v D:\Develop\Docker\Data\mysql\log:/var/log/mysql ^
-v D:\Develop\Docker\Data\mysql\data:/var/lib/mysql ^
-v D:\Develop\Docker\Data\mysql\conf:/etc/mysql/conf.d ^
-p 13306:3306 ^
-e MYSQL_ROOT_PASSWORD=123456 ^
mysql:8.0.35


参数解释:



–name mysql-dev #指定容器名称
-d #后台运行容器
–restart unless-stopped #设置重启策略为在容器手动停止时以外的任何原因退出时重启
-e TZ=Asia/Shanghai #设置容器时区
–network docker-network #将容器连接到自定义的 Docker网络中
-v #目录挂载
-p 13306:3306 #将容器的 3306端口映射到宿主机的 13306端口
-e MYSQL_ROOT_PASSWORD=123456 # mysql root用户的密码
mysql:8.0.35 #使用的mysql镜像版本


![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/5c17b3a65a9a46ed993921886edde7ec.png)


![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/1170f6bc0d174c51adbf1d486c784104.png)


如果客户端连接时提示:Public Key Retrieval is not allowed,可以尝试将驱动参数allowPublicKeyRetrieval修改为true:  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/b216518f8d38449994bcd5b67508aab5.png)


### 3.3 安装nacos


**第一步、拉取镜像**



以v2.2.3版本为例

docker pull nacos/nacos-server:v2.2.3


**第二步、拷贝nacos目录及文件到宿主机**


1)挂载目录前,先启动一次docker



只要启动后是running状态就可以

docker run --name nacos-dev -d ^
-e MODE=standalone ^
-p 18848:8848 ^
-p 19848:9848 ^
-p 19849:9849 ^
nacos/nacos-server:v2.2.3


2)拷贝nacos目录到宿主机



docker cp nacos-dev:/home/nacos/bin D:\Develop\Docker\Data\nacos
docker cp nacos-dev:/home/nacos/conf D:\Develop\Docker\Data\nacos
docker cp nacos-dev:/home/nacos/data D:\Develop\Docker\Data\nacos
docker cp nacos-dev:/home/nacos/logs D:\Develop\Docker\Data\nacos


3)停止并删除容器



docker stop nacos-dev && docker rm nacos-dev


**第三步:在mysql中执行nacos sql脚本**


1)创建数据库:nacos(名称自定义)


2)执行sql脚本(mysql-schema.sql):  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/d4bbf8c50de345ddbd4551eeb7500297.png)  
 执行后会创建如下10几张表:  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/fa03dc422b16454182914ecc5b1aa3f6.png)


**第四步:创建并以挂载目录的方式启动容器**



docker run --name nacos-dev -d ^
–restart unless-stopped ^
–network docker-network ^
–privileged=true ^
-p 18848:8848 ^
-p 19848:9848 ^
-p 19849:9849 ^
-e PREFER_HOST_MODE=hostname ^
-e MODE=standalone ^
-e SPRING_DATASOURCE_PLATFORM=mysql ^
-e MYSQL_SERVICE_HOST=mysql-dev ^
-e MYSQL_SERVICE_PORT=3306 ^
-e MYSQL_SERVICE_DB_NAME=nacos ^
-e MYSQL_SERVICE_USER=root ^
-e MYSQL_SERVICE_PASSWORD=123456 ^
-e JVM_XMS=512m ^
-e JVM_XMX=512m ^
-e JVM_XMN=256m ^
-e MYSQL_SERVICE_DB_PARAM=“characterEncoding=utf8&connectTimeout=10000&socketTimeout=30000&autoReconnect=true&useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true” ^
-v D:\Develop\Docker\Data\nacos\bin:/home/nacos/bin ^
-v D:\Develop\Docker\Data\nacos\conf:/home/nacos/conf ^
-v D:\Develop\Docker\Data\nacos\data:/home/nacos/data ^
-v D:\Develop\Docker\Data\nacos\logs:/home/nacos/logs ^
nacos/nacos-server:v2.2.3


参数解释



–name nacos-dev # 容器名称
-d # 后台运行容器
–restart unless-stopped #设置重启策略为在容器手动停止时以外的任何原因退出时重启
–network docker-network # 将容器连接到自定义的 Docker网络中
–privileged=true # 提供一些额外的权限给容器
-p 18848:8848 # 将容器的 8848端口映射到宿主机的 18848端口
-p 19848:9848 # 将容器的 9848端口映射到宿主机的 19848端口
-p 19849:9849 # 将容器的 9849端口映射到宿主机的 19849端口
-e PREFER_HOST_MODE=hostname # 设置 Nacos使用主机名模式
-e MODE=standalone # 设置 Nacos运行模式为单机模式
-e SPRING_DATASOURCE_PLATFORM=mysql # 设置数据源平台为 MySQL
-e MYSQL_SERVICE_HOST=mysql-dev # Mysql容器名
-e MYSQL_SERVICE_PORT=3306 # Mysql容器端口
-e MYSQL_SERVICE_DB_NAME=nacos # nacos数据库
-e MYSQL_SERVICE_USER=root # 连接Mysql用户
-e MYSQL_SERVICE_PASSWORD=123456 # 连接Mysql密码
-e JVM_XMS=512m # 设置 Java 虚拟机的初始堆大小为 512MB
-e JVM_XMX=512m # 设置 Java 虚拟机的最大堆大小为 512MB
-e JVM_XMN=256m # 设置 Java 虚拟机的新生代堆大小为 256MB
-e MYSQL_SERVICE_DB_PARAM=“characterEncoding=utf8&connectTimeout=10000&socketTimeout=30000&autoReconnect=true&useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true” # 设置MySQL连接的参数
-v D:\Develop\Docker\Data\nacos\bin:/home/nacos/bin # 挂载宿主机的 Nacos bin 目录到容器
-v D:\Develop\Docker\Data\nacos\conf:/home/nacos/conf # 挂载宿主机的 Nacos 配置目录到容器
-v D:\Develop\Docker\Data\nacos\data:/home/nacos/data # 挂载宿主机的 Nacos 数据目录到容器
-v D:\Develop\Docker\Data\nacos\logs:/home/nacos/logs # 挂载宿主机的 Nacos 日志目录到容器
nacos/nacos-server:v2.2.3 # 使用的 Nacos镜像版本


**第五步:验证**


1)在浏览器中访问:http://localhost:18848/nacos  
 默认用户:nacos,密码:nacos  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/15a60c891c994643aff5df8bd056ba7f.png)


2)创建命名空间:  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/6fbe7e9964b6449e82058a42614c8a0e.png)


命名空间保存到了mysql,说明本次安装成功了。  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/18667d0dd4d149438462ff327b2c2e62.png)


### 3.4 安装minio


**第一步、拉取镜像**



docker pull minio/minio


**第二步、创建挂载目录**  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/7863df41e4d74d2487e6b8f50393b9b4.png)  
 **第三步:创建并运行容器**



docker run --name minio -d ^
-e TZ=Asia/Shanghai ^
-e “MINIO_ACCESS_KEY=minioadmin” ^
-e “MINIO_SECRET_KEY=minioadmin” ^
-p 9000:9000 ^
-p 9001:9001 ^
-v D:\Develop\Docker\Data\minio\data:/data ^
-v D:\Develop\Docker\Data\minio\config:/root/.minio ^
minio/minio:latest server /data --console-address “:9001”


**第四步:验证**  
 访问 <http://127.0.0.1:9000> 或 <http://127.0.0.1:9001>  
 用户名、密码:minioadmin  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/5c5b26bf76f34e7da06365c06b3eab37.png)  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/898f980ce95644a0a4a8cfcecf00e90c.png)


### 3.5 安装xxl-job


官方文档:[快速入门]( )


**第一步、拉取镜像**



docker pull xuxueli/xxl-job-admin:2.4.0


**第二步、执行初始化脚本**  
 下载地址:[tables\_xxl\_job.sql]( )


**第三步、创建挂载目录**  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/f8d64243b9f6418aac0203f6f83f3764.png)![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/bbf3d84c83574cfba9b5d89cf2adc942.png)  
 配置文件下载:[application.properties]( )


修改 mysql 连接信息:



spring.datasource.url=jdbc:mysql://[IP 或 容器名]:3306/xxl_job?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&serverTimezone=Asia/Shanghai
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver


**第四步:创建并运行容器**



docker run --name xxl-job -d ^
–network docker-network ^
-e TZ=Asia/Shanghai ^
-e PARAMS=“–spring.config.location=/application.properties” ^
-p 8081:8080 ^
-v D:\Develop\Docker\Data\xxl-job\logs:/data/applogs ^
-v D:\Develop\Docker\Data\xxl-job\conf\application.properties:/application.properties ^
xuxueli/xxl-job-admin:2.4.0


**第五步:验证**  
 http://localhost:8081/xxl-job-admin/  
 用户名:admin  
 密码:123456  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/f3a69b379152414f8dc430a531ec282b.png)


新增一个任务:  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/81cfa570517d49b69c34634c880d3cfc.png)  
 查看数据库:  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/07d328f6abc64969bd4f299817a6bb5a.png)


## 四、使用 docker-compose 管理容器


### 4.1 创建 docker-compose.yml 文件



定义compose语义版本

version: ‘3.8’

定义服务

services:
redis:
image: redis:7.0.14
container_name: redis
# 重启策略:在容器手动停止时以外的任何原因退出时重启
restart: unless-stopped
# 启动redis服务;设置密码为123456;开启redis持久化
command: redis-server /etc/redis/redis.conf --requirepass 123456 --appendonly yes
# 设置容器时区、语言环境
environment:
TZ: Asia/Shanghai
LANG: en_US.UTF-8
volumes:
# 需要下载相应版本的redis.conf文件,下载地址:https://github.com/redis/redis/tags
- “D:\Develop\Docker\Data\redis\redis.conf:/etc/redis/redis.conf”
# 挂载持久化数据目录
- “D:\Develop\Docker\Data\redis\data:/data”
ports:
# 端口映射
- “6379:6379”
networks:
- docker-network

mysql:
image: mysql:8.0.35
container_name: mysql
restart: unless-stopped
environment:
TZ: Asia/Shanghai
MYSQL_ROOT_PASSWORD: 123456
MYSQL_ROOT_AUTH_PLUGIN: caching_sha2_password
LANG: en_US.UTF-8
ports:
- “3306:3306”
# 设置MySQL服务器的最大连接数、指定MySQL服务器的默认字符集、指定MySQL服务器的默认排序规则
command:
–max_connections=1000
–character-set-server=utf8mb4
–collation-server=utf8mb4_general_ci
volumes:
- “D:\Develop\Docker\Data\mysql\log:/var/log/mysql”
- “D:\Develop\Docker\Data\mysql\data:/var/lib/mysql”
- “D:\Develop\Docker\Data\mysql\conf:/etc/mysql/conf.d”
networks:
- docker-network
healthcheck:
test: [ “CMD”, “mysqladmin” ,“ping”, “-h”, “localhost” ]
retries: 10

nacos:
image: nacos/nacos-server:v2.2.3
container_name: nacos
restart: unless-stopped
volumes:
- “D:\Develop\Docker\Data\nacos\bin:/home/nacos/bin”
- “D:\Develop\Docker\Data\nacos\conf:/home/nacos/conf”
- “D:\Develop\Docker\Data\nacos\data:/home/nacos/data”
- “D:\Develop\Docker\Data\nacos\logs:/home/nacos/logs”
environment:
- PREFER_HOST_MODE=hostname
- MODE=standalone
- SPRING_DATASOURCE_PLATFORM=mysql
# 修改mysql连接信息
- MYSQL_SERVICE_HOST=mysql # 注意:因为是容器间通信,这里要设置mysql容器名,127.0.0.1localhost不好使
- MYSQL_SERVICE_DB_NAME=nacos
- MYSQL_SERVICE_PORT=3306
- MYSQL_SERVICE_USER=root
- MYSQL_SERVICE_PASSWORD=123456
# 修改JVM参数
- JVM_XMS=256m #-Xms default: 1g
- JVM_XMX=256m #-Xmx default: 1g
- JVM_XMN=128m #-Xmn default: 512m
- JVM_MS=32m #-XX:MetaspaceSize default: 128m
- JVM_MMS=64m #-XX:MaxMetaspaceSize default: 320m
- MYSQL_SERVICE_DB_PARAM=characterEncoding=utf8&connectTimeout=10000&socketTimeout=30000&autoReconnect=true&useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true
ports:
- “8848:8848”
- “9848:9848”
- “9849:9849”
networks:
- docker-network
healthcheck:
test: [“CMD-SHELL”, “echo ‘ruok’ | curl -s telnet://localhost:8848 || exit 1”]
retries: 10
depends_on:
mysql:
condition: service_healthy

minio:
image: minio/minio:latest
container_name: minio
restart: no
command: server /data --console-address “:9001”
environment:
TZ: Asia/Shanghai
LANG: en_US.UTF-8
volumes:
- “D:\Develop\Docker\Data\minio\data:/data”
- “D:\Develop\Docker\Data\minio\config:/root/.minio”
ports:
- “9000:9000”
- “9001:9001”
networks:
- docker-network

xxl-job:
image: xuxueli/xxl-job-admin:2.4.0
container_name: xxl-job
restart: no
environment:
TZ: Asia/Shanghai
LANG: en_US.UTF-8
PARAMS: ‘–spring.config.location=/application.properties’
volumes:
- “D:\Develop\Docker\Data\xxl-job\logs:/data/applogs”
- “D:\Develop\Docker\Data\xxl-job\conf\application.properties:/application.properties”
ports:
- “8081:8080”
depends_on:
- mysql
networks:
- docker-network

networks:
docker-network:
external: true


### 4.2 启动服务



进入 docker-compose.yml 所在目录,执行以下命令

docker-compose up -d


![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/fb0826b2845e4bc69882e55d82cdc548.png)








**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**

**[需要这份系统化的资料的朋友,可以点击这里获取!](https://bbs.csdn.net/topics/618635766)**

**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值