云原生学习作业2
一、搭建配置harbor私有仓库;

二、掌握docker网络;
docker网络主要有4中模式: bridge(桥接模式)、host(主机模式) 、none(无网络模式) 、container(寄生模式)
1, bridge模式: 桥接模式是docker 的默认网络设置,当Docker服务启动时,会在主机上创建一个名为docker0的虚拟网桥,并选择一个和宿主机不同的IP地址和子网分配给docker0网桥。网络模式选择桥接模式的容器,就会连接上docker0这个网桥,在通过nat的转换,通过宿主机的网卡,连接外网,就能达到上外网的目的。
2,host 模式:该模式下容器是不会拥有自己的ip地址,而是使用宿主机的ip地址和端口。这种模式的好处就是网络性能比桥接模式的好。缺点就是会占用宿主机的端口,网络的隔离性不太好.
3,none模式:使用none模式,Docker 容器拥有自己的Network Namespace ,但是并不为Docker 容器进行任何网络配置。这个Docker 容器没有网卡、IP、路由等信息。这种网络模式下容器只有lo回环网络,没有其他网卡。这种类型的网络没有办法联网,封闭的网络能很好的保证容器的安全性。
4,container模式:container模式指定新创建的容器和已经存在的一个容器共享一个Network Namespace (网络命名空间),而不是和宿主机共享。新创建的容器不会创建自己的网卡,配置自己的IP,而是和一个指定的容器共享IP、端口范围等。同样,两个容器除了网络方面,其他的如文件系统、进程列表等还是隔离的。两个容器的进程可以通过lo 网卡设备通信。
三,安装docker-compose并利用它组装一个多容器的服务:如nginx、mysql、php
访问nginx

通过nginx访问php

通过php访问mysql

docker-compose.yml文件如下:
version: "3" services: nginx: image: nginx:latest container_name: nginx ports: - "8080:80" volumes: - ./www/:/usr/share/nginx/html/ - ./nginx/default.conf:/etc/nginx/conf.d/default.conf environment: TZ: "Asia/Shanghai" restart: always networks: - default links: - php - mysql php: image: crunchgeek/php-fpm:7.0-r7 container_name: php ports: - "9000:9000" volumes: - ./www/:/var/www/html/ restart: always cap_add: - SYS_PTRACE networks: - default links: - mysql mysql: image: mysql:5.7 container_name: mysql command: --default-authentication-plugin=mysql_native_password ports: - "3306:3306" volumes: - ./mysql/data:/var/lib/mysql/ restart: always networks: - default environment: MYSQL_ROOT_PASSWORD: "asd123456" MYSQL_DATABASE: magtest MYSQL_USER: magtest MYSQL_PASSWORD: "asd123456" TZ: "Asia/Shanghai" networks: default:
通过php访问mysql文件如下:
1 <?php 2 // 创建连接 3 $conn = new mysqli('mysql','root','asd123456'); 4 // 测试连接 5 if($conn->connect_error){ 6 die("连接失败,错误:" . $conn->connect_error); 7 } 8 echo "connect success";

浙公网安备 33010602011771号