背景:
虚拟化产生解决物理机资源浪费问题,云计算出现实现虚拟化资源调度和管理,容器出现继续压榨虚拟化技术产生的资源浪费,用命名空间隔离(namespace)
灰度升级(升级中不影响业务)
docker核心组件
docker客户端 -docker
docker服务端 -dockerDaemon
docker镜像 - image
docker容器 - docker Container
docker镜像仓库 - registry - 华为容器镜像仓库SWR
docker镜像仓库 - registry - 华为容器镜像服务SWR
服务列表-容器-容器镜像服务SWR
'镜像加速器'下载容器镜像e
实验一:安装配置docker
ECS可上外网,4G+100G (free -m查看内存);ubuntu更好兼容容器(生产环境可能使用)
使用华为公有云发布的ECS
[root@ecs-eeba ~]# yum install -y yum-utils 安装必要的一些系统工具
[root@ecs-eeba ~]# yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 添加软件源信息
----------
yum仓库多了一个源
-------
[root@ecs-eeba yum.repos.d]# yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin 安装Docker
[root@ecs-eeba yum.repos.d]# service docker start 开启Docker
[root@ecs-eeba yum.repos.d]# docker version 查看docker版本
-----------------
配置docker加速器
[root@ecs-eeba yum.repos.d]# vim /etc/docker/daemon.json 让配置文件读到docker加速器(使用的是华为公有云)
[root@ecs-eeba yum.repos.d]# systemctl restart docker 重启一下容器引擎
[root@ecs-eeba yum.repos.d]# docker info 查看加速配置生效了吗?
容器管理
实验二:下载nginx镜像
也可以指定版本 docker pull mysql:5.6
[root@ecs-eeba yum.repos.d]# docker pull nginx 下载nginx镜像
Using default tag: latest
[root@ecs-eeba yum.repos.d]# docker images 查看镜像信息
[root@ecs-eeba ~]# docker run -d -p 80:80 nginx 创建容器
[root@ecs-eeba ~]# docker ps -a 查询容器
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
40493d179af2 nginx "/docker-entrypoint...." 5 minutes ago Created web01
[root@ecs-eeba ~]# docker start 404(接ID号可简写只要唯一)
[root@ecs-eeba ~]# docker ps -a 已运行
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
40493d179af2 nginx "/docker-entrypoint...." 7 minutes ago Up 18 seconds 80/tcp web01
[root@ecs-eeba ~]# systemctl disable firewalld.service --now 关闭防火墙
-----------------
[root@ecs-eeba ~]# docker rm -f 404 删除容器
不能关防火墙
访问容器
再试一个验证(容器的端口是你指定的)
指定不同端口访问不同容器
进入容器
查看容器资源=宿主机资源
root@964c41469ff8:/# df -h
root@964c41469ff8:/# lscpu
root@964c41469ff8:/# cat /proc/meminfo
root@964c41469ff8:/# cat /proc/cpuinfo
该配置文件不建议在容器里改因为没有vim编辑器
拷贝到宿主机上修改,再拷贝回去
容器端口80现在自定义
自定义网页内容
扩展nginx根目录在哪里?
自定义nginx配置文件
拷贝到宿主机上修改,再拷贝回去
给容器安装软件
部署数据库mysql
[root@ecs-757e ~]# docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=redhat mysql:5.6
[root@ecs-757e ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
0bead2cb3fd6 mysql:5.6 "docker-entrypoint.s..." About a minute ago Up About a minute 0.0.0.0:3306->3306/tcp, :::3306->3306/tcp interesting_swartz
[root@ecs-757e ~]#
----------------
进入mysql
[root@ecs-757e ~]# docker exec -it 0be /bin/bash
root@0bead2cb3fd6:/# mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.6.51 MySQL Community Server (GPL)
Copyright (c) 2000, 2021, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
--------------
安装一下mysql客户端
[root@ecs-757e ~]# yum install mariadb
Loaded plugins: fastestmirror
Complete!
[root@ecs-757e ~]# mysql -u root -p -h 192.168.2.106 -P 3306
Enter password: