2022-10-28-Docker容器技术(学习笔记)

2022-10-27  本文已影响0人  DGFM

实验:搭建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 声明的服务名=伸缩的个数(数字);

上一篇下一篇

猜你喜欢

热点阅读