docker线上考试系统的数据虚拟化技术部署

线上考试系统的数据 虚拟化技术部署

1.部署前段服务器

docker run -it --name c0 -p80:80/tcp centos:latest

/bin/bash

docker run -it --name c1 -p80 centos:latest

/bin/bash # 宿主会指定⼀个⼤于等于3278的端⼝给容器

docker ps --all # 查看实际给予的端⼝

docker run -it --name c2 -p10.1.1.51::80

centos:latest /bin/bash

docker run -it --name c4 -v /opt/:/var/www/html/

centos:latest /bin/bash

1.将资源上传到服务器

scp -r dist/ root@192.168.71.50:~# 2创建基础容器 在服务器上

systemctl start docker.service

docker pull centos

docker run -it --name c0 centos:latest /bin/bash

3 在容器中修改yum源

curl -o /etc/yum.repos.d/CentOS-Base.repo

https://mirrors.aliyun.com/repo/Centos-vault-

8.5.2111.repo

yum clean all && yum makecache

4.在容器中安装epel

yum -y install epel-release

5.在容器中安装nginx

yum -y install nginx

6.ctrl pq

7.导出tar包

docker export -o centos_nginx.tar

8.引⼊tar包,称为镜像

docker import -m "维护世界和平" centos_nginx.tar

centos:nginx

9.查看镜像

docker image ls

root@localhost \~\]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE centos nginx 9afbddb29074 10 seconds ago 366MBmysql latest a82a8f162e18 4 weeks ago 586MB centos latest 5d0da3dc9764 2 years ago 231MB # 10.停⽤c0容器,删除c0容器 # 11.创建新的centos nginx容器,在创建的同时指定端⼝,以及 挂载⽬录 docker run -it --name c0 -p80:80/tcp -v /opt/:/usr/share/nginx/html centos:nginx /bin/bash # 12在容器内部启动nginx服务 nginx #ctrl p q # 13 在宿主上把dist⽬录中的⽂件复制opt⽬录中 cp -r dist/\* /opt 1.启动docker守护进程 \[root@docker001 \~\]# systemctl start docker.service2.搜索mysql镜像 \[root@docker001 \~\]# docker search mysql NAME DESCRIPTION STARS OFFICIAL mysql MySQL is a widely used, open source relation... 15322 \[OK

bitnami/mysql Bitnami container image for

MySQL 114

google/mysql MySQL server for Google

Compute Engine 25

elestio/mysql Mysql, verified and packaged

by Elestio 0

rapidfort/mysql RapidFort optimized, hardened

image for MySQL 25

circleci/mysql MySQL is a widely used, open

source relation... 30

ubuntu/mysql MySQL open source fast,

stable, multi-thread... 64

javanile/mysql MySQL for development

0

eclipse/mysql Mysql 5.7, curl, rsync

1

ilios/mysql Mysql configured for running

Ilios 1

cimg/mysql

3bitnamicharts/mysql

0

mirantis/mysql

0

docksal/mysql MySQL service images for

Docksal - https://d... 0

linuxserver/mysql A Mysql container, brought to

you by LinuxSe... 41

datajoint/mysql MySQL image pre-configured to

work smoothly ... 2

ddev/mysql ARM64 base images for ddev

dbserver-mysql-8.... 1

phpmyadmin phpMyAdmin - A web interface

for MySQL and M... 1017 [OK]

vulhub/mysql

0

drud/mysql

1

nasqueron/mysql

1

corpusops/mysql

https://github.com/corpusops/docker-images/ 0

jumpserver/mysql

1

openeuler/mysql

0encoflife/mysql

0

3.拉取mysql镜像

root@docker001 \~\]# docker pull mysql Using default tag: latest latest: Pulling from library/mysql 6e839ac3722d: Pull complete ad912193ad5f: Pull complete 25d13d87fd8d: Pull complete 004d383c75ef: Pull complete 6d9bbc82a0b8: Pull complete 81fec07ea550: Pull complete 83357cb2d3a5: Pull complete 8ffe968b82c1: Pull complete 30dfd9a7ed57: Pull complete 35844ae33cbe: Pull complete Digest: sha256:86cdfe832c81e39a89cfb63c3fde1683c41cc00ef91e 67653c9c1df0ba80f454 Status: Downloaded newer image for mysql:latest docker.io/library/mysql:latest \[root@docker001 \~\]# docker images REPOSITORY TAG IMAGE ID CREATED SIZEcentos nginx 12fea1b890de 13 hours ago 366MB centos java17 b6bf774de7bb 14 hours ago 550MB centos_httpd v0 fffc96d791d5 39 hours ago 309MB centos_yum v0 191d9c84f461 39 hours ago 260MB mysql latest a82a8f162e18 4 weeks ago 586MB centos latest 5d0da3dc9764 2 years ago 231MB 4.创建镜像容器 \[root@docker001 \~\]# docker run -d --name my01 -e MYSQL_ROOT_PASSWORD=root -p 3306:3306 mysql:latest 9338d672d3d819e5eb35fcf9fb5cd8fe88daf5a84b00ab0a4b3 3fc9b9ba87d8a # -d 后台运⾏,并输出hashcode # -e MYSQL_ROOT_PASSWORD=root 设置mysql密码 # -p 映射3306端⼝ 1. 管理mysql \[root@docker001 \~\]# docker exec -it my01 mysql - uroot -proot mysql: \[Warning\] Using a password on the command line interface can be insecure. Welcome to the MySQL monitor. Commands end with ; or \\g. Your MySQL connection id is 9 Server version: 9.0.1 MySQL Community Server - GPL Copyright (c) 2000, 2024, Oracle and/or its affiliates. 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. 让容器的时间和宿主机一致 让容器共享宿主机的/etc/localtime \[root@docker0 \~\]# docker run -it --name c0 centos:latest /bin/bash \[root@2115eaa4dc02 /\]# date Mon Aug 26 06:37:37 UTC 2024 Ctrl p q \[root@docker0 \~\]# docker run -it --name c2 -v /etc/localtime:/etc/localtime centos:latest /bin/bash \[root@7aca1ba22cec /\]# date Mon Aug 26 14:40:04 CST 2024 容器的ip地址不稳定link --link 容器名:别名 1.docker容器的ip地址是不固定的,如果要作为服务器使用,就必须能够直接访问服务,不能直接使用ip,为容器设置域名,做端口映射也能保证,确定是一旦停用之后端口被占用,就无法再次启动了 2.docker run --link 容器的名称或者id:自定义域名 3.被link容器必须处于启动状态,否则当前容器无法启动 \[root@docker0 \~\]# docker run -d --name m0 -e MYSQL_ROOT_PASSWORD=root mysql:latest 1c889f1939417936af1f147c390b539476447eb1bcf04ce8a676438bcca873fd \[root@docker0 \~\]# docker inspect m0 "IPAddress": "172.17.0.2", \[root@docker0 \~\]# docker run -it --name c0 --link m0:mysqldb centos:latest /bin/bash \[root@4bf632f7c6fe /\]# ping mysqldb PING mysqldb (172.17.0.2) 56(84) bytes of data. 64 bytes from mysqldb (172.17.0.2): icmp_seq=1 ttl=64 time=0.184 ms \[root@4bf632f7c6fe /\]# cat /etc/hosts 127.0.0.1 localhost ::1 localhost ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters 172.17.0.2 mysqldb 1c889f193941 m0 172.17.0.3 4bf632f7c6fe \[root@docker0 \~\]# docker stop m0 m0 \[root@docker0 \~\]# docker run -it --name c1 centos:latest /bin/bash \[root@7fc0f9ada135 /\]# \[root@docker0 \~\]# \[root@docker0 \~\]# docker inspect c1 "IPAddress": "172.17.0.2", \[root@docker0 \~\]# docker start m0 m0 \[root@docker0 \~\]# docker inspect m0 "IPAddress": "172.17.0.4", \[root@docker0 \~\]# docker attach c0 \[root@4bf632f7c6fe /\]# ping mysqldb PING mysqldb (172.17.0.4) 56(84) bytes of data. 64 bytes from mysqldb (172.17.0.4): icmp_seq=1 ttl=64 time=0.141 ms 每次修改都修改了/etc//hosts文件 \[root@4bf632f7c6fe /\]# cat /etc/hosts 127.0.0.1 localhost ::1 localhost ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters 172.17.0.4 mysqldb 1c889f193941 m0 172.17.0.3 4bf632f7c6fe 1. 在docker daemo初始状态(没有镜像的时候) /var/lib/docker不存在 2. 当docker daemon服务器启动,会自动创建docker目录 3. 在没有镜像的情况下,查看overlay2这个目录只有两个文件,管道文件,目录(管理镜像和容器的软连接目录) 4. 当我们pull一个镜像后/var/lib/docker/overlay2下就有一个新目录,这个目录就是centos的基础目录,这个新目录就是镜像,就是不可读的层 5. 当我们使用这个镜像创建一个容器,在overlay2会添加2个目录,一个是init目录,另外一个目录就是镜像的可写层 \[root@docker0 \~\]# systemctl stop docker.service \[root@docker0 \~\]# rm -rf /var/lib/docker/ \[root@docker0 \~\]# systemctl start docker \[root@docker0 \~\]# ls /var/lib/docker buildkit engine-id network plugins swarm volumes containers image overlay2 runtimes tmp \[root@docker0 \~\]# ls /var/lib/docker/overlay2/ backingFsBlockDev l \[root@docker0 \~\]# docker pull centos Using default tag: latest latest: Pulling from library/centos a1d0c7532777: Pull complete Digest: sha256:a27fd8080b517143cbbbab9dfb7c8571c40d67d534bbdee55bd6c473f432b177 Status: Downloaded newer image for centos:latest docker.io/library/centos:latest \[root@docker0 \~\]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE centos latest 5d0da3dc9764 2 years ago 231MB \[root@docker0 \~\]# ls /var/lib/docker/overlay2/ 02cd71150a75d00200a702a8790862a723a3bec9ec1e8027c2eb320906a9e6c6 backingFsBlockDev l \[root@docker0 \~\]# ls /var/lib/docker/overlay2/02cd71150a75d00200a702a8790862a723a3bec9ec1e8027c2eb320906a9e6c6 diff link \[root@docker0 \~\]# ls /var/lib/docker/overlay2/02cd71150a75d00200a702a8790862a723a3bec9ec1e8027c2eb320906a9e6c6/diff/ bin home lost+found opt run sys var dev lib media proc sbin tmp etc lib64 mnt root srv usr \[root@docker0 \~\]# docker run -it --name c0 centos:latest /bin/bash \[root@14a5325b2169 /\]# \[root@docker0 \~\]# \[root@docker0 \~\]# ls /var/lib/docker/overlay2/ 02cd71150a75d00200a702a8790862a723a3bec9ec1e8027c2eb320906a9e6c6 aeffabaf23c400af84a96fa3c037258d5e22c59c371804119f346d2a5392d296 aeffabaf23c400af84a96fa3c037258d5e22c59c371804119f346d2a5392d296-init backingFsBlockDev l \[root@docker0 \~\]# ls /var/lib/docker/overlay2/aeffabaf23c400af84a96fa3c037258d5e22c59c371804119f346d2a5392d296 diff link lower merged work \[root@docker0 \~\]# docker exec c0 dd if=/dev/zero of=/zhangsanlisi.txt bs=10M count=100 100+0 records in 100+0 records out 1048576000 bytes (1.0 GB, 1000 MiB) copied, 2.60088 s, 403 MB/s \[root@docker0 \~\]# ls /var/lib/docker/overlay2/aeffabaf23c400af84a96fa3c037258d5e22c59c371804119f346d2a5392d296/merged/ bin home lost+found opt run sys var dev lib media proc sbin tmp zhangsanlisi.txt etc lib64 mnt root srv usr \[root@localhost \~\]# tar --numeric-owner --exclude=/proc --exclude=/sys -cvf tjj.tar / \[root@localhost \~\]# scp tjj.tar root@192.168.2.13:\~ \[root@docker0 \~\]#docker import -m "我要去上天" tjj.tar jj:v0

相关推荐
wdxylb4 小时前
云原生俱乐部-shell知识点归纳(1)
linux·云原生
飞雪20075 小时前
Alibaba Cloud Linux 3 在 Apple M 芯片 Mac 的 VMware Fusion 上部署的完整密码重置教程(二)
linux·macos·阿里云·vmware·虚拟机·aliyun·alibaba cloud
路溪非溪5 小时前
关于Linux内核中头文件问题相关总结
linux
Lovyk8 小时前
Linux 正则表达式
linux·运维
Fireworkitte9 小时前
Ubuntu、CentOS、AlmaLinux 9.5的 rc.local实现 开机启动
linux·ubuntu·centos
sword devil9009 小时前
ubuntu常见问题汇总
linux·ubuntu
ac.char9 小时前
在CentOS系统中查询已删除但仍占用磁盘空间的文件
linux·运维·centos
淮北也生橘1211 小时前
Linux的ALSA音频框架学习笔记
linux·笔记·学习
华强笔记14 小时前
Linux内存管理系统性总结
linux·运维·网络
十五年专注C++开发14 小时前
CMake进阶: CMake Modules---简化CMake配置的利器
linux·c++·windows·cmake·自动化构建