docker的学习

目录

虚拟机和CentOS安装

一.卸载虚拟机

二.安装linux

vmtools、xshell、docker安装操作目录

一.终端操作

二.如何设置中文输入法

三.网络不通的解决方法

docker概述及docker安装

一.docker安装

二.启动docker

安装后配置以及docker概述

一.阿里云镜像

二.docker运行过程的精髓

docker的基本常用命令(1)

一.常用命令

二.创建nginx

docker的基本常用命令(2)

一.创建container并进入网页查看

二.写实拷贝

nginx/tomcat搭建       

一.Nginx

二.Tomcat

es+kibana+卷的初步认识

一.创建elasticsearh和kibana

二.卷的初步认识

卷挂载+联合文件系统

一.卷挂载

二.联合文件系统

docker网络

一.认识一下ip

二.学习docker网络

dockerfile基本命令

一.学习LABEL,USER,ENV,WORKDIR

二.学习ENV,VOLUME,学习CMD(两种命令格式)

三.深入学习CMD和ENTRYPOINT命名

dockerfile实战

一.tomcat实战

二.nginx实战

三.实战环境变量,mysql(提升篇)

CI/CD

一.网段设置

二.环境配置(233与237同时配置)

三.在237部署代码仓库gitlab

docker compose

一、安装docker compose

二.docker-compose的常用命令

三.docker-compose实战

docker集群

一.升级kernel内核

二.创建集群

 三.运行服务

四.节点管理

五.服务端口的开发

六.docker 堆

磁盘扩容



虚拟机和CentOS安装

一.卸载虚拟机

1.找到安装目录 删除

虚拟机的本质是一个文件,我们可以通过查看路径,直接删除虚拟机

二.安装linux

Vmware Workstation下载地址:下载 VMware Workstation Pro | CN

                   :

centos7镜像下载:centos-7-isos-x86_64安装包下载_开源镜像站-阿里云 (aliyun.com)

安装有图形化的界面更加容易上手

vmtools、xshell、docker安装操作目录

进入桌面之后,鼠标右键点击终端

一.终端操作

1.工作目录

print work director 缩写pwd

2.放大 ctrl+shift+ + 缩小 ctrl+ -

3.切换root用户 su root

4.回退目录 cd ..

5.什么是根目录、工作目录 绝对路径和相对路径的区别

根目录:就是"/"。

工作目录就是为用户指定的一个默认目录,用户一登录就是该目录。

绝对路径是文件在硬盘上真正存在的路径。比如c:/website/img/photo.jpg我们就知道photo.jpg文件是在c盘的website目录下的img子目录中。

相对路径是指以当前文件资源所在的目录为参照基础,链接到目标文件资源(或文件夹)的路径。

二.如何设置中文输入法

三.网络不通的解决方法

1.打开任务管理器

2.关闭防火墙

systemctl stop firewaild. service

3.设置虚拟机

4.改为桥接模式

docker概述及docker安装

一.docker安装

docker支持的centos内核版本是3.10及以上

查询命令uname - r

1.关闭防火墙

systemctl disable firewalld

systemctl stop firewalld

2.关闭selinux

vim /etc/selinux/config

按键盘上的I 进入插入状态才可以修改命令 按ESC退出插入状态之后,输入:wq 保存并退出

重启命令 reboot

3.安装源依赖

yum install yum-utils

登陆官网docker.com 拉到最下面

4.指明docke安装源地址,使用国内镜像,或者下载速度太慢

yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

查看 ll /etc/yum.repos.d在该目录下新建了一个repo文件

5.开始安装

sudo yum install docker-ce docker-ce-cli containerd.io

6.安装后配置

6.1开机自启动

systemctl enable docker

6.2增加用户

usermod -aG docker lvl(用户名自己取名)

二.启动docker

systemctl start docker

查看docker信息

docker info

运行一个hello world镜像

docker run hello-world

安装后配置以及docker概述

一.阿里云镜像

以上代码实现了4个功能

1.sudo mkdir -p /etc/docker #创建文件夹 docker

2.sudo tee /etc/docker/daemon.json <<-'EOF' #创建一个daemon.json文件 { "registry-mirrors": ["https://1vm3ksvj.mirror.aliyuncs.com"] } EOF #写入EOF之间的内容

3.sudo systemctl daemon-reload #重新加载

4.sudo systemctl restart docker #重新启动docker

二.docker运行过程的精髓

关键字搜索docker

ls /etc | grep docker

查看镜像

docker images

删除镜像 hello-world

docker rmi hello-world

运行镜像

docker run hello-world

docker能干什么

1.docker打包发布

2.降低硬件成本

3.可以进行持续集成、持续构建、持续部署

docker的结构

容器与虚拟机

镜像与容器

docker的基本常用命令(1)

一.常用命令

运行docker镜像

docker run 镜像名

查看docker镜像

docker images

进入伪终端

docker run -i -t alpine sh

列出容器

docker ps

四个部分组成 docker run 参数 镜像名 以什么命令启动

docker run alpine ls

打印

docker run alpine echo 打印的内容

显示所有的容器,包括未运行的

docker ps -a

从镜像仓库中拉取或者更新指定镜像

docker pull

docker帮助文档、官网、百度

docke --help

删除容器

docker rm NAMES或者CONTAINER ID

只显示正在运行的容器的CONTAINER ID

docker ps -q

显示容器的CONTAINER ID 包括未运行的

docker ps -qa

删除所有的容器包括正在运行的 -f强制删除

docker rm -f $(docker ps -qa)

                                                             网络未连接错误

没有此版本镜像错误

寻找评分大于100的镜像

镜像仓库

https://hub.docker.com/

思考:tag标签是不是最新的镜像版本?  不是

二.创建nginx

容器后台运行 -d   可以和-t -i合起来写 -tid

后台运行 并分配端口打开虚拟机中的网页 输入localhost加自己配置的IP地址

 后台运行 分配指定的端口 

 输入localhost加端口号

给端口命名

退出当前的容器

ctrl d

输入exit

ctrl c

退出当前的容器 但是后台还在运行

ctrl p+q

思考:两种接入容器的区别

docker attach 容器名 ID

已经提供的容器终端

docker exec -ti 容器名 ID

新创建一个伪终端

docker的基本常用命令(2)

查看日志

docker logs 容器名

logs的三个参数

-t --timestamps 显示时间戳

-n --tail string 从日志末尾显示的行数,默认为all

-f --follow 跟踪日志输出

docker stats 运行状态

docker inspect 显示详细信息

docker run --rm 删除容器,并还会删掉挂载点的数据

docker cp 在容器和主机之间复制文件/文件夹

/test 目标目录

/root/test 宿主目录

docker rmi删除镜像

docker image prune 删除未使用的镜像

docker rmi $(docker images -q) 删除所有镜像

docker rmi $(docker images -q) -f 强制删除所有镜像

一.创建container并进入网页查看

1.创建了containers并分配了一个8080端口号

2.查看ip地址

ip addr |grep ens33

输入ip地址加:8088

http://192.168.139.124:8088/

二.写实拷贝

思考:什么是写时拷贝?

在数据第一次写入到某个存储位置时,首先将原有内容拷贝出来,写到另一位置处,然后再将数据写入到存储设备中,该技术只拷贝在拷贝初始化开始之后修改过的数据。

1.写时拷贝的好处

2.写实拷贝的过程

nginx/tomcat搭建       

/usr/share/nginx/html 主页目录

思考:我要修改主页,我必须进到容器中,有没有便捷的方法?

一.Nginx

docker cp /home/lvl/index.html some-nginx:/usr/share/nginx/html

给容器命令并分配端口

docker run --name some-nginx -d -p 8080:80 nginx

启动nginx

在Windows网页中进入

修改网页内容

网络的流通方式

二.Tomcat

启动命令 docker run -it --rm -p 8888:8080 tomcat

tomcat的主页目录 /usr/local/tomcat/webapps

拷贝webapps.dist的所有文件到webapps下面

cp -r /usr/local/tomcat/webapps.dist/* /usr/local/tomcat/webapps/

思考:每次修改主页,都必须进入容器,有没有便捷的方式。

打包生成tomcat镜像

docker commit tomcat的容器名或者ID diytomcat(自己取名字)

启动自己创建的tomcat

docker run -d -p 8888:8080 diytomcat

初识Dockerfile

1.指定一个文件夹,所有的原始材料都在此文件夹中

2.编写Dockerfile文件(脚本)

[lvl@localhost ~]$ mkdir diytomcat #创建diytomcat文件
[lvl@localhost ~]$ cd diytomcat #切换路径
[lvl@localhost diytomcat]$ ls
[lvl@localhost diytomcat]$
[lvl@localhost diytomcat]$ touch Dockerfile #创建Dockerfile
[lvl@localhost diytomcat]$ ls
Dockerfile
[lvl@localhost diytomcat]$ vim Dockerfile #进入文件
[lvl@localhost diytomcat]$ cat Dockerfile #查看文件
FROM tomcat
RUN cp -r /usr/local/tomcat/webapps.dist/* /usr/local/tomcat/webapps/


[lvl@localhost diytomcat]$ docker build -t tomcat:lvl .
 

启动Dockerfile中的tomcat

docker run -d -p 8888:8080 tomcat:lvl

生成nginx的镜像

vim Dockerfile 并加入如下命令

FROM  nginx
COPY index.html /usr/share/nginx/html/
[lvl@localhost diynginx]$ docker build -t nginx:lvl .

先停止tomcat:lvl(自己取的名字)

docker stop 58c(tomcat:lvl的ID)

启动nginx:lvl

docker run -d -p 8888:80 nginx:lvl

es+kibana+卷的初步认识

一.创建elasticsearh和kibana

es:暴露的端口特别多,如果不加以限制,特别耗费内存

docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch #创建运行es
docker stats #查看后台

后台查看之后会发现很占用资源,所以要限制内存占用范围

-e环境变量

docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms64m -Xmx512m"  elasticsearch #创建运行es并限制内存占用范围为64m到512m

docker run -d --name kibana -p 5601:5601 kibana #创建运行kibana

访问测试 192.168.139.124:5601

思考:kibana怎么成功连接到es上?

二.卷的初步认识

一、docker run -v .:/alpine01 -ti --name alpine01 alpine ash

.当前文件夹

访问测试

1.在容器里面创建文件,宿主机外面可以同步

2.在宿主机创建文件,容器里面可以同步

二、卷的只读方式

docker run -v .:/alpine02:ro -ti --name alpine02 alpine ash

结论:以只读方式挂载卷,容器内不能写和创建,宿主机可以创建和修改,并且同步到容器内部

三、体验一下里面的文件同步外面

docker run -v .:/etc -ti --name alpine03 alpine ash

结论:外面空文件夹出现了容器已有的文件

卷挂载+联合文件系统

一.卷挂载

1.绑定挂载的巨坑

docker run alpine ls /etc 
docker run -v .:/etc alpine ls /etc #绑定挂载

结论:绑定挂载宿主机路径,会无条件覆盖容器路径,所以使用绑定挂载时需要特别小心。我们一般在使用绑定挂载的时候,容器内的文件夹是新建的文件夹(空文件夹),或者使用卷挂载方式。

2.绑定挂载除了挂载文件夹,还可以挂载指定的单一文件

docker run -v .:/sbin apline ls/sbin

挂载的方式:3种,绑定挂载,卷挂载,内存挂载

卷挂载 -v

卷挂载docker run -v alpinetest /etc alpine

基本命令

卷的查询 docker volume ls

卷的删除docker volume rm; docker volume rm $(docker volume ls -q)

卷的侦测docker volume inspect alpinetest(名字)

卷的创建docker volume create rrrr(卷名)

docker run -v rrrr:/etc alpine 将卷和文件夹映射起来

结论:绑定挂载和卷挂载的区别:本质是一样的,宿主机的文件夹到容器内部文件夹的映射,卷挂载不能指定文件夹(不能指定路径)

匿名卷docker run -v /etc alpine

/var/lib/docker 是docker的主目录

卷挂载 -mount

绑定挂载:docker run --mount type=bind,source=/root,dst=/alpine01 --name trt01 alpine

卷挂载:docker run --mount source=sasa,dst=/alpine01 --name trt02 alpine

匿名卷挂载:docker run --mount dst=/alpine01 --name trt03 alpine

卷容器

1.创建一个卷容器

docker create -v qwqw:/vcdata --name vcdata busybox

2.运行的容器和这个卷容器链接起来

docker run -ti --volumes-from vcdata --name al01 alpine sh

二.联合文件系统

联合文件系统的存放目录是/var/lib/docker/overlay2

容器运行起来会在镜像基础上增加2层,init层和最上层,最上层会生成一个merge文件夹,把所有层的文件联合起来

docker网络

一.认识一下ip

ip address

认识环回地址127.0.0.1

认识ens33 192.168.139.124

思考:认识docker0,就是一个虚拟的网关路由器,docker0和他下属的容器之间可以互ping,它下属的容器ip由docker0分配;下属的容器之间也可以互ping(通过ip地址1)。docker0与容器之间通过veth-pair技术实现互通

二.学习docker网络

基本命令

查询网络 docker network ls

删除网络 docker network rm mynet(网络名)

创建网络 docker network create -d bridge --subnet 192.168.0.0/16 --gateway 192.168.0.1 mynet

侦探网络 docker network inspect mynet

自定义桥接网络弥补了docker0不支持DNS域名解析的不足,在自定义下属的容器之间可以通过容器名称互ping

不同的网络之间是不能通信的,这是网络之间的隔离

让容器连接到一个已有的网络,具备双ip特性。docker network connect mynet alpine08

dockerfile基本命令

dockerfile基本命令

FROM 来自哪个父镜像
LABEL 标签(对运行无实质影响)
USER 指定用户
VOLUME 卷加载
WORKDIR 工作路径
ENV 环境变量
EXPOSE 暴露端口
ADD 拷贝文件到镜像中
COPY 拷贝文件到镜像中
RUN 运行一条命令
CMD 以什么命令启动容器
ENTRYPOINT 以什么命令启动容器

一.学习LABEL,USER,ENV,WORKDIR

vim Dockerfile

FROM centos
LABEL maintainer="lvl<2435053297@qq.com>"
RUN useradd lvhonglong
USER lvhonglong
ENV MY_HOME /lvl
WORKDIR $MY_HOME

docker build -t centos:lvl .

二.学习ENV,VOLUME,学习CMD(两种命令格式)

vim Dockerfile

docker run -ti centos:f02 bash
FROM centos
RUN mkdir /yan 
RUN echo "hello world" > /yan/greeting
VOLUME /yan

docker build -t centos:f02 .

docker run -ti centos:f02 bash

修改内容

FROM alpine
RUN mkdir /lv
RUN echo "hello world" > /lv/greeting
VOLUME /lv
ENV name=lvl
#CMD echo This is $name 1st
#CMD ["/bin/sh","-c","echo This is $name 2nd"]
CMD ["/bin/echo","This is $name 3rd"]

RUN和CMD的区别

一个Dockerfile中可以有许多个RUN命令

一个Dockerfile仅仅最后一个CMD起作用

三.深入学习CMD和ENTRYPOINT命名

多条CMD命令,最后一条起作用

多条ENTRY命令,最后一条起作用

思考:CMD和ENTRYPOINT的区别

docker run的命令,会无条件替换CMD(CMD的2种格式,是完全等效的;ENTRYPOINT的2种格式,有区别)

docker run的命令,对命令行的格式的ENTRYPOINT完全无效(命令行格式的ENTRYPOINT,霸道)

docker run的命令,会成为键值对ENTRYPOINT命令的扩展参数

FROM centos
CMD ["ls","-l"]
CMD ls -a
ENTRYPOINT ["ls","-a"]
ENTRYPOINT ls -a

键值对格式的ENTRYPOINT,CMD会作为它的扩展参数

命令行格式的ENTRYPOINT无条件替换CMD(霸道)

键值对,但凡看到bin/sh,-c这样的写法,实际上是命令行格式

dockerfile实战

一.tomcat实战

1.创建文件夹,所有的材料放里面

readme,tomcat9.0.73(apache公司),jdk_8u202(cracle)

拖动文件有问题的话 有三种解决方式

解决向虚拟机中拖拽文件,文件不全的问题【Vmware】|【CentOS】[“gzip: stdin: unexpected en​​​​​​d of file“]-CSDN博客

2.编写dockerfile 

FROM centos:7.9.2009
LABEL maintainer="lvl<2435053297@qq>"

COPY readme /usr/local/
ADD apache-tomcat-9.0.73.tar.gz /usr/local/
ADD jdk-8u202-linux-x64.tar.gz /usr/local/


ENV MYPATH /usr/local
WORKDIR $MYPATH

ENV JAVA_HOME /usr/local/jdk1.8.0_202
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV CATALINA_HOME /usr/local/apache-tomcat-9.0.73
ENV CATALINA_BASE /usr/local/apache-tomcat-9.0.73

ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin

EXPOSE 8080
CMD /usr/local/apache-tomcat-9.0.73/bin/startup.sh && tail -F /usr/local/apache-tomcat-9.0.73/logs/catalina.out 

思考:ADD和COPY的区别,ADD拷贝完成后,进行自解压;ADD的源可以是网络地址

3.进入tomcat 

docker build -t diytomcat .

docker run -d -p 8888:8080 diytomcat

访问测试 

http://localhost:8888/

主页访问成功

在主页页面增加test,再次访问,404

进入容器,进入/usr/local文件夹,使用ls查看,会看到材料的解压文件

docker run -d -p 8888:8080 -v /root/test:/usr/local/0apache-tomcat-9.0.73/webapps/test diytomcat

cd /root/test

mkdir WEB-INFO && cd WEB-INFO

vim web.xml

cd ..回到test目录

vim index.jsp

访问测试,在主页后面增加test,再次访问,成功

二.nginx实战

1.创建一个文件夹,放入所有材料

nginx.repo,dockerfile

2.编写nginx.repo

vim nginx.repo

[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=0
enabled=1

3.编写dockerfile

FROM centos:7.9.2009
LABLE maintainer='lvl<2435053297@qq.com>'
COPY nginx.repo /etc/yum.repos.d/
RUN yum makecache
RUN yum install -y nginx
RUN echo 'This is lvl server' > /usr/share/nginx/html/index.html
EXPOSE 80
#nginx不以守护进程方式启动
CMD ['nginx','-g','daemon off;']

三.实战环境变量,mysql(提升篇)

创建文件夹diymql

vim dockerfile

FROM mysql:5.7
ENV MYSQL_ROOT_PASSWORD=123456

在Windows里面运行navicat,创建新的连接

navicat官网 Navicat | 产品


 

docker run -d -p 3306:3306 -e MYSQLROOTPASSWORD=456789 diymysql

mysql -u root -h 192.168.139.124 -p

结论:当dockerfile定义的环境变量与docker run定义的有冲突时,以docker run的定义为准

CI/CD

什么是CI/CD

一.网段设置

1.VMware设置为管理员运行,快捷方式上,右键》属性》兼容性》以管理员身份运行此程序

 

2.启动VMware,设置网段,依次点击编辑,虚拟网路编辑器,再点击NAT模式,设置网段为192.168.6.0 

3.安装一个虚拟机,192.168.6.233,最小安装,安装docker 

4.修改老宿主机CENTOS的静态IP地址为192.168.x.233

二.环境配置(233与237同时配置)

1.设置容器内转发,容器可以访问外部网络

cat >> /etc/sysctl.conf <<-'EOF'
net.ipv4.ip.forward=1
vm.max_map_count=655360
EOF

2.设置IPV4转发,否则外网不能访问容器

sysctl net.ipv4.conf.all.forwarding

sysctl -w net.ipv4.conf.all.forwarding=1

3.关闭防火墙和SELINUX,SELINUX设置后需要重启生效

systemctl disable firewalld && systemctl stop firewalld

vim /etc/selinux/config

SELINUX修改为disabled

三.在237部署代码仓库gitlab

1.设置自定义网络

docker network create -d macvlan --subnet=192.168.6.0/24 --ip-range=192.168.6.0/24 --gateway=192.168.6.2 -o parent=ens33 mymacvlan

2.部署gitlab

#创建三个文件夹,用于挂载,log是日志,opt是数据
rm -rf /etc/gitlab
rm -rf /var/log/gitlab
rm -rf /var/opt/gitlab
mkdir -p /etc/gitlab
mkdir -p /var/log/gitlab
mkdir -p /var/opt/gitlab
chmod -R 755 /etc/gitlab
chmod -R 755 /var/log/gitlab
chmod -R 755 /var/opt/gitlab

docker run --name gitlab \ --hostname gitlab.example.com \ --restart=always \ --network mymacvlan \ --ip=192.168.6.200 \ -v /etc/gitlab:/etc/gitlab \ -v /var/log/gitlab:/var/log/gitlab \ -v /var/opt/gitlab:/var/opt/gitlab \ -d lvl/gitlab  (-d lvl/gitlab自己取名字中间)

docker ps

查看镜像

访问地址192.168.6.200

1)获取初始化密码,用户为root,初始化密码获取命令

docker exec -ti gitlab grep 'Password:' /etc/gitlab/initialrootpassword

2)登录以后,在右上角(用户图标)下拉,进入perference,root123456

自动化工厂的好处

1.自动拉取
2.自动编译、打包
3.自动推送
4.自动运行
5.自动上库(镜像仓库) 

docker compose

docker compose是容器运行的一站式部署,容器的编排,容器运行什么,什么时候运行,哪些容器先运行,哪些后运行,docker compose就是一个脚本文件。

一、安装docker compose

1.上github官网,下载docker compose的执行包,下载到/usr/local/bin

2.下载完毕,进行改名

mv docker-compose-linux-x86_64 docker-compose

3.增加可执行性质

chmod +x docker-compose

二.docker-compose的常用命令

 

三.docker-compose实战

1.创建一个文件夹,把所有材料放入

docker-compose.yml …..dockerfile,app.py,requirements.txt

2.编写docker-compose.yml文件

mkdir compose-start && cd compose-start

vim docker-compose.yml

version: "3.0"
services:
  web:
    build: .
    ports:
      _ "5000:5000"
  redis:
    images: "redis:alpine"

第一句是version,第二句service

描写上个字段需要缩进对齐

缩进必须使用空格,不能使用tab

冒号后面如果有内容,必须要有一个空格

vim dockerfile

docker-compose up -d

docker-compose down

docker集群

一.升级kernel内核

查询现有版本 4.1.0以上的版本才支持集群

uname -r

 #elrepo官网http://elrepo.org/tiki/HomePage
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org #获取elrepo安装凭证
rpm -Uvh https://www.elrepo.org/elrepo-release-7.el7.elrepo.noarch.rpm#安装凭证
yum install https://www.elrepo.org/elrepo-release-7.el7.elrepo.noarch.rpm #安装内核
yum --enablerepo=elrepo-kernel install kernel-ml-devel kernel-ml -y 

grub2-editenv list#查询默认启动项
grub2-set-default 'CentOS Linux (6.3.5-1.el7.elrepo.x86_64) 7 (Core)' #设置默认启动项
cat /boot/grub2/grub.cfg | grep menuentry
#重启init-6
yum remove kernel#删除内核(可以不管)

新命令

docker swarm

docker service

docker node

docker run 启动一个容器,是在单机启动

docker-compose是启动一批容器(服务),在单机启动

docker swarm是启动一个服务,该服务是集群中负载负担

docker stack是启动一批服务,集群中负载负担

二.创建集群

docker swarm init

swarm集中,有两个角色,一个是manager,数量大于等于1,另一个是worker,数量大于等于0,manager作用分发任务到健康的节点中,,worker就是单纯的执行任务。

 三.运行服务

docker service create --replicas 4 --name test alpine ping baidu.com

集群中服务所需要的任务,在管理节点的管理下,负载负担,各节点互为备份,如果节点宕机,该节点上的任务会被分配到其他健康节点

服务分为复制服务和全局服务两种,复制服务要指定任务数,全局服务不需要指定任务数,全局服务会自动根据节点数动态调整任务数。

四.节点管理

1.加入节点 管理节点上执行以下命令,获取加入信息

docker swarm join-token worker

docker swarm join-token manager

2.退出集群

(1)在退出节点上执行docker swarm leave

(2)在管理节点上执行docker node rm xxxx(主机名)

临时改名hostname xx

永久改名 hostnamectl set-hostname XXX

节点三种状态:active、pause、drain

五.服务端口的开发

docker service create --name myweb -p 8080:80 --replicas 2 httpd

在所有的节点ip地址都可以访问,如果只修改一个副本的主页,对外体现是随机结果

建立全局服务docker service create --name myweb -p published=8080,target=80,mode=host --mode global httpd

根据正常节点的数量来进行副本创建,从而达到负载分担

六.docker 堆

1.创建一个空文件夹,所有材料放入

docker-compose.yml

2.编写docker-compose.yml

docker stack deploy -c docker-compose.yml mystack

磁盘扩容

查看磁盘编号

[root@localhost /]#  ls /dev/sd*

创建pv

[root@localhost /]# pvcreate /dev/sdb

把pv加入vg中,相当于扩充vg的大小

[root@localhost dyx]# vgs *** 先使用vgs查看vg组

[root@localhost /]# vgs

扩展vg,使用vgextend命令

[root@localhost /]#  vgextend centos /dev/sda4

成功把vg卷扩展了,再用lvs查看一下

[root@localhost /]#  lvs

扩展lv,使用lvextend命令

[root@localhost /]#  lvextend -L +20G /dev/mapper/centos-root

命令使系统重新读取大小

[root@localhost /]# xfs_growfs /dev/mapper/centos-root

再使用df -h查看

[root@localhost /]# df -h
  • 20
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值