docker隔离级别中包含两个核心组成:
Namespace(名称空间):namespace是Linux系统的底层概念,在内核层实现,即有一些不同类型的命名空间被部署在内核,各 个docker容器运行在同一个docker主进程并且共用同一个宿主机系统内核,各docker容器运行在宿主机 的用户空间,每个容器都要有类似于虚拟机一样的相互隔离的运行空间,但是容器技术是在一个进程内 实现运行指定服务的运行环境,并且还可以保护宿主机内核不受其他进程的干扰和影响,如文件系统空 间、网络空间、进程空间等,目前主要通过以下技术实现容器运行空间的相互隔离:
Control groups: Cgroups 最主要的作用,就是限制一个进程组能够使用的资源上限,包括CPU、内存、磁盘、网络带宽 等等。此外,还能够对进程进行优先级设置,资源的计量以及资源的控制(比如:将进程挂起和恢复等操 作)。
#查看版本号:docker version
#查看版本详细信息:docker info
#centos包安装docker
yum -y install docker
rpm -ql docker
systemctl enable --now docker
#centos安装指定版本的docker
[root@rocky8 ~]#cat /etc/yum.repos.d/docker.repo
[docker-ce]
name=docker-ce
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/8/x86_64/stable/
gpgcheck=0
#查看docker的所有版本信息
[root@rocky8 ~]#yum list docker-ce --showduplicates
#安装指定版本的docker
[root@rocky8 ~]#yum install docker-ce-3:20.10.10-3.el8 docker-ce-cli-1:20.10.10-3.el8
#检查安装结果
docker --version
#ubuntu 包安装docker
apt -y install docker.io
#ubuntu 安装指定版本的docker
# step 1: 安装必要的一些系统工具
sudo apt-get update
sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common
# step 2: 安装GPG证书
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
# Step 3: 写入软件源信息
sudo add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/dockerce/linux/ubuntu $(lsb_release -cs) stable"
# Step 4: 更新并安装Docker-CE
sudo apt-get -y update
sudo apt-get -y install docker-ce
....
.....这几行均为上述几条命令列出的版本
.....
# Step 5: 安装指定版本的Docker-CE: (VERSION例如上面的5:17.03.1~ce-0~ubuntu-xenial)
sudo apt-get -y install docker-ce=[VERSION] docker-ce-cli=[VERSION]
#示例:指定版本安装
apt-get -y install docker-ce=5:18.09.9~3-0~ubuntu-bionic docker-ce-cli=5:18.09.9~3-0~ubuntu-bionic
dpkg -L docker-ce
dpkg -L docker-ce-cli
docker pull [镜像名称]:[版本号,不写的话默认安装最新版本(latest)]
或者用
docker run [镜像名称]:[版本号,不写的话默认安装最新版本(latest)]
复杂点的:
docker run -d -p 3306:3306 --name mysql mysql
-d:后台运行
-p:指定端口号
--name: 后端运行的服务名,可根据自己的喜好编写
mysql: 镜像名称,此处没有写镜像的版本号,默认安装最新版本。
还有更为全面的命令:
docker run -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -e MYSQL_DATABASE=wordpress -e MYSQL_USER=wordpress -e MYSQL_PASSWORD=123456 --name mysql -d mysql:8.0.29-oracle
docker version
docker info
#查看镜像分层历史
docker image history 【镜像】
#查看镜像的详细情况
docker inspect 【镜像】
#查看已经拉取的镜像
docker images #附加选项:-qa
#查看已经运行的容器
docker ps
#查看所有容器
docker ps -a
#命令行查看服务的各种版本镜像信息
docker search 【镜像】
docker search nginx
#镜像打包
#语法:docker save 【镜像】 -o 【镜像】.tar
#案例:docker save nginx -o nginx.tar
for i in `docker images |awk 'NR>=2{print $1":"$2}'`;do docker save $i -o $i.tar;done
docker save `docker images |awk 'NR>=2{print $1":"$2}'` -o alll.tar
docker image save `docker image ls --format "{{.Repository}}:{{.Tag}}"` -o all.tar
#镜像打包压缩
gzip [镜像].tar
#镜像包传输
scp [镜像].tar 10.0.0.101:
#镜像加载
docker load -i 【镜像】.tar
镜像存放宿主机的目录:/usr/lib/docker/overlay2/
#镜像加速配置
#centos 镜像加速配置
针对Docker客户端版本大于 1.10.0 的用户
您可以通过修改daemon配置文件/etc/docker/daemon.json来使用加速器
mkdir -p /etc/docker
tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://wfydvkax.mirror.aliyuncs.com"]
}
EOF
systemctl daemon-reload
systemctl restart docker
#ubuntu 镜像加速配置
针对Docker客户端版本大于 1.10.0 的用户
您可以通过修改daemon配置文件/etc/docker/daemon.json来使用加速器
mkdir -p /etc/docker
tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://wfydvkax.mirror.aliyuncs.com"]
}
EOF
systemctl daemon-reload
systemctl restart docker
docker image rm -f 【镜像】= docker rmi -f 【镜像】
#例子:
docker rmi -f nginx=docker image rm -f nginx
-f: 删除不在运行的镜像可不加-f ,强行删除正在运行的镜像需要加-f
#删除docker
[root@ubuntu ~]#apt purge docker-ce
[root@ubuntu ~]#rm -rf /var/lib/docker
[root@centos7 ~]#yum remove docker-ce
#删除docker资源存放的相关文件
[root@centos7 ~]#rm -rf /var/lib/docker
#默认容器不会自动启动
[root@ubuntu1804 ~]#docker run -d --name nginx -p 80:80 nginx
#设置容器总是运行
[root@ubuntu1804 ~]#docker run -d --name nginx --restart=always -p 80:80 nginx
docker rm [OPTIONS] CONTAINER [CONTAINER...]
docker container rm [OPTIONS] CONTAINER [CONTAINER...]
#删除单个容器
docker ps(查看正在运行的容器)
docker ps -qa (查看所有容器)
docker rm -f [容器:可以是容器名称也可以是容器ID]
#删除所有容器
[root@ubuntu1804 ~]#docker ps -qa | xargs docker rm -f
#或者 docker rm -f `docker ps -qa`
#停止容器
docker stop 【容器名】
docker stop nginx
#启动容器
docker start 【容器名】
docker start nginx
#重启容器
docker restart nginx
#批量启动和停止容器
docker start $(docker ps -a -q)
docker stop $(docker ps -a -q)
#启动并进入容器
docker run --name=c1 -it ubuntu bash
#强制关闭所有运行中的容器
[root@ubuntu1804 ~]#docker kill `docker ps -a -q`
#容器的暂停和恢复
[root@ubuntu1804 ~]#docker pause blissful_payne
blissful_payne
[root@ubuntu1804 ~]#docker unpause blissful_payne
blissful_payne
#执行一次性命令
[root@ubuntu1804 ~]#docker exec 2478 cat /etc/redhat-release
CentOS Linux release 8.1.1911 (Core)
#进入容器,执行命令,exit退出但容器不停止
[root@ubuntu1804 ~]#docker exec -it 2478 bash
[root@24788f69cec6 /]# cat /etc/redhat-release
CentOS Linux release 8.1.1911 (Core)
[root@24788f69cec6 /]# exit
exit
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kAsAbb9c-1661178951974)(E:\运维笔记\企业级容器技术 Docker\企业级容器技术 Docker.assets\1656766416046.png)]
#实现端口映射
[root@ubuntu1804 ~]#docker run -d -P --name nginx1 nginx
286a3dedf159fbf0a4b895741a9d95562c87b44782ea85c8d172474da8860c36
#注:-P 映射到宿主机的端口是随机端口
[root@ubuntu1804 ~]#docker exec -it nginx1 hostname -i
172.17.0.2
[root@ubuntu1804 ~]#docker port nginx1
80/tcp -> 0.0.0.0:32769
#方式1: 容器80端口映射宿主机本地随机端口
docker run -p 80 --name nginx-test-port1 nginx
#方式2: 容器80端口映射到宿主机本地端口81
docker run -p 81:80 --name nginx-test-port2 nginx
#方式3: 宿主机本地IP:宿主机本地端口:容器端口
docker run -p 10.0.0.100:82:80 --name nginx-test-port3 docker.io/nginx
#方式4: 宿主机本地IP:宿主机本地随机端口:容器端口,默认从32768开始
docker run -p 10.0.0.100::80 --name nginx-test-port4 docker.io/nginx
#方式5: 宿主机本机ip:宿主机本地端口:容器端口/协议,默认为tcp协议
docker run -p 10.0.0.100:83:80/udp --name nginx-test-port5 docker.io/nginx
#方式6: 一次性映射多个端口+协议
docker run -p 8080:80/tcp -p 8443:443/tcp -p 53:53/udp --name nginx-test-port6
nginx
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7GxsKx4b-1661178951978)(E:\运维笔记\企业级容器技术 Docker\企业级容器技术 Docker.assets\1657015883130.png)]
#Ubuntu配置过程:
mkdir/data/dockerfile/{web/{nginx,apache,tomcat,jdk},system/{rocky,centos,ubuntu,alpine,ian}} -p
root@ubuntu2004:~# tree /data/dockerfile
/data/dockerfile
├── system
│ ├── alpine
│ ├── centos
│ ├── debian
│ ├── rocky
│ │ ├── Dockerfile
│ │ ├── rocky-8.5
│ │ │ ├── Dockerfile
│ │ │ └── rocky-8.5-docker-x86_64.tar.xz
│ │ └── rocky-8.5-20220705
│ │ ├── base.repo
│ │ └── Dockerfile
│ └── ubuntu
│ └── Dockerfile
└── web
├── apache
├── jdk
├── nginx
│ ├── nginx01
│ │ ├── Dockerfile
│ │ ├── entrypoint.sh
│ │ └── index.html
│ └── nginx02
│ ├── build.sh
│ ├── Dockerfile
│ ├── index.html
│ ├── nginx-1.22.0.tar.gz
│ ├── nginx.conf
│ ├── test2.html
│ └── test.html
└── tomcat
15 directories, 16 files
在Ubuntu上面的操作
root@ubuntu2004:~# tree /data/dockerfile/system/rocky/
/data/dockerfile/system/rocky/
├── Dockerfile
├── rocky-8.5
│ ├── Dockerfile
│ └── rocky-8.5-docker-x86_64.tar.xz
└── rocky-8.5-20220705
├── base.repo
└── Dockerfile
2 directories, 5 files
root@ubuntu2004:/data/dockerfile/system/rocky/rocky-8.5-20220705# cat Dockerfile
FROM rockylinux:latest
LABEL author=mqb
LABEL version=v1.0
LABEL multi.description="test"multi.date="2022-07-05"multi.name="mqb"
RUN rm -f /etc/yum.repos.d/*
COPY base.repo /etc/yum.repos.d/
RUN yum clean all && \
rm -f /etc/localtime && \
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \
yum -y install bash-completion psmisc git tree net-tools vim lsof iproute && \
rm -rf /var/cache/dnf/* && \
groupadd -g 88 www && \
useradd -g www -u 88 -r -s /sbin/nologin -M -d /home/www www
CMD tail -f /etc/hosts
root@ubuntu2004:/data/dockerfile/system/rocky/rocky-8.5-20220705# cat base.repo
[BaseOS]
name=BaseOS
baseurl=https://mirrors.aliyun.com/centos/$releasever/BaseOS/$basearch/os/
https://mirrors.huaweicloud.com/centos/$releasever/BaseOS/$basearch/os/
https://mirrors.cloud.tencent.com/centos/$releasever/BaseOS/$basearch/os/
https://mirrors.tuna.tsinghua.edu.cn/centos/$releasever/BaseOS/$basearch/os/
http://mirrors.163.com//centos/$releasever/BaseOS/$basearch/os/
http://mirrors.sohu.com/centos/$releasever/BaseOS/$basearch/os/
gpgcheck=0
[AppStream]
name=AppStream
baseurl=https://mirrors.aliyun.com/centos/$releasever/AppStream/$basearch/os/
https://mirrors.huaweicloud.com/centos/$releasever/AppStream/$basearch/os/
https://mirrors.cloud.tencent.com/centos/$releasever/AppStream/$basearch/os/
https://mirrors.tuna.tsinghua.edu.cn/centos/$releasever/AppStream/$basearch/os/
http://mirrors.163.com/centos/$releasever/AppStream/$basearch/os/
http://mirrors.sohu.com/centos/$releasever/AppStream/$basearch/os/
gpgcheck=0
[EPEL]
name=EPEL
baseurl=https://mirrors.aliyun.com/epel/$releasever/Everything/$basearch/
https://mirrors.huaweicloud.com/epel/$releasever/Everything/$basearch/
https://mirrors.cloud.tencent.com/epel/$releasever/Everything/$basearch/
https://mirrors.tuna.tsinghua.edu.cn/epel/$releasever/Everything/$basearch/
gpgcheck=0
[extras]
name=extras
baseurl=https://mirrors.aliyun.com/centos/$releasever/extras/$basearch/os/
https://mirrors.huaweicloud.com/centos/$releasever/extras/$basearch/os/
https://mirrors.cloud.tencent.com/centos/$releasever/extras/$basearch/os/
https://mirrors.tuna.tsinghua.edu.cn/centos/$releasever/extras/$basearch/os/
http://mirrors.163.com/centos/$releasever/extras/$basearch/os/
http://mirrors.sohu.com/centos/$releasever/extras/$basearch/os/
gpgcheck=0
[centosplus]
name=centosplus
baseurl=https://mirrors.aliyun.com/centos/$releasever/centosplus/$basearch/os/
https://mirrors.huaweicloud.com/centos/$releasever/centosplus/$basearch/os/
https://mirrors.cloud.tencent.com/centos/$releasever/centosplus/$basearch/os/
https://mirrors.tuna.tsinghua.edu.cn/centos/$releasever/centosplus/$basearch/os/
http://mirrors.163.com/centos/$releasever/centosplus/$basearch/os/
http://mirrors.sohu.com/centos/$releasever/centosplus/$basearch/os/
gpgcheck=0
#生成镜像
[root@ubuntu2004:]# docker build -t rockylinux:8.5-20220705 .
#目录下的相关文件
root@ubuntu2004:/data/dockerfile/web/nginx/nginx02# ls
build.sh Dockerfile index.html nginx-1.22.0.tar.gz nginx.conf test2.html test.html
root@ubuntu2004:/data/dockerfile/web/nginx/nginx02# tree
.
├── build.sh
├── Dockerfile
├── index.html 可有可无
├── nginx-1.22.0.tar.gz
├── nginx.conf
├── test2.html 可有可无
└── test.html 可有可无
0 directories, 7 files
#基于rocky基础镜像做的nginx的Dockerfile文件
root@ubuntu2004:/data/dockerfile/web/nginx/nginx02# cat Dockerfile
FROM rockylinux:8.5-20220705
LABEL author="meiqibin"
ENV NGINX_VERSION=1.22.0
ADD nginx-${NGINX_VERSION}.tar.gz /usr/local
RUN yum -y install gcc make gcc-c++ libtool pcre pcre-devel zlib zlib-devel openssl openssl-devel && \
rm -rf /var/cache/dnf/* && \
cd /usr/local/nginx-${NGINX_VERSION} && \
./configure --prefix=/apps/nginx && \
make && make install && \
rm -rf /usr/local/nginx*
COPY nginx.conf /apps/nginx/conf/
VOLUME ["/data/html"]
EXPOSE 80
CMD /apps/nginx/sbin/nginx -g "daemon off;"
#COPY *.html /data/html/
#nginx配置文件
root@ubuntu2004:/data/dockerfile/web/nginx/nginx02# cat nginx.conf
user www;
worker_processes auto;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
#access_log logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root /data/html;
index index.html index.htm;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
#location ~ \.php$ {
# root html;
# fastcgi_pass 127.0.0.1:9000;
# fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
# include fastcgi_params;
#}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
}
# another virtual host using mix of IP-, name-, and port-based configuration
#
#server {
# listen 8000;
# listen somename:8080;
# server_name somename alias another.alias;
# location / {
# root html;
# index index.html index.htm;
# }
#}
# HTTPS server
#
#server {
# listen 443 ssl;
# server_name localhost;
# ssl_certificate cert.pem;
# ssl_certificate_key cert.key;
# ssl_session_cache shared:SSL:1m;
# ssl_session_timeout 5m;
# ssl_ciphers HIGH:!aNULL:!MD5;
# ssl_prefer_server_ciphers on;
# location / {
# root html;
# index index.html index.htm;
# }
#}
}
#下载nginx源码文件:
wget http://nginx.org/download/nginx-1.22.0.tar.gz
#为了加快后期制作容器,build做出脚本文件
root@ubuntu2004:/data/dockerfile/web/nginx/nginx02# cat build.sh
#!/bin/bash
#
#********************************************************************
#Author: meiqibin
#QQ: 29308620
#Date: 2022-07-04
#FileName: build.sh
#URL: http://www.meiqibin.com
#Description: The test script
#Copyright (C): 2022 All rights reserved
#********************************************************************
tag=$1
docker build -t nginx:$tag .
#制作nginx基础镜像
docker build -t nginx:1.22.0-20220705 .
#制作nfs共享文件
apt -y install nfs-common
mkdir /data/nginx -p
#默认rocky装有docker软件,并是启动状态
#从10.0.0.100(Ubuntu)拷贝已经做好的nginx镜像
1、在10.0.0.100上的操作:
docker save nginx:1.22.0-20220705 -o nginx-1.22.0-20220705.tar
scp nginx-1.22.0-20220705.tar 10.0.0.18:
2、在10.0.0.18上的操作:
docker load -i nginx-1.22.0-20220705-2.tar
docker images 命令可以看到多出来的 nginx:1.22.0-20220705镜像
3、制作nfs共享文件
yum -y install nfs-utils
mkdir /data/nginx -p
#此操作在10.0.0.7上操作
1、安装nfs-server软件
yum -y install nfs-utils
systemctl enable --now nfs-server.service
2、创建共享文件
mkdir /data/nfs -p
3、写web默认页面
vim /data/nfs/index.html
<h1> welcome to nfs poxy-website </h1>
4、写共享规则
vim /etc/exports
/data/nfs *(ro)
5、共享规则生效
exportfs -v
/data/nfs <world>(sync,wdelay,hide,no_subtree_check,sec=sys,ro,secure,root_squash,no_all_squash)
6、重启nfs-server服务器
systemctl restart nfs-server.service
#测试Ubuntu端是否能看到nfs-server共享的文件目录
root@ubuntu2004:~# showmount -e 10.0.0.7
Export list for 10.0.0.7:
/data/nfs *
#永久挂载nfs-server共享的文件目录
root@ubuntu2004:~# cat /etc/fstab
增加一行
10.0.0.7:/data/nfs /data/nginx nfs _netdev 0 0
root@ubuntu2004:~# mount -a
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-16n2aNai-1661178951980)(E:\运维笔记\企业级容器技术 Docker\企业级容器技术 Docker.assets\1657021225345.png)]
#测试客户端是否能看到服务器端共享的文件目录
[19:26:27 root@rocky8 ~]#showmount -e 10.0.0.7
Export list for 10.0.0.7:
/data/nfs *
#永久挂载nfs-server共享的文件目录
[19:41:56 root@rocky8 ~]#cat /etc/fstab
增加一行
10.0.0.7:/data/nfs /data/nginx nfs _netdev 0 0
[19:41:56 root@rocky8 ~]# mount -a
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NlfIFLKM-1661178951983)(E:\运维笔记\企业级容器技术 Docker\企业级容器技术 Docker.assets\1657021562209.png)]
此实验做的是LVS-NAT模式,需要LVS服务器有两个不同的网段,此主机已经有个10.0.0.7的私网IP,需要再加个仅主机模式的192.168.10.131网段的IP
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XKpYCCl3-1661178951984)(E:\运维笔记\企业级容器技术 Docker\企业级容器技术 Docker.assets\1657022092420.png)]
#下载LVS服务器
yum -y install ipvsadm
#设置LVS规则
[17:22:04 root@rocky8 ~]#ipvsadm -A -t 192.168.10.131:80 -s rr
[17:22:41 root@rocky8 ~]#ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.10.131:80 rr
[17:22:43 root@rocky8 ~]#ipvsadm -a -t 192.168.10.131:80 -r 10.0.0.101:81 -m
[17:24:32 root@rocky8 ~]#ipvsadm -a -t 192.168.10.131:80 -r 10.0.0.101:82 -m
[17:24:39 root@rocky8 ~]#ipvsadm -a -t 192.168.10.131:80 -r 10.0.0.18:83 -m
[17:24:50 root@rocky8 ~]#ipvsadm -a -t 192.168.10.131:80 -r 10.0.0.18:84 -m
[17:25:00 root@rocky8 ~]#ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.10.131:80 rr
-> 10.0.0.18:83 Masq 1 0 0
-> 10.0.0.18:84 Masq 1 0 0
-> 10.0.0.101:81 Masq 1 0 0
-> 10.0.0.101:82 Masq 1 0 0
#开启防火墙转发功能
[17:25:08 root@rocky8 ~]#sysctl -a |grep ip_for
net.ipv4.ip_forward = 0
net.ipv4.ip_forward_update_priority = 1
net.ipv4.ip_forward_use_pmtu = 0
[17:26:02 root@rocky8 ~]#vim /etc/sysctl.conf
增加一行
net.ipv4.ip_forward = 1
[17:26:59 root@rocky8 ~]#sysctl -p
net.ipv4.ip_forward = 1
3.5.2 LVS客户端配置
#ubunru
ip route del default via 10.0.0.2;ip route add default via 10.0.0.8
#rocky
ip route del default via 10.0.0.2;ip route add default via 10.0.0.8
#ubuntu
docker run -d -v /data/nginx:/data/html -p 81:80 --name nginx01 nginx:1.22.0-20220705
docker run -d -v /data/nginx:/data/html -p 82:80 --name nginx02 nginx:1.22.0-20220705
#rocky
docker run -d -v /data/nginx:/data/html -p 83:80 --name nginx03 nginx:1.22.0-20220705
docker run -d -v /data/nginx:/data/html -p 84:80 --name nginx04 nginx:1.22.0-20220705
#开启日志,测试访问结果,看看是否负载均衡
Ubuntu:
docker exec -it nginx01 tail -f /apps/nginx/logs/access.log
docker exec -it nginx02 tail -f /apps/nginx/logs/access.log
rocky:
docker exec -it nginx03 tail -f /apps/nginx/logs/access.log
docker exec -it nginx04 tail -f /apps/nginx/logs/access.log
#打开window的字符界面测试
curl http://192.168.10.131
方法一:
[root@ubuntu2004 ~]#docker run -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -e MYSQL_DATABASE=wordpress -e MYSQL_USER=wordpress -e MYSQL_PASSWORD=123456 --name mysql -d -v /data/mysql:/var/lib/mysql --restart=always mysql:8.0.29-oracle
[root@ubuntu2004 ~]#docker run -d -p 80:80 --name wordpress -v /data/wordpess:/var/www/html --restart=always wordpress:php7.4-apache
方法二:
docker create --name volume-server -v /data:/volume-data busybox
docker run --volumes-from volume-server containter1
docker run --volumes-from volume-server containter2
docker run --volumes-from volume-server containter3
方法三:
docker run -v /data:/test1 --name c1 busybox
docker run -v /data:/test2 --name c2 busybox
docker run -v /data:/test3 --name c3 busybox
1 bridge网络模式
2 host模式
3 none 模式
4 container模式
5 自定义网络模式
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RDXPMWkm-1661178951988)(E:\运维笔记\企业级容器技术 Docker\企业级容器技术 Docker.assets\1657196708469.png)]
环境准备: 共四台主机
两台主机harbor服务器,地址: 10.0.0.101|102
两台主机harbor客户端上传和下载镜像
tml --restart=always wordpress:php7.4-apache
方法二:
```bash
docker create --name volume-server -v /data:/volume-data busybox
docker run --volumes-from volume-server containter1
docker run --volumes-from volume-server containter2
docker run --volumes-from volume-server containter3
方法三:
docker run -v /data:/test1 --name c1 busybox
docker run -v /data:/test2 --name c2 busybox
docker run -v /data:/test3 --name c3 busybox
1 bridge网络模式
2 host模式
3 none 模式
4 container模式
5 自定义网络模式