docker windows配置

docker desktop 配置国内镜像仓库
{
“registry-mirrors”: [
“https://registry.docker-cn.com”,
“http://hub-mirror.c.163.com”,
“https://docker.mirrors.ustc.edu.cn”
],

"hosts": ["tcp://0.0.0.0:2375"],


“insecure-registries”: [],
“debug”: false,
“experimental”: false,
“features”: {
“buildkit”: true
}
}
————redis————————————

以管理员身份运行CMD,执行如下命令拉取Redis
docker pull redis:latest
在D盘新建decker_data/redis目录,然后在该目录下分别新建conf和data目录,分别用于挂载配置文件和存放数据持久化文件。

--运行 容器
docker run --name Redis-6379 -p 6379:6379 -v /D/docker_data/redis/conf/redis.conf:/etc/redis/redis_6379.conf -v /D/docker_data/redis/data:/data/ -d redis:latest redis-server /etc/redis/redis_6379.conf --appendonly yes
-查看redis 版本
docker exec -it Redis-6379 redis-server -v
--宿主机的springboot项目,无法访问docker容器中的redis服务

问题分析

1、在默认的redis.conf中bind只监听127.0.0.1,且保护状态为保护状态

问题解决方法

1、注释掉bind属性:#bind 127.0.0.1

2、protected-mode yes改为protected-mode no

3、设置requirepass,默认为foobared,修改为自定义密码或者通过redis-cli config set命令修改

修改以上部分,重启docker,问题解决

查看版本
docker exec -it Redis-6379 redis-server -v


//************************mysql************************

docker pull mysql:latest
docker images mysql:latest

1 运行镜像生成容器(先不挂载)
docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=master$1234 -d mysql
2、复制配置文件到挂载目录(注意路径可能没有)
docker cp mysql:/etc/my.cnf d:\docker_data\mysql8\conf

3、停止并删除旧容器
docker stop mysql
docker rm mysql

 

各个参数说明:

–name:为容器指定一个名称,如这里我指定的名称为Redis-6667
-p: 指定端口映射,格式为:主机(宿主)端口:容器端口,如这里我都指定的是6667
-d: 后台运行容器,并返回容器ID
-v /D/Net_Program/Net_RedisDocker/conf/redis.conf:/etc/redis/redis_6379.conf,把宿主机配置好的redis.conf放到容器内的这个位置中
-v /D/Net_Program/Net_RedisDocker/data:/data/,把Redis持久化的数据在宿主机内显示,做数据备份
-----------------------------------

在D盘新建decker_data/mysql目录,然后在该目录下分别新建conf目录和data目录 log目录 mysql-files 目录,分别用于挂载配置文件和存放数据持久化文件。
-d: 后台运行容器,并返回容器ID

docker run -p 3306:3306 --name mysql -v /d/docker_data/mysql8/mysql-files:/var/lib/mysql-files -v /d/docker_data/mysql8/log:/var/log/mysql -v /d/docker_data/mysql8/data:/var/lib/mysql -v /d/docker_data/mysql8/conf:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=master$1234 -e TZ=Asia/Shanghai -d mysql

 

*************************************jenkins**********************************

docker pull jenkins/jenkins:lts

docker run -di --name=jenkins -p 8080:8080 -v /D/docker_data/jenkins/:/var/jenkins_home jenkins/jenkins:lts

 //**********************************************

二、设置防火墙
使用管理员打开powershell,执行下边命令

netsh advfirewall firewall add rule name="docker_daemon" dir=in action=allow protocol=TCP localport=2375

netsh advfirewall firewall add rule name="docker_lycrb" dir=in action=allow protocol=TCP localport=48080

New-NetFirewallRule -DisplayName 'Docker SSL Inbound' -Profile @('Domain', 'Public', 'Private') -Direction Inbound -Action Allow -Protocol TCP -LocalPort 2376

三、测试
docker -H 127.0.0.1:2375 info
浏览器访问

http://localhost:2375/version

 

posted on 2023-06-15 14:48  zyp_java_net  阅读(123)  评论(0编辑  收藏  举报

导航