一、harbor私有仓库管理
yum -y install epel-release
yum -y install python2-pip
pip install --upgrade pip
pip list pip 8x
pip install --upgrade pip
pip install --upgrade pip==20.3 -i https://mirrors.aliyun.com/pypi/simple
pip list
pip install docker-compose --ignore-installed requests -i https://mirrors.aliyun.com/pypi/simple
source docker.sh
tar -zxvf harbor-offline-installer-v2.11.1.tgz
[root@docker-1 ~]# ls
anaconda-ks.cfg docker.sh harbor harbor-offline-installer-v2.11.1.tgz
[root@docker-1 ~]# cd harbor
[root@docker-1 harbor]# ls
common.sh harbor.v2.11.1.tar.gz harbor.yml.tmpl install.sh LICENSE prepare
cp harbor.yml.tmpl harbor.yml
修改harbor的配置文件(harbor.yml)但是解压后的目录中只有harbor.yml.tmpl,所以复制他,改名
vim harbor.yml
5 hostname: 192.168.1.51(本虚拟机的IP地址)
13 #https:
14 # https port for harbor, default is 443
15 # port: 443
16 # The path of cert and key files for nginx
17 #certificate: /your/certificate/path
18 #private_key: /your/private/key/path
19 # enable strong ssl ciphers (default: false)
20 # strong_ssl_ciphers: false
(https的所有内容全部注释)
47 harbor_admin_password: Harbor12345(查看密码)
vim /etc/docker/daemon.json
{
"registry-mirrors": [
"https://do.nark.eu.org",
"https://dc.j8.work",
"https://docker.m.daocloud.io",
"https://dockerproxy.com",
"https://docker.mirrors.ustc.edu.cn",
"https://docker.nju.edu.cn"
],
"hosts": [
"tcp://0.0.0.0:2375",
"unix:///var/run/docker.sock"
],
"insecure-registries":[
"http://192.168.1.11"
]
}
vim /usr/lib/systemd/system/docker.service
13 ExecStart=/usr/bin/dockerd
systemctl daemon-reload
systemctl start docker./prepare
netstat -lnput|grep 5000
netstat -lnput|grep 80
systemctl stop firewalld
./install.sh
docker pull centos
docker tag centos:latest 192.168.1.51/centos:latest
docker push 192.168.1.51/centos:latest
docker ps --all #查看状态是否健康docker-compose start #启动
docker login http://192.168.1.51
docker tag 192.168.1.51/centos:latest 192.168.1.51/library/centos:v0 #给镜像打标记
docker push 192.168.1.51/library/centos:v0 #推送镜像到达项目
总结:
1、由于要使用python环境运行docker-compose,所以需要验证python
python --version
2、安装pip(python的包管理工具)【需要使用pip下载安装docker-compose】
yum -y install python2-pip
3、pip版本太低
pip install --upgrade pip==20.3 -i https://mirrors.aliyun.com/pypi/simple
4、下载安装docker-compose
pip install docker-compose --ignore-installed requests -i https://mirrors.aliyun.com/pypi/simple
5、上传harbor文件,解压
6、配置文件,本来有一个配置harbor.yml.tmpl
cp harbor.yml.tmpl harbor.yml
(修改harbor的配置文件(harbor.yml)但是解压后的目录中只有harbor.yml.tmpl,所以复制他,改名)
vim harbor.yml
5 hostname: 192.168.1.51(本虚拟机的IP地址) 13 #https: 14 # https port for harbor, default is 443 15 # port: 443 16 # The path of cert and key files for nginx 17 #certificate: /your/certificate/path 18 #private_key: /your/private/key/path 19 # enable strong ssl ciphers (default: false) 20 # strong_ssl_ciphers: false (注释掉https安全网站的配置) 47 harbor_admin_password: Harbor12345(查看密码)
7、 source docker,配置镜像,启动docker
8、./prepare 检察环境,下载镜像
9、./install.sh
10、docker ps --all
11、在远程主机访问80端口
12、登陆,查看项目
13、上传
(1)登录
docker login http://192.168.1.51
(2)上传#打标签 docker tag 192.168.1.51/centos:latest 192.168.1.51/library/centos:v0 docker push 192.168.1.51/library/centos:v0
14、查看上传的内容
15、复制链接下载
16、制的下载链接,添加同时共享的镜像在其他docker主机上配置daemon仓库,启动docker,
二、Docker-compose容器编排
1、命令解析
version
指定了Docker compose编排文件的版本
Docker Compose 目前有三个版本,分别为 Version1、Version2和Version3
Version1 是较早的版本,它将来会被弃用。
Vemsion2 是目前的稳定版本,支持更多的指令。Version3 在功能上与 Version2 类似,但进行了一些改进和扩展,例如增加了对 Docker BuildKit 的支持,可以加速构建过程。
service
指定了在 docker compose 编排中要运行的服务,每个服务都有一个名称,并指定要使用的镜像和容器的配置选项。
services:
mysql:#服务名
# 再往下可以对该服务进行定义,比如指定映射端口,指定使用的镜像等,但要注意缩进格式。
image
指定要使用的 docker 镜像。
services:
mysql: # 服务名
image:mysql:5.5
#指定mysql镜像,如果主机内不存在该镜像,会从登录的docker镜像仓库内拉取,一般都是从dockerhub上拉取
build
允许在 docker compose 编排中指定 dockerfile 的位置。
services:
mysql: # 服务名
build: /docker/mysql
#这里为用户微服务文件夹里面存放的是该服务代码jar包和Dockerfile文件
environment
services:
mysql: # 服务名
environment:
#下面是MySOL环境变量的例子
MYSOL_ROOT_PASSWORD:000000
# 设置MySQL的root用户的密码
MYSOL_DATABASE: database
#指定要创建的数据库名称
MYSOL_USER: user
# 指定要创建的MySQL用户名
MYSOL_PASSWORD:
# 指定要创建的MySQL用户的密码
olumes
挂载宿主机路径或命名卷
(1)指定路径挂载
services:
mysql: #服务名
volumes :
- ./mysql/data:/var/lib/mysq #直接指定路径挂载
(2)⽣成 volume 卷挂载
docker volume create mysql # ⽣成名为mysql的volume卷
vim docker-compose.yml
services:
mysql: # 服务名
volumes:
- mysql:/var/lib/mysq # 指定volume卷挂载
(3)共享⽬录挂载
vim docker-compose.yml
version: '2' # 使⽤共享⽬录挂载只有‘2’版本⽀持
service:
mysql: # 服务名
volumes:
- /var/lib/mysql # 将这个⽬录作为共享⽬录
nginx:
volumes:
- /usr/local/nginx/html
php:
volumes_from: # 共享⽬录来⾃
- mysql # 挂载的共享⽬录,挂载后会在容器内⽣成与被挂载的⽬录同名的路径
- nginx # 共享挂载可以是⼀个列表
port
指定了要宿主机映射到容器的端⼝,端⼝不能低于 60(宿主机端 ⼝:容器端⼝),如果选择的端⼝号低于 60,可能会与系统保留的 知名端⼝冲突。
services:
mysql: # 服务名
ports:
- 3306:3306 # 宿主机端⼝:容器端⼝
expose
⽤于在 docker 容器内部暴露端⼝的选项。
services:
mysql: # 服务名
expose:
- 3306
networks
加⼊⽹络,引⽤顶级 networks 条⽬
networks: # 与services同级
dev: # ⾃定义或已存在的⽹络设备名
driver: bridge # 设备类型:⽹桥
external: true # 外部存在:是
hostname
设定容器主机名
services:
mysql: # 服务名
hostname: mysql
command
指定容器启动时要运⾏的命令,覆盖构建时的默认命令
services:
mysql: #服务名
command: --character-set·server=utf8
[root@docker3 ~]# yum -y install epel-release
[root@docker3 ~]# yum -y install python2-pip[root@docker3 ~]# pip install --upgrade pip==20.3 -i https://mirrors.aliyun.com/pypi/simple
[root@docker3 ~]# pip install docker-compose -i https://mirrors.aliyun.com/pypi/simple[root@docker3 test]# mkdir html
[root@docker3 test]# echo "山不在高,有仙则灵" > ./html/index.html[root@docker3 test]# vim docker-compose.yml
version: "3"
services:
nginx:
container_name: c1
image: "nginx:latest"
ports:
- "80:80"
volumes:
- /root/test/html/:/usr/share/nginx/html/[root@docker3 test]# docker up -d