2022-10-28-Docker容器技术(学习笔记)
实验:搭建Harbor仓库服务;
环境:
系统: Ubuntu-20.04
1.下载harbor二进制安装包:harbor-offline-installer-v2.3.2.tgz #可能需要挂代理,或者找一些国内的下载节点;
2.修改系统主机名,为了方便辨认:$ hostnamectl set-hostname harbor-1
3.创建harbor目录,为了方便管理:# mkdir /usr/local/src/harbor
4.解压harbor包:# tar -xvf /usr/local/src/harbor/harbor-offline-installer-v2.3.2.tgz
5.安装docker和docker-compose,如果要使用harbor中的SSL功能,还需要安装openssl;
6.复制默认harbor配置文件模板:# cp harbor.yml.tmpl ./harbor.yml
7.修改配置文件内容:参考默认模板,根据实际情况进行修改;
hostname: 192.168.110.161 #配置harbor服务器的访问IP或域名;
http: #http访问配置字段;
port: 80 #配置通过http协议访问harbor服务时使用的端口;
https: #https访问配置字段;
port: 443 #https访问端口;
certificate: /your/certificate/path #私钥路径;
private_key: /your/private/key/path #公钥路径;
harbor_admin_password: harbor@123 #配置harbor管理用户admin的默认密码;
database: #数据库配置字段;
password: root123 #数据库密码;
max_idle_conns: 100
max_open_conns: 900
data_volume: /data #数据库存储目录映射,此处表示容器中的数据会存储在宿主机/data路径下;
8.在harbor.yml所在路径下运行安装脚本:# ./install.sh #出现下图状态表示安装成功;
9.查看docker容器:docker ps
10.访问测试:http://192.168.110.161/
11.登录并配置项目仓库:默认账号:admin;
12.在客户端节点使用Dockerfile创建测试镜像,并上传:
12.1 在harbor客户端设备上修改/lib/systemd/system/docker.service文件,添加仓库认证:--insecure-registry
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --insecure-registry=192.168.110.161
# systemctl daemon-reload #重新读取docker.service配置;
# systemctl restart docker #重启docker服务;
12.2 登录harbor服务器:
# docker login 192.168.110.161
12.3 修改docker镜像名称为:harbor服务器地址/项目名/镜像名:TAG号
# docker tag SOURCE_IMAGE[:TAG] 192.168.110.161/nginx/REPOSITORY[:TAG]
# docker push 192.168.110.161/nginx/nginx_all-in-one:nginx_1.23.1 #上传镜像;
Docker网路简介:
docker网络简单分为三种:使用docker network ls进行查询,docker在每次新建容器时,容器的ip地址都可能不同;
bringe:桥接网络,通过将容器网路映射到宿主机上,以此达到访问功能;
host:与桥接模式不同,host模式不进行映射,直接使用宿主机网络协议栈进行通信,此种方法更节省网络资源;
none:不使用网络;
实验:安装docker-compose并利用它组装一个多容器的服务:如nginx、mysql、php
1.分别使用Dockerfile构建3种服务的镜像;
2.编辑简单的docker-compose.yaml文件
3.使用docker-compose up -d启动容器组;
docker-compose常用命令简介:和docker的很多命令使用方法相似,可以根据情况自行选择;
-f:指定使用哪个配置文件(默认配置文件是docker-compose.yml或docker-compose.yaml)可以使用绝对路径;
-p:指定项目工程名;
config:检查docker-compose,的配置文件是否有语法错误。后接-q选项静默输出,输出结果是经过规则转译后得到的标准文件规则问题本;
up:启动容器,-d选项表示在后台运行;
down:删除容器所有相关数据,一般禁用;
stop:停止容器运行;
start:启动容器;
exec:连接到某容器;
kill:杀死某个容器;
pause:暂停容器;
unpause:取消暂停;
port:打印容器的映射端口;
pull:使用docker-compose下载镜像;
push:使用docker-compose上传镜像;
scale:对容器进行弹性伸缩,即可以指定同时启动特定容器的数量。注意因为在一个宿主机中容器的别名和映射端口的唯一性,所以在进行伸缩操作的时候不可以写死这几个参数,否则会报错。但是由于没有声明映射端口,所以无法直接访问;docker-compose scale 声明的服务名=伸缩的个数(数字);