云计算技术与应用赛项试题库之docker运维题
以下所使用的IP详情:服务端:192.168.182.50客户端:192.168.182.60根据提供的软件包,搭建rancher平台。通过curl命令查询Rancher管理平台首页,将以 上查询命令及结果输入答题框。curl http://192.168.182.50:8080/env/la5/apps/stacks根据提供的软件包,通过“应用商店”部署Gogs,修改网页访问端口为9093,通过
在写的过程中,出现小错误欢迎指正
以下所使用的IP详情:
服务端:192.168.182.50
客户端:192.168.182.60
根据提供的软件包,搭建rancher平台。通过curl命令查询Rancher管理平台首页,将以 上查询命令及结果输入答题框。
curl http://192.168.182.50:8080/env/la5/apps/stacks
根据提供的软件包,通过“应用商店”部署Gogs,修改网页访问端口为9093,通过curl命令访问用户列表,提交执行结果文本到答题框。
curl http://192.168.182.60:9093/explore/users
根据提供的软件包,通过“应用商店”部署Elasticsearch 2.x,修改网页访问端口为9094,通过curl命令访问首页,提交执行结果文本到答题框。
https://start.firefoxchina.cn curl http://192.168.182.60:9094/
根据提供的软件包,通过“应用商店”部署Grafana,修改网页访问端口为9090,通过curl命令访问首页,提交执行结果文本到答题框。
curl http:192.168.182.60:9090/graph
根据提供的软件包,通过“应用商店”部署Grafana,访问3000端口,使用curl命令访问Grafana服务的3000端口,提交执行结果文本到答题框。
curl http://192.168.182.60:3000
在server节点,修改配置文件,使仓库指向我们自己创建的registry节点,使用docker info命令查看修改后docker的仓库指向,将添加配置文件的参数和执行docker info命令的
#vi /etc/sysconfig/docker
ADD_REGISTRY=’add-registry 192.168.182.50:5000’
INSECURE_REGISTRY=’insecure-registry 192.168.182.50:5000’
#docker info
搭建rancher平台的时候,需要打开系统的内核转发功能,请把打开内核转发功能的参数已文本形式提交到答题框。
#sysctl -p
net.ipv4.ip_forward=1
net.ipv4.conf.default.rp_filter=0
net.ipv4.conf.all.rp_filter=0
当要使用docker api查询信息的时候,我们需要修改docker的配置文件,添加一条OPTIONS来使得api功能可以使用,请把添加的OPTIONS参数以文本形式提交到答题框。
#vi /usr/lib/systemd/system/docker.service
\ -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
配置docker容器实现nginx的负载均衡,需要修改nginx的配置文件,请把定义tomcat负载均衡的参数以文本形式提交到答题框
upstream wei {
server 10.0.6.126:32768;
server 10.0.6.126:32769;
在server节点使用netstat命令查询仓库监听端口号,查询完毕后通过lsof命令(如命令不存在则手工安装)查询使用此端口号的进程。将以上所有操作命令和输出结果以文本形式提交到答题框。
#yum install net-tools
#netstart -ntpl
#lsof -i:5000
在server节点通过netstat命令(如命令不存在则手工安装)查询docker镜像仓库PID,使用top命令查询上一步查询到的PID的资源使用情况。将以上所有操作命令和输出结果以文本形式提交到答题框。
#netstat -ntpl
#top -p 1184
在server节点通过docker命令查询docker registry容器最后5条日志,将以上所有操作命令和输出结果以文本形式提交到答题框。
#docker ps | grep registry
#docker logs --tail=5 ID
在server节点,查询rancher/server容器的进程号,建立命名空间/var/run/netns并与rancher/server容器进行连接,通过ip netns相关命令查询该容器的ip,将以上操作命令及检查结果填入答题框。
#docker inspect -f {{.State.Pid}} ID
#mkdir /var/run/netns
#ln -s /proc/1377/ns/net /var/run/netns/rancher-server
#ip netns list // 显示所有命名的 network namespace
(其实就是显示 /var/run/netns 目录下的所有 network namespace 对象:)
#ip netns exec rancher-server ip a
在server节点查询当前cgroup的挂载情况,将以上操作命令及检查结果填入答题框。
mount -t cgroup //-t vfstype 指定文件系统的类型
在server节点创建memory控制的cgroup,名称为:xiandian,创建完成后将当前进程移动到这个cgroup中,通过cat相关命令查询cgroup中的进程ID,将以上操作命令及检查结果填入答题框。
mkdri /sys/fs/cgroup/memory/xiandian
echo $$ //返回登录shell的PID
sudo sh -c “echo $$>> /sys/fs/cgroup/memory/xiandian/tasks”
cat /proc/956/cgroup
在server节点创建cpu控制的cgroup,名称为:xiandian。假设存在进程号为8888一直占用CPU使用率,并且达到100%,严重影响系统的正常运行。使用cgroup相关知识在创建的cgroup中将此进程操作CPU配额调整为30%。将以上操作命令及检查结果填入答题框。
mkdir /sys/fs/cgroup/cpu/xiandian
echo 30000 > /sys/fs/cgroup/cpu/xiandian/cpu.cfs_quota_us
echo 8888 > /sys/fs/cgroup/cpu/xiandian/tasks
在server节点使用nginx镜像创建一个名为1daoyun的容器,只能使用0这个内核,镜像使用nginx:latest,并通过查看Cgroup相关文件查看内核使用情况,将以上操作命令及检查结果填入答题框(提示,首先要修改cpuset.cpus的参数)。
docker run -itd --name 1daoyun --cpuset-cpus=0 nginx:latest /bin/bash
cat /sys/fs/cgroup/cpuset/system.slice/docker-ID.scope/cpuset.cpus
在server节点创建/opt/xiandian目录,创建完成后启动名为xiandian-dir,镜像为nginx:latest的容器,并指定此目录为容器启动的数据卷,创建完成后通过inspect命令指定查看数据卷的情况。将以上操作命令及检查结果填入答题框
#mkdri /opt/xiandian
#dcoekr run -itd -P --name xiandian-dir -v /opt/xiandian nginx:latest /bin/bash
#docker inspect -f {{.Config.Volumes}} xiandian-dir
在server节点创建/opt/xiandian-ro目录,创建完成后启动名为xiandian,镜像为nginx:latest的容器,并指定此目录为容器启动的数据卷挂载目录为/opt,设置该数据卷为只读模式,创建完成后通过inspect命令指定查看HostConfig内的Binds情况。将以上操作命令及检查结果填入答题框。
#mkdir /opt/xiandian-ro
#docker run -itd -P --name xianidan -v /opt/xianida-ro:/opt:ro nginx:latest /bin/bash
#docker inspect -f {{.HostConfig.Binds}} xiandian
在server节点使用docker相关命令使用mysql:8.0镜像创建名为mysqldb的容器,使用镜像nginx:latest创建名为nginxweb容器,容器连接mysqldb容器内数据库,操作完成后使用inspect查看有关链接内容的字段,将以上操作命令及检查结果填入答题框。
#docker run -itd -P --name mysqldb mysql:8.0 /bin/bash
#docker run -itd -P --name nginxweb --link mysqldb:db nginx:latest /bin/bash
#docker inspect -f {{.HostConfig.Link}} nginxweb
在server节点通过bridge命令(如果不存在则安装该命令bridge-utils)查看网桥列表,将以上操作命令及检查结果填入答题框。
yun install -y bridge-utils
brctl show
在server节点创建xd_br网桥,设立网络的网络地址和掩码为192.168.2.1/24,创建完成后启动该网桥,完成后查看xd_br网卡和网桥详细信息,将以上操作命令及检查结果填入答题框。
brctl addbr xd_br
ip addr add ip/24 dev xd_br
ip link set ip up //启动网桥
brctl show
ifconfig xd_br
在server节点利用nginx:latest镜像运行一个无网络环境的容器,使用inspect命令只查看该容器的networks信息,将以上操作命令及返回结果以文本形式填入答题框。
docker run -itd --net=none nginx:latest /bin/bash
docker inspect -f {{.NetworkSettings.Networks}} nginx:latest
在client节点拉取mysql:8.0镜像,拉取完成后查询docker镜像列表目录,将以上操作命令及检查结果填入答题框。
docker pull mysql:8.0
docker images
在server节点运行mysql:8.0镜像,设置数据库密码为xd_root,将宿主机13306端口作为容器3306端口映射,进入容器后创建数据库xd_db,创建用户xiandian,密码为xd_pass,将此用户对xd_db拥有所有权限和和允许此用户远程访问,完成后使用xiandian用户远程登录数据库查询数据库内的数据库列表,将以上操作命令及检查结果填入答题框。
#docker run -itd -p 13306:3306 -e MYSQL_ROOT_PASSWORD=xd_root mysql:8.0
#mysql -uroot -pxd_root
#creat database xd_db
#grant all privileges on xd_db. * to ‘xianidan’@’%’ identified by ‘xd_pass’;
#exit
#ip a
#mysql -uxianidan -pxd_pass -hIP “show database;”
[root@server images]# docker run -itdP -e MYSQL_ROOT_PASSWORD=xd_root -p 13306:3306 mysql:8.0
263509211cb33853360407fc76c422236e43506738a70b3c1a4d25b6bfd4c93c
[root@server images]# docker exec -it 26350921 /bin/bash
root@263509211cb3:/# mysql -uroot -pxd_root
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 7
Server version: 8.0.3-rc-log MySQL Community Server (GPL)
Copyright (c) 2000, 2017, 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> create database xd_db;
Query OK, 1 row affected (0.03 sec)
mysql> grant all privileges on xd_db.* to 'xiandian'@'%' identified by 'xd_pass';
Query OK, 0 rows affected, 1 warning (0.03 sec)
mysql> exit
Bye
root@263509211cb3:/# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
21: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
link/ether 02:42:ac:11:00:04 brd ff:ff:ff:ff:ff:ff
inet 172.17.0.4/16 scope global eth0
valid_lft forever preferred_lft forever
inet6 fe80::42:acff:fe11:4/64 scope link
valid_lft forever preferred_lft forever
root@263509211cb3:/# mysql -uxiandian -pxd_pass -h172.17.0.4 -e "show databases;"
mysql: [Warning] Using a password on the command line interface can be insecure.
+--------------------+
| Database |
+--------------------+
| information_schema |
| xd_db |
+--------------------+
在server节点将mysql镜像导出,导出名称为mysql_images.tar,放在/media目录下,导出后,查看目录,将以上操作命令及检查结果填入答题框。
#docker save mysql :8.0 > /media/mysql_images.tar
#ll /media
在server节点,运行数据库容器,数据库密码设置为000000,使用镜像为mysql:8.0,运行之后,使用命令将容器导出,导出名称为mysql_container.tar,放在/media目录下,导出后,查看目录,将以上操作命令及检查结果填入答题框。
#docker run -itd -P -e MYSQL_ROOT_PASSWORD=000000 mysql:8.0
#docker export 容器ID > /media/mysql_container.tar
#ll /media
在server节点将tomcat_latest.tar镜像导入,并打标签成tomcat:latest,上传至仓库中,将以上操作命令及检查结果填入答题框。
[root@server images]# docker load -i tomcat_latest.tar
e27a10675c56: Loading layer [==================================================>] 105 MB/105 MB
851f3e348c69: Loading layer [==================================================>] 24.72 MB/24.72 MB
06f4de5fefea: Loading layer [==================================================>] 7.995 MB/7.995 MB
a4d7b0ac0438: Loading layer [==================================================>] 2.172 MB/2.172 MB
6ef532e39c1e: Loading layer [==================================================>] 3.584 kB/3.584 kB
7ffe9646653b: Loading layer [==================================================>] 1.536 kB/1.536 kB
93742a1ae069: Loading layer [==================================================>] 415.8 MB/415.8 MB
c571db474d75: Loading layer [==================================================>] 400.9 kB/400.9 kB
04178c827c65: Loading layer [==================================================>] 2.56 kB/2.56 kB
c4d99fd86e94: Loading layer [==================================================>] 1.966 MB/1.966 MB
a8e949e6c4fd: Loading layer [==================================================>] 18.87 MB/18.87 MB
f17807115ffa: Loading layer [==================================================>] 2.048 kB/2.048 kB
Loaded image ID: sha256:a92c139758db4c89d0cdeaa641566d0cb3305f9f6d2dbd2ca50dd361c02328da B/2.048 kB
[root@server images]# docker images
<none> <none> a92c139758db 5 weeks ago 557.4 MB
[root@server images]# docker tag a92c139758db 10.0.6.126:5000/tomcat:latest
[root@server images]# docker push 10.0.6.126:5000/tomcat:latest
The push refers to a repository [10.0.6.126:5000/tomcat]
f17807115ffa: Pushed
a8e949e6c4fd: Pushed
c4d99fd86e94: Pushed
04178c827c65: Pushed
c571db474d75: Pushed
93742a1ae069: Pushed
7ffe9646653b: Pushed
6ef532e39c1e: Pushed
a4d7b0ac0438: Pushed
06f4de5fefea: Pushed
851f3e348c69: Pushed
e27a10675c56: Pushed
latest: digest: sha256:90b2bee496f433123469c91586b19b6e4b1b0c417356ba0240bdcbea1b474a46 size: 2836
[root@server images]# docker images
10.0.6.126:5000/tomcat latest a92c139758db 5 weeks ago 557.4 MB
在server节点运行mysql容器,使用镜像为mysql:8.0指定mysql密码为000000,容器运行在后台,使用随机映射端口,容器运行完成后查询容器列表,将以上操作命令及检查结果填入答题框。
#docker run -d -P -e MYSQL_ROOT_PASSWORD=000000 mysql:8.0
#docker ps
在server节点运行mysql容器,使用镜像为mysql:8.0指定mysql密码为000000,容器运行在后台,使用随机映射端口,容器运行完成后查询容器列表,然后将运行的mysql容器停止,完成后查询容器状态,将以上操作命令及检查结果填入答题框。
#docker run -d -e MYSQL_ROOT_PASSWORD=000000 -P mysql:8.0
#docker ps -a
#docker stop ID(容器ID)
#docker ps -a
在server节点,将上题停止的容器启动运行,完成后查询容器状态,将以上操作命令及检查结果填入答题框
docker start ID
docker ps -a
在server节点,将运行的mysql容器重启,将以上操作命令及检查结果填入答题框。
docker restart ID
在server节点,执行一条命令使用exec获取的rancher/server容器正在运行的网络套接字连接情况,将以上操作命令及检查结果填入答题框。
docker exec ID netstat
在server节点,使用inspect只查询rancher/server容器的NetworkSettings内Networks网桥信息,将以上操作命令及检查结果填入答题框。
docker inspect -f {{.NetworkSettings.Networks.bridge}} ID
在server节点,使用inspect只查询rancher/server容器的PortBindings 信息,将以上操作命令及检查结果填入答题框。
docker inspect -f {{.HostConfig.PortBindings}} ID
在server节点,使用inspect只查询rancher/server容器的NetworkSettings内Ports信息,将以上操作命令及检查结果填入答题框。
docker inspect -f {{.NetworkSettings.Ports}} ID
在server节点,使用inspect只查询rancher/server镜像的Volumes卷组信息,将以上操作命令及检查结果填入答题框。
docker inspect -f {{.ContainerConfig.Volumes}} ID
server节点,使用inspect只查询rancher/server镜像的Entrypoint信息,将以上操作命令及检查结果填入答题框。
docker inspect -f {{.Config.Entrypoint}} ID
在server节点,使用docker命令查询rancher/server容器的进程,将以上操作命令及检查结果填入答题框。
docker top ID
在server节点,使用docker命令查看最后退出的容器的ID,将以上操作 命令及检查结果填入答题框。
docker ps -l
在server节点将运行的mysql容器创建为镜像名为mysql_new:latest,完成后查询该镜像,将以上操作命令及检查结果填入答题框。
docker commit 容器ID mysql_new:latest
docker images mysql_new:latest
在server节点查询registry容器的CPU、内存等统计信息,将以上操作命令及检查结果填入答题框。
[root@server images]# docker stats 6a5d3352e67e
CONTAINER CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
6a5d3352e67e 0.00% 5.52 MiB / 1.954 GiB 0.28% 1.179 GB / 815.4 MB 577.2 MB / 837 MB 0
CONTAINER CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
6a5d3352e67e 0.00% 5.52 MiB / 1.954 GiB 0.28% 1.179 GB / 815.4 MB 577.2 MB / 837 MB 0
CONTAINER CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
6a5d3352e67e 0.00% 5.52 MiB / 1.954 GiB 0.28% 1.179 GB / 815.4 MB 577.2 MB / 837 MB 0
CONTAINER CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
6a5d3352e67e 0.00% 5.52 MiB / 1.954 GiB 0.28% 1.179 GB / 815.4 MB 577.2 MB / 837 MB 0
CONTAINER CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
6a5d3352e67e 0.00% 5.52 MiB / 1.954 GiB 0.28% 1.179 GB / 815.4 MB 577.2 MB / 837 MB 0
CONTAINER CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
6a5d3352e67e 0.00% 5.52 MiB / 1.954 GiB 0.28% 1.179 GB / 815.4 MB 577.2 MB / 837 MB 0
CONTAINER CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
6a5d3352e67e 0.00% 5.52 MiB / 1.954 GiB 0.28% 1.179 GB / 815.4 MB 577.2 MB / 837 MB 0
在server节点修改运行的rancher/server容器的名称,修改名称为xiandian_server,完成后查询容器列表,将以上操作命令及检查结果填入答题框。
docker ps
docker rename ID xiandian_server
docker ps
在server节点,使用docker命令列举所有的网络,将以上操作命令及检查结果填入答题框。
docker network ls
在server节点,使用docker命令查询bridge网络的所有详情,将以上操作命令及检查结果填入答题框。
docker network inspect bridge
在server节点,使用docker命令创建名为xd_net的网络,网络网段为192.168.3.0/24,网关为192.168.3.1,创建完成后查询网络列表,将以上操作命令及检查结果填 入答题框。
docker network creat --subnet=192.168.3.0/24 --ip-range=192.168.182.3.0/24 --gateway=192.168.182.3.1 xd_net
docker network inspect xd_net
在server节点,使用docker命令创建名为xd_net的网络,网络网段为192.168.3.0/24,网关为192.168.3.1,创建完成后查询此网络的详细信息,将以上操作命令及检 查结果填入答题框。
#docker network creat --sunet=192.168.3.0/24 --ip-range=192.168.182.3.0/24 --gateway=192.168.3.1 xd_net
#docker network inspect xd_net
在server节点,使用docker命令创建名为xd_net的网络,网络网段为192.168.3.0/24,网关为192.168.3.1,创建镜像为centos:latest,容器名称为centos,使用docker网络为xd_net,创建完成后查询容器使用的网络名称和查询该容器的运行状态,将以上操作命令及检查结果填入答题框。
#docker netowork creat --subnet=192.168.3.0/24 --ip-range=192.168.3.0/24 --gateway=192.168.3.1 xd_net
#docker run -itd --name centos --net=xd_net cnetos:latest
#docker inspect -f {{NetworkSettings.Networks}} centos
#docker ps
server节点,使用docker命令创建名为xd_net的网络,网络网段为192.168.3.0/24,网关为192.168.3.1,创建镜像为centos:latest,容器名称为centos,使用docker网络为xd_net,创建完成后查询容器IP地址,将以上操作命令及检查结果填入答题框。
#docker network creat --subnet=192.168.3.0/24 --ip-range=192.168.3.0/24 --gateway=192.168.3.1 xd_net
#docker run -itd --name centos --net=xd_net centos:latest
#docker inspect -f {{.Networks.xd_net.IPAddress}} centos
server节点,使用docker命令创建名为xd_net的网络,网络网段为192.168.3.0/24,网关为192.168.3.1,创建完成后,查询网络列表,接着删除docker网络xd_net,完成后查询docker网络列表,将以上操作命令及检查结果填入答题框。
#docker network creat --subset=192.168.3.1/24 --ip-range=192.168.3.0/24 --gateway=192.168.3.1 xd_net
#docker network m xd_net
#docker network ls
server节点,使用docker命令只列举rancher/server容器的端口映射状 态,将以上操作命令及检查结果填入答题框。
docker port ID
server节点,使用docker命令打印rancher/server镜像的大小和日期历 史更新信息的前十条。将以上操作命令及检查结果填入答题框。
docker history -H ID | head -10
server节点,使用docker命令运行centos镜像,运行输出打印“Hello world”,将以上操作命令及检查结果填入答题框。
docker run centos:laetst /bin/echo “hello world”
server节点,使用docker命令运行centos镜像,运行输出打印“Hello world”,要求启动命令包含打印完成后自动删除此容器及产生的数据。将以上操作命令及检查 结果填入答题框。
docker run --rm centos:latest /bin/echo “hello world”
server节点,使用docker命令将当前操作系统的yum源的local.repo文件拷贝到rancher/server容器内的/opt/目录下。完成后使用exec命令查询容器的/opt目录下的所有文件列表,将以上操作命令及检查结果填入答题框。
#docker cp /etc/yum.repos.d/local.repo ID:/opt
#docker exec -it ID /bin/ls /opt/
在server节点,使用docker查询当前系统使用的卷组信息,将以上操作命 令及检查结果填入答题框。
docker volume ls
server节点,启动镜像为centos:latest的镜像创建容器,容器挂载使用创建的为xd_volume的卷组挂载到root分区,完成后通过inspect指定查看容器的挂载情况, 将以上操作命令及检查结果填入答题框。
#docker volume create --name=xd_volume
#docker run -itd -v xd_volume:/root centos:laets
#docker ps -a
#docker inspect -f {{Host.Config.Binds}} ID
写以上题构建的centos-7镜像为基础镜像,构建http服务,Dockerfile 要求删除镜像的yum源,使用当前系统的yum源文件,完成后安装http服务,此镜像要求暴露80端口。构建的镜像名字叫http:v1.0。完成后查看Dockerfile文件并查看镜像列表,将以上 操作命令及检查结果填入答题框。
#cat Dockerfile
FROM 192.168.182.50:5000/centos-7
MAINTAINER xiandian
RUN rm -rf /etc/yum.repos.d/*
ADD local.repo /etc/yum.repos.d/
RUN yum install -y httpd
EXPOSE 80
#docker build -t 192.168.182.50:5000/httpd:v1.0
#docker images
写以上题构建的centos-7镜像为基础镜像,构建数据库服务,Dockerfile要求删除镜像的yum源,使用当前系统的yum源文件,完成后安装mariadb服务,使用mysql用户初始化数据库,添加MYSQL_USER=xiandian、MYSQL_PASS=xiandian环境变量,要求数据库 支持中文,暴露端口3306,容器开机运行mysld_safe命令,完成后启动创建的镜像并查询Dockerfile文件,进入容器查看容器的数据库列表,将以上操作命令及检查结果填入答题框。
#cat Dockerfile
FROM 192.168.182.50:5000/centos-7
MIANTAINER xiandian
RUN rm -rf /etc/yum.repos.d/
ADD loacl.repo /etc/yum.repo.d/
RUN yum install mariadb-server
RUN mysql_install_db --user=mysql
ENV LC_ALL en_US.UTF-8
ENV MYSQL_USER=xiandian
ENV MYSQL_PASS=xiandian
EXPORES 3306
CMD mysql_safe
#docker build -t 192.168.182.50:5000/centos-mariadb:v1.0
#docker images
在server节点通过docker api 查询docker的系统信息,将以上操作命 令及检查结果填入答题框。
curl -X GET http://localhost:2375/info
在server节点通过docker api 查询docker的版本,将以上操作命令及检查结果填入答题框。
curl -X GET http://localhost:2375/version
在server节点通过docker api 查询docker内所有容器,将以上操作命令及检查结果填入答题框。
curl -X GET http://localhost:2375/containers/json
在server节点通过docker api 查询docker内所有镜像,将以上操作命令及检查结果填入答题框。
curl -X GET http://localhost:2375/images/json
在server节点通过docker api相关命令查询rancher/server镜像的具体 信息,将以上操作命令及检查结果填入答题框。
curl -X GET http://localhost:2375/images/ID/json
根据提供的tomcat镜像,创建容器,使用该镜像,并创建/root/www1目 录,在www1目录下编写index.jsp文件,容器的默认项目地址连接到创建的www1目录,要求访问tomcat的时候输出一句话为this is Tomcat1,最后启动容器,并启动tomcat服务,使用curl命令查询tomcat的首页,将操作命令和返回结果以文本形式提交到答题框。
#mkdri /root/www1
#vi index.jsp
<html>
<head>
<taile>tomcat</title>
</head>
<body>
this is tomcat
</body>
</html>
#docker run -itd -P -v /root/www1:/usr/local/tomcat/webapps/ROOT 192.168.182.50:5000/ tomcat:latest /bin/bash
#docker ps
#docker exec -it ID /bin/bash
#cd /bin
#startup.sh
#exit
#curl http://192.168.182.50:端口
在server节点,使用docker命令查看最近创建的2个容器的id,将操 作命令和返回结果以文本形式提交到答题框。
docker ps -n 2 -q
在容器server节点,查询rancher/server容器的进程号,建立命名空间/var/run/netns并与rancher/server容器进行连接,通过ip netns相关命令查询该容器的ip。依次将操作命令和返回结果以文本形式提交到答题框。
1.docker ps | grep rancher
2.docker inspect -f {{.State.Pid}} 容器ID
3.mkdir /var/run/netns
4.ln -s /proc/进程号/ns/net /var/run/netns/rancher-server
5.ip netns list
6.ip netns exec rancher-server ip a
容器存储配置
在容器server节点,使用mysql:8.0镜像创建名为mysqldb的容器,使用镜像nginx:latest创建名为nginxweb容器,将nginxweb容器内数据库连接到mysqldb容器,使用inspect -f查看链接情况。依次将操作命令和检查结果以文本形式提交到答题框。
1.dokcer run -itd --name mysqldb -P mysql:8.0 /bin/bash
2.docker run -itd --name nginxweb -P --link mysqldb:db nginx:latest /bin/bash
3.dokcer inspect -f {{.HostConfig.Links}} mysqlweb
容器综合
在容器server节点使用提供的nginx镜像启动一个名为nginx的容器,映射端口为80:80;然后在/opt目录新建一个index.html文件,添加index.html文件中title值为:“Welcome to XianDian!”,body主体中h1标签的值为:“this is container!”、p标签的值为:“Thank you for using nginx!”,最后使用命令将index.html文件放到nginx服务的默认目录中,通过curl命令查询nginx服务。依次将操作命令和返回结果以文本形式提交到答题框。
1.docker run -itd --name nginx -p 80:80 nginx:latest /bin/bash
2.mkdir /opt/index.html
3.vi index.html
Welcome to XianDian!
this is container!
Thank you for using nginx!
4.docker exec -it 容器ID /bin/bash
5./usr/sbin/nginx(也可以省略)
6.cd /usr/share/nginx/html
7.rm -rvf index.html
8.exit
9.docker cp /opt/index.html 容器ID:/usr/share/nginx/html/
10.curl -L 172.30.15.50
容器限制CPU
在server节点,使用centos:latest镜像创建名字为xdtest的容器,并明确限制容器对CPU资源的使用上限为每0.5秒里最多只能运行0.25秒。将上述操作命令和返回结果以文本形式提交到答题框。
1.docker run -itd --name xdtest --cpu-period=500000 --cpu-quota=250000 centos:latest /bin/bash
2.docker exec -it 容器ID /bin/bash
3.cd /sys/fs/cgroup/cpu
4.ls
5.cat cpu.cfs_quota_us
容器限制块设备I/O
在server节点,使用centos:latest镜像,创建名为blocklimit的容器。创建完之后进入容器,使用dd命令,测试写入41MB数据所花的时间。(dd if=/dev/zero of=testfile0 bs=8k count=5000 oflag=direct)然后通过修改相应的Cgroup文件来限制写磁盘的速度为1024000字节,最后使用dd命令测试写41MB花的时间来验证I/O是否限制了。将上述操作命令和返回结果以文本形式提交到答题框。
1.docker run -itd --name blocklimit centos:latest /bin/bash
2.docker exec -it 容器ID /bin/bash
3.dd if=/dev/zero of=testfile0 bs=8k count=5000 oflag=direct
cd /dev/mapper ll ll /dev/dm-4
4.echo “252:4 10240000” >
/sys/fs/cgroup/blkio/system.slice/docker-ae5a00693a19845879a0677c50db003195a2928311332336e8fa4ae3b506d13d.scope/blkio.throttle.write_bps_device
5.docker exec -it 容器ID /bin/bash
7.dd if=/dev/zero of=testfile0 bs=8k count=5000 oflag=direct
容器镜像仓库
在server节点,使用命令,查询私有仓库redistry中有哪些镜像。将操作命令和返回结果以文本形式提交到答题框。
curl http://192.168.182.50:5000/v2/_catalog
容器底层服务
在server节点使用nginx镜像创建一个名为1daoyun的容器,只能使用0这个内核,镜像使用nginx:latest,并通过查看Cgroup相关文件查看内核使用情况,将以上操作命令及检查结果填入答题框。
1.docker run -itd --name 1daoyum --cpuset-cpus=0 nginx:latest /bin/bash
2.cat /sys/fs/cgroup/cpuset/system.slice/docker-1cedb30724b0e67d32662673e04abc6d82aa1f2346bfa6240bd3ed604780d564.scope/cpuset.cpus
容器存储配置
(1)在容器server节点运行mysql:8.0镜像,设置数据库密码为xd_root,将server节点的13306端口映射到容器3306端口;
(2)进入容器创建名为xd_db的数据库,创建名为xiandian,密码为xd_pass的用户,设置此用户对xd_db数据库拥有所有权限和允许此用户远程访问;
(3)使用xiandian用户远程登录数据库并查询数据库内的数据库列表。
依次将操作命令及返回结果以文本形式提交到答题框。
1.docker run -itdP -e MYSQL_ROOT_PASSWORD=xd_root -p 13306:3306 mysql:8.0
2.docker exec -it ID /bin/bash
3.mysql -uroot -pxd_root
4.create database xd_db
5.grant all privileges on xd_db.* to ‘xiandian’@’%’ identified by ‘xd_pass’;
6.exit
7.进入容器
8.ip a
9.mysql -uxiandian -pxd_pass -hIP -e “show database;”
容器综合
(1)在容器server节点,创建/root/www1目录,在www1目录下编写index.jsp文件; (2)使用tomcat镜像创建容器,容器的默认项目地址连接到/root/www1目录,要求访问tomcat的时候输出语句为“this is Tomcat1”;
(3)进入容器启动tomcat服务,使用curl命令查询tomcat的首页。
依次将操作命令及返回结果以文本形式提交到答题框。
1.mkdir /root/www1
2.vi index.jsp
<html>
<head>
<title>Tomcat1</title>
</head>
<body>
this is Tomcat1
</body>
</html>
3.docker run -itd -P -h tomcatl -v /root/www1:/usr/local/tomcat/webapps/ROOT 192.168.182.50:5000/tomcat:latest /bin/bash
4.docker ps (查看映射端口前面那个)
5.curl http://192.168.182.50:映射端口
容器构建
在容器server节点,使用supermin5命令(若命令不存在,则自己安装)构建名为centos-7的centos7系统docker镜像,镜像预装yum、net-tools、initscripts和vi命令。构建完成后提交镜像至容器仓库,并查看此镜像。依次将操作命令及返回结果以文本形式提交到答题框。
1.yum install -y supermin5
2.supermin5 -v --prepare base yum net-tools initscripts vi coreutils -o supermin.d
-v 激活调试消息,可以看见操作信息
--prepare 准备supermin需要的工具
base、coreutils 是需要的工具,如果用yum需要添加yum命令
-o 设置一个输出目录
supermin.d 输出的目录名称
3.supermin5 -v --build --format chroot supermin.d -o appliance.d/
--build 构建完全需要的工具
--format chroot设置输出格式
4.echo 7 > appliance.d/etc/yum/vars/releasever
设置系统版本号,让docker镜像可以获取正常运行。
5.tar --numeric-owner -cpf centos-7.tar -C appliance.d .
封装docker镜像文件到归档文件中
6.cat centos-7.tar | docker import - 192.168.182.50:5000/centos-7
导入tar归档文件到docker镜像列表中,以方便操作
7.docker images centos-7
Dockerfile编写
以上题构建的centos-7镜像为基础,构建数据库镜像centos-mariadb:v1.0,其要求为:
(1)删除镜像的本地yum源,使用容器server节点的yum源文件;
(2)安装mariadb服务,使用mysql用户初始化数据库;
(3)设置MYSQL_USER=xiandian、MYSQL_PASS=xiandian环境变量;
(4)数据库支持中文;
(5)暴露3306端口;
(6)启动容器时能自动运行mysld_safe命令。
使用cat命令查看Dockerfile文件并构建镜像。依次将操作命令及返回结果以文本形式提交到答题框。
1.mkdri mydockerfile
2.vi Dockerfile
FORM 192.168.182.50:5000/centos-7
MAINTAINER xiandian
RUN rm -fv /etc/yum.repos.d/*
ADD laod.repo /etc/yum.repos.d/
RUN yum install mariadb-server
RUN mysql_install_db --user-mysql
ENV LC_ALL en_us.utf-8
ENV MYSQL_USER xiandian
ENV MYSQL_PASS xiandian
EXPOSE 3306
CMD mysql_safe
3.cp /etc/yum.repos.d/docker.repo /root/mydockerfile
4.docker build -t 192.168.182.50:5000/centos-mariadb:v1.0 .
5.docker images | grep centos-mariadb
容器扩容
在server节点,使用centos:latest镜像,创建名为xiandian的容器,然后将容器xiandian的卷空间值扩容至20G大小(不要求扩容文件系统),最后查看容器的卷空间值。将上述操作命令和返回结果以文本形式提交到答题框。
参考答案
[root@server mapper]# docker run -itd 172.30.11.4:5000/centos:latest /usr/sbin/init
6dcba06250667a7a88c0051fdf264e790ed9248d7fa0e62d837e1d6bd1276715
[root@server mapper]# dmsetup table
docker-253:1-142606574-73a6b22361ccddf9e2ffeb3f64ca0723284816c4415c7e4045fd604f706e8219: 0 20971520 thin 252:0 146
docker-253:1-142606574-pool: 0 209715200 thin-pool 7:1 7:0 128 32768 1 skip_block_zeroing
docker-253:1-142606574-64319762341c389d84ea8aa8cb8e280229be30e2a3a2a21bce7b26452e75c7b8: 0 20971520 thin 252:0 37
docker-253:1-142606574-be33475fb10c6de25f98dd5adb29f0ca1fada08366a4eb568d61afcf3cc619da: 0 20971520 thin 252:0 150
docker-253:1-142606574-94af7194245e03485a51e6ac1b45fb8f1f90a2fa906ab3c03a267ea0256858dc: 0 20971520 thin 252:0 8
docker-253:1-142606574-be12a48427d3c06a81c6e5663a4d360a7f1cebe51b8a027b82a49eddfda70710: 0 20971520 thin 252:0 148
[root@server mapper]# echo $((20*1024*1024*1024/512))
41943040
[root@server mapper]# echo 0 41943040 thin 252:0 150 | dmsetup load docker-253:1-142606574-be33475fb10c6de25f98dd5adb29f0ca1fada08366a4eb568d61afcf3cc619da
[root@server mapper]# dmsetup resume docker-253:1-142606574-be33475fb10c6de25f98dd5adb29f0ca1fada08366a4eb568d61afcf3cc619da
[root@server mapper]# dmsetup table /dev/mapper/docker-253:1-142606574-be33475fb10c6de25f98dd5adb29f0ca1fada08366a4eb568d61afcf3cc619da
0 41943040 thin 252:0 150
更多推荐
所有评论(0)