No01
完成Centos7下docker的安装部署,需要配置镜像站点的加速器,并下载nginx镜像,使用数据卷发布个人网页。(网页信息中心必须包含,学生的学号,姓名,专业班级等信息)
具体的实现步骤:
1查看Linux版本
命令:
uname -a
2、使用yum命令安装Docker
命令:
yum -y install docker
3、启动docker服务并查看Docker的具体信息
命令:
systemctl start docker
docker info
4、配置加速器
命令:
方法一
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://f2k3b83v.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
方法二
vi /etc/docker/daemon.json
{
"registry-mirrors": [
"https://registry.docker-cn.com",
"http://hub-mirror.c.163.com",
"https://docker.mirrors.ustc.edu.cn"
]
}
systemctl daemon-reload
systemctl restart docker
5、修改防火墙配置
命令:
systemctl stop firewalld.service
setenforce 0
getenforce
6、搜索nginx镜像
命令:
docker search nginx
7、拉取nginx镜像
命令:
docker pull docker.io/nginx
8、创建数据卷
命令:
docker volume create --name 卷名
9、创建带有容器卷映射关系的nginx容器,容器的名称(nginx_名字拼音首字母)
命令:
docker run -d -p 5003:80 --name nginx_姓名 -v 卷名:/usr/share/nginx/html docker.io/nginx
10、创建个人站点 并发布到ngin容器中
命令:
cd /var/lib/docker/volumes/卷名/_data/
ls
rm -r index.html
vi index.html
11、在浏览器中查看项目发布成果
web访问http://127.0.0.1:5003
No02
题目:
使用Python语言及第三方工具包,实现远程获取容器服务器上所有镜像名称的功能。
1查看服务器是否安装Docker服务
命令:
systemctl status docker
2、使用yum命令安装Docker
命令:
yum install docker -y
3、启动docker服务并查看Docker的具体信息
命令:
systemctl start docker
systemctl info
4、修改位于/etc/sysconfig/docker的配置文件,设置守护进程及服务对应的端口
命令:
vi /etc/sysconfig/docker
#添加如下内容
OPTIONS='-H=tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock'
5、修改成功后重启Docker服务并关闭防火墙,并查看Docker的相关信息
命令:
systemctl restart docker
setenforce 0
systemctl stop firewalld
docker info
6、在Docker服务器中使用API地址(http://IP:端口/images/json)查看本机已存在的镜像表
浏览地址:http://127.0.0.1:2375/images/json
7、使用Pycharm创建项目。项目名称:getApi_学号,创建包,创建对象的py文件
8、在项目中下载并导入所需的网络访问包和Json的解析库
代码:
import json
import requests
9、编写代码调用DockerAPI来获取镜像列表并打印显示
代码:
import requests
import json
url='http://ip:2375/images/json'
response=requests.get(url)
content=response.content.decode('utf-8')
jsonstr=json.loads(content)
for i in jsonstr:
if(i['RepoDigests']!=None):
names=str(i['RepoDigests'][0]).split('@')[0].split('/')[-1]
print(names)
No03
题目:
使用navicatformysql,linux及Docker相关技术,实现虚拟数据库开发环境搭建。使用Docker服务创建Mysql的容器,并部署在Linux系统中,然后是宿主机的navicatformysql可视化终端工具,在mysql数据中创建一个名为StudentInfo的数据库,并创建数据表 student。表中包含如下字段:
stuid int(8) 主键 自增 编号
stuno varchar(20) 唯一 学号
stuname varchar(20) 姓名
stutel varchar(20) 电话
1查看服务器是否安装Docker服务
命令:
docker version
2、如果Docker服务不存在使用yum命令安装Docker,已存在则跳过本题
yum install docker -y
3、拉取mysql的镜像
命令:
docker pull mysql:5.6
#5.6版本成功率高,不用最新版本
4、创建mysql的容器,容器命名规则如xxx_mysql,并实现端口的映射3366:3306
命令:
docker run -di -p 3366:3306 --name 姓名_mysql -e MYSQL_ROOT_PASSWORD=123456 docker.io/mysql:5.6
出现错误:
iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 5000 -j DNAT --to-destination 172.18.0.4:5000 ! -i br-ff45d935188b: iptables: No chain/target/match by that name. (exit status 1)
解决方案一:重启docker,然后再重启你的容器
systemctl restart docker
docker start 容器名
解决方案二:
pkill docker
iptables -t nat -F
ifconfig docker0 down
brctl delbr docker0
docker -d
systmctl restart docker
5、查看创建的是容器是否正常运行
命令:
docker ps
6、使用navicatformysql连接远程数据容器,并查测试连接是否成功。
注意:VMnet1和VMnet8记得开启
7、创建StudentInfo数据库,并创建student表(要求保留数据表的设计截图)
#先创建数据库,然后新建查询,运行下列代码
DROP TABLE IF EXISTS `student`;
CREATE TABLE `student` (
`stuid` int(8) NOT NULL AUTO_INCREMENT,
`stuno` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`stuname` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`stutel` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
PRIMARY KEY (`stuid`) USING BTREE,
UNIQUE INDEX `index_a`(`stuno`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
SET FOREIGN_KEY_CHECKS = 1;
8、在navicatformysql中新建数据查询,使用insert into 语句完成数据的添加功能(数据内容以自己的信息为准)
操作语句:
INSERT INTO student VALUES(NULL,'学号','姓名','电话')
9、使用select语句查询student表中的数据并显示
操作语句:
SELECT * FROM student
10、在mysql容器中查看数据库及表是否存在
进入容器Linux命令:
docker exec -it 容器名 /bin/bash
进入mysql服务的命令:
mysql -uroot -p123456
显示所有数据库列表的命令:
show databases;
查看studentinfo数据库中的表:
show tables from studentinfo;
#注意数据库名大小写
本人系列文章仅用作个人笔记整理,不做商用。其中部分来自网络,部分来自个人所学,难免有疏漏之处,望海涵。