云计算技术与应用赛项试题库之docker运维题_创建/opt/xiandian目录,创建完成后启动名为xiandian-dir,镜像为nginx_l-程序员宅基地

技术标签: 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,通过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
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/yzqtcc/article/details/116458472

智能推荐

生活垃圾数据集(YOLO版)_垃圾回收数据集-程序员宅基地

文章浏览阅读1.6k次,点赞5次,收藏20次。【有害垃圾】:电池(1 号、2 号、5 号)、过期药品或内包装等;【可回收垃圾】:易拉罐、小号矿泉水瓶;【厨余垃圾】:小土豆、切过的白萝卜、胡萝卜,尺寸为电池大小;【其他垃圾】:瓷片、鹅卵石(小土豆大小)、砖块等。文件结构|----classes.txt # 标签种类|----data-txt\ # 数据集文件集合|----images\ # 数据集图片|----labels\ # yolo标签。_垃圾回收数据集

天气系统3------微服务_cityid=101280803-程序员宅基地

文章浏览阅读272次。之前写到 通过封装的API 已经可以做到使用redis进行缓存天气信息但是这一操作每次都由客户使用时才进行更新 不友好 所以应该自己实现半小时的定时存入redis 使用quartz框架 首先添加依赖build.gradle中// Quartz compile('org.springframework.boot:spring-boot-starter-quartz'..._cityid=101280803

python wxpython 不同Frame 之间的参数传递_wxpython frame.bind-程序员宅基地

文章浏览阅读1.8k次,点赞2次,收藏8次。对于使用触发事件来反应的按钮传递参数如下:可以通过lambda对function的参数传递:t.Bind(wx.EVT_BUTTON, lambda x, textctrl=t: self.input_fun(event=x, textctrl=textctrl))前提需要self.input_fun(self,event,t):传入参数而同时两个Frame之间的参数传..._wxpython frame.bind

cocos小游戏开发总结-程序员宅基地

文章浏览阅读1.9k次。最近接到一个任务要开发消消乐小游戏,当然首先就想到乐cocosCreator来作为开发工具。开发本身倒没有多少难点。消消乐的开发官网发行的书上有专门讲到。下面主要总结一下开发中遇到的问题以及解决方法屏幕适配由于设计尺寸是750*1336,如果适应高度,则在iphonX下,内容会超出屏幕宽度。按宽适应,iphon4下内容会超出屏幕高度。所以就需要根据屏幕比例来动态设置适配策略。 onLoad..._750*1336

ssm435银行贷款管理系统+vue_vue3重构信贷管理系统-程序员宅基地

文章浏览阅读745次,点赞21次,收藏21次。web项目的框架,通常更简单的数据源。21世纪的今天,随着社会的不断发展与进步,人们对于信息科学化的认识,已由低层次向高层次发展,由原来的感性认识向理性认识提高,管理工作的重要性已逐渐被人们所认识,科学化的管理,使信息存储达到准确、快速、完善,并能提高工作管理效率,促进其发展。论文主要是对银行贷款管理系统进行了介绍,包括研究的现状,还有涉及的开发背景,然后还对系统的设计目标进行了论述,还有系统的需求,以及整个的设计方案,对系统的设计以及实现,也都论述的比较细致,最后对银行贷款管理系统进行了一些具体测试。_vue3重构信贷管理系统

乌龟棋 题解-程序员宅基地

文章浏览阅读774次。题目描述原题目戳这里小明过生日的时候,爸爸送给他一副乌龟棋当作礼物。乌龟棋的棋盘是一行 NNN 个格子,每个格子上一个分数(非负整数)。棋盘第 111 格是唯一的起点,第 NNN 格是终点,游戏要求玩家控制一个乌龟棋子从起点出发走到终点。乌龟棋中 MMM 张爬行卡片,分成 444 种不同的类型( MMM 张卡片中不一定包含所有 444 种类型的卡片,见样例),每种类型的卡片上分别标有 1,2,3,41, 2, 3, 41,2,3,4 四个数字之一,表示使用这种卡片后,乌龟棋子将向前爬行相应的格子数

随便推点

python内存泄露的原因_Python服务端内存泄露的处理过程-程序员宅基地

文章浏览阅读1.5k次。吐槽内存泄露 ? 内存暴涨 ? OOM ?首先提一下我自己曾经历过多次内存泄露,到底有几次? 我自己心里悲伤的回想了下,造成线上影响的内存泄露事件有将近5次了,没上线就查出内存暴涨次数可能更多。这次不是最惨,相信也不会是最后的内存的泄露。有人说,内存泄露对于程序员来说,是个好事,也是个坏事。 怎么说? 好事在于,技术又有所长进,经验有所心得…. 毕竟不是所有程序员都写过OOM的服务…. 坏事..._python内存泄露

Sensor (draft)_draft sensor-程序员宅基地

文章浏览阅读747次。1.sensor typeTYPE_ACCELEROMETER=1 TYPE_MAGNETIC_FIELD=2 (what's value mean at x and z axis)TYPE_ORIENTATION=3TYPE_GYROSCOPE=4 TYPE_LIGHT=5(in )TYPE_PRESSURE=6TYPE_TEMPERATURE=7TYPE_PRO_draft sensor

【刘庆源码共享】稀疏线性系统求解算法MGMRES(m) 之 矩阵类定义三(C++)_gmres不构造矩阵-程序员宅基地

文章浏览阅读581次。/* * Copyright (c) 2009 湖南师范大学数计院 一心飞翔项目组 * All Right Reserved * * 文件名:matrix.cpp 定义Point、Node、Matrix类的各个方法 * 摘 要:定义矩阵类,包括矩阵的相关信息和方法 * * 作 者:刘 庆 * 修改日期:2009年7月19日21:15:12 **/

三分钟带你看完HTML5增强的【iframe元素】_iframe allow-top-navigation-程序员宅基地

文章浏览阅读1.7w次,点赞6次,收藏20次。HTML不再推荐页面中使用框架集,因此HTML5删除了&lt;frameset&gt;、&lt;frame&gt;和&lt;noframes&gt;这三个元素。不过HTML5还保留了&lt;iframe&gt;元素,该元素可以在普通的HTML页面中使用,生成一个行内框架,可以直接放在HTML页面的任意位置。除了指定id、class和style之外,还可以指定如下属性:src 指定一个UR..._iframe allow-top-navigation

Java之 Spring Cloud 微服务的链路追踪 Sleuth 和 Zipkin(第三个阶段)【三】【SpringBoot项目实现商品服务器端是调用】-程序员宅基地

文章浏览阅读785次,点赞29次,收藏12次。Zipkin 是 Twitter 的一个开源项目,它基于 Google Dapper 实现,它致力于收集服务的定时数据,以解决微服务架构中的延迟问题,包括数据的收集、存储、查找和展现。我们可以使用它来收集各个服务器上请求链路的跟踪数据,并通过它提供的 REST API 接口来辅助我们查询跟踪数据以实现对分布式系统的监控程序,从而及时地发现系统中出现的延迟升高问题并找出系统性能瓶颈的根源。除了面向开发的 API 接口之外,它也提供了方便的 UI 组件来帮助我们直观的搜索跟踪信息和分析请求链路明细,

烁博科技|浅谈视频安全监控行业发展_2018年8月由于某知名视频监控厂商多款摄像机存在安全漏洞-程序员宅基地

文章浏览阅读358次。“随着天网工程的建设,中国已经建成世界上规模最大的视频监控网,摄像头总 数超过2000万个,成为世界上最安全的国家。视频图像及配套数据已经应用在反恐维稳、治安防控、侦查破案、交通行政管理、服务民生等各行业各领域。烁博科技视频安全核心能力:精准智能数据采集能力:在建设之初即以应用需求为导向,开展点位选择、设备选型等布建工作,实现前端采集设备的精细化部署。随需而动的AI数据挖掘能力:让AI所需要的算力、算法、数据、服务都在应用需求的牵引下实现合理的调度,实现解析能力的最大化。完善的数据治理能力:面_2018年8月由于某知名视频监控厂商多款摄像机存在安全漏洞