文章目录
一、安装docker私服(Docker Registry)
- 下载镜像Docker Registry
docker pull registry
- 运行私有库Registry,相当于本地有个私有Docker hub
docker run -d -p 宿主机port:私服port -v /home/docker-registry/:/tmp/registry --privileged=true registry
docker run -d -v /home/docker-registry/registry:/var/lib/registry -p 15000:5000 --restart=always --name docker-registry registry
- 验证私服库上有什么镜像
curl -XGET http://宿主机ip:宿主机port/v2/_catalog
curl -XGET http://宿主机ip:宿主机port/v2/${imageName}/tags/list
- 将新镜像 [镜像:Tag] 修改符合私服规范的Tag
docker tag 镜像:Tag Host:Port/镜像:Tag
例docker tag zzyyubuntu:1.2 192.168.111.162:5000/zzyyubuntu:1.2
5. 修改配置文件使之支持http
vim /etc/docker/daemon.json
{
"registry-mirrors": ["https://aa25jngu.mirror.aliyuncs.com"],
"insecure-registries": ["私服ip:私服port"]
}
在当前服务器上开启私服和镜像
docker默认不允许http方式推送镜像,通过配置选项来取消这个限制。====> 修改完后如果不生效,建议重启docker
6. push推送到私服库
docker push 私服ip:私服port/镜像:Tag
- curl再次验证私服库上有什么镜像
curl -XGET http://宿主机ip:宿主机port/v2/_catalog
- pull到本地并运行
docker pull 私服ip:私服port/镜像:Tag
docker run -it 镜像ID /bin/bash
二、安装docker编排(Docker-Compose)
- 下载镜像Docker-Compose
curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
docker-compose --version
- Compose核心概念
docker-compose.yml
version: "3"
services:
ssoEureka:
image: 10.25.1.14:15000/sso_eureka:1.0
container_name: ssoEureka
ports:
- "8001:8001"
volumes:
- /home/server/config:/home/server/config
restart: always
ssoGetway:
image: 10.25.1.14:15000/sso_getway:1.0
container_name: ssoGetway
ports:
- "8002:8002"
volumes:
- /home/server/config:/home/server/config
restart: always
- Compose使用的三个步骤
- 编写Dockerfile定义各个微服务应用并构建出对应的镜像文件
- 使用 docker-compose.yml 定义一个完整业务单元,安排好整体应用中的各个容器服务。
- 最后,执行docker-compose up命令 来启动并运行整个应用程序,完成一键部署上线
- docker-compose常用命令
查看帮助
docker-compose -h
启动所有docker-compose服务
docker-compose up
启动所有docker-compose服务并后台运行
docker-compose up -d
停止并删除容器、网络、卷、镜像。
docker-compose down
进入容器实例内部 docker-compose exec docker-compose.yml文件中写的服务id /bin/bash
docker-compose exec yml里面的服务id
展示当前docker-compose编排过的运行的所有容器
docker-compose ps
展示当前docker-compose编排过的容器进程
docker-compose top
查看容器输出日志
docker-compose logs yml里面的服务id
检查配置
docker-compose config
检查配置,有问题才有输出
docker-compose config -q
重启服务
docker-compose restart
启动服务
docker-compose start
停止服务
docker-compose stop
5.docker-compose属性说明
属性 | 说明 | 对应 docker run 命令 |
---|---|---|
version | 指定 docker-compose.yml 文件的写法格式 | – |
services | 多个容器集合 | – |
environment | 环境变量配置,可以用数组或字典两种方式 | -e |
image | 指定服务所使用的镜像 | ${image} |
expose | 定义容器用到的端口(一般用来标识镜像使用的端口,方便用ports映射) | – |
ports | 定义宿主机端口和容器端口的映射,可使用宿主机IP+宿主机端口进行访问 宿主机端口:容器端口仅指定容器端口时,宿主机将会随机选择端口 | -p |
volumes | 卷挂载路径,定义宿主机的目录/文件和容器的目录/文件的映射 宿主机路径:容器路径 | -v |
depend_on | 规定service加载顺序,例如数据库服务需要在后台服务前运行 | – |
extra_hosts | 类似于docker里的–add-host参数 配置DNS域名解析(域名和IP的映射) | -h,–hostname string |
restart | 配置重启,docker每次启动时会启动该服务 | –restart |
privileged | 开启特权模式 | –privileged |
user | 指定容器运行的用户名 | -u |
links | 将指定容器连接到当前连接,可以设置别名,已废弃,推荐使用networks | – |
networks | 选用网络服务 | – |
logging | 日志服务 | – |
driver | 默认json-file,可选syslog | – |
network_mode | 设置网络模式 | – |
cap_add cap_drop | 赋予/删除 容器某些能力 | – |
build | 配置构建时,Compose 会利用它自动构建镜像,该值可以是一个路径,也可以是一个对象,用于指定 Dockerfile 路径如果指定build同时也指定image,那么会从build里构建,镜像的名字和tag将取image指定的 | – |
command | 覆盖容器启动后默认执行的命令 | – |
三、安装(Redis)
1、拉取镜像
docker pull redis
2、创建宿主机存储文件夹
mkdir /home/docker-app/redis/data
3、创建redis.conf配置文件
vim /home/docker-app/redis/redis.conf
上传redis.conf配置文件,并修改一下内容
后台运行:daemonize yes(ps:docker启动时要设置为no,因为会跟docker后台启动冲突)
远程访问:bind 127.0.0.1
防止了远程访问: protected-mode
设置密码: requirepass 123456
4、启动运行容器
docker run -p 6379:6379 --name myr3 --privileged=true -v /home/docker-app/redis/redis.conf:/etc/redis/redis.conf -v /home/docker-app/redis/data:/data -d redis redis-server /etc/redis/redis.conf
5、docker编排redis容器
version: "3"
services:
redisServer:
image: redis
container_name: redisServer
ports:
- "6379:6379"
volumes:
- /home/docker-app/redis/redis.conf:/etc/redis/redis.conf
- /home/docker-app/redis/data:/data
restart: always
command: redis-server /etc/redis/redis.conf
四、安装配图服务运行镜像环境
1、拉取centos7镜像文件
docker pull centos:7
2、更新引入必要的linux插件
由于镜像是最小运行,故镜像中没有所需的运行插件,需要手动安装一下
yum update
yum install gcc automake autoconf libtool make
3、上传vector文件夹(系统必须的组件包)
4、执行脚本
chmod -x gcc.sh
chmod -x node.sh
chmod -x ogr.sh
./gcc.sh
./node.sh
./ogr.sh
可能存在环境变量不能自动配置的情况
配置dotnet环境变量
tar -zxvf dotnet-sdk-2.1.401-linux-x64.tar.gz
vim /etc/profile.d/dotnetsdk.sh
export PATH=$PATH:/dotnetsdk/ #增加一行内容
source /etc/profile.d/dotnetsdk.sh#使环境变量生效
dotnet --version
5、提交新的容器 使之成为一个新的镜像
docker commit [OPTIONS] 容器ID [REPOSITORY[:TAG]]
五、 安装minio(minio)
- 查看镜像并拉取最新镜像
docker search minio
使用docker pull minio/minio 命令拉取minio镜像(后面不跟版本,默认是最新版本镜像)
docker pull minio/minio
2. 创建并启动minio容器
docker最新版安装会报错 ,提示port问题,因为最新版提供了api和console两个端口,所以需要--console-address ":9000" --address ":9090" 进行指定启动,前期版本不需要,直接运行即可
docker run -d -p 9000:9000 --name minio -e "MINIO_ACCESS_KEY=minioadmin" -e "MINIO_SECRET_KEY=minioadmin" -v /home/docker-app/minio/data:/data -v /home/docker-app/minio/config:/root/.minio minio/minio server /data --console-address ":9000" --address ":9090"
- 编写docker-compose文件
version: "3"
services:
minio:
image: minio/minio
container_name: minio
ports:
- "9000:9000"
environment:
- MINIO_ACCESS_KEY=minioadmin
- MINIO_SECRET_KEY=minioadmin
volumes:
- /home/docker-app/minio/data:/data
- /home/docker-app/minio/config:/root/.minio
command: server /data --console-address ":9000" --address ":9090"
restart: always
六、 安装Jenkins(jenkins)
- 拉取jenkins镜像
目前jenkins镜像不用了,要用jenkins/jenkins镜像
docker pull jenkins/jenkins
- 创建jenkins工作目录
mkdir /home/jenkins/jenkins_home
- 启动
docker run \
-u root -d -p 8080:8080 -p 50000:50000 --name jenkins --restart always \
-v /home/jenkins/jenkins_home:/var/jenkins_home \
-v /etc/localtime:/etc/localtime \
jenkins/jenkins