云计算技术与应用赛项试题库之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

智能推荐

稀疏编码的数学基础与理论分析-程序员宅基地

文章浏览阅读290次,点赞8次,收藏10次。1.背景介绍稀疏编码是一种用于处理稀疏数据的编码技术,其主要应用于信息传输、存储和处理等领域。稀疏数据是指数据中大部分元素为零或近似于零的数据,例如文本、图像、音频、视频等。稀疏编码的核心思想是将稀疏数据表示为非零元素和它们对应的位置信息,从而减少存储空间和计算复杂度。稀疏编码的研究起源于1990年代,随着大数据时代的到来,稀疏编码技术的应用范围和影响力不断扩大。目前,稀疏编码已经成为计算...

EasyGBS国标流媒体服务器GB28181国标方案安装使用文档-程序员宅基地

文章浏览阅读217次。EasyGBS - GB28181 国标方案安装使用文档下载安装包下载,正式使用需商业授权, 功能一致在线演示在线API架构图EasySIPCMSSIP 中心信令服务, 单节点, 自带一个 Redis Server, 随 EasySIPCMS 自启动, 不需要手动运行EasySIPSMSSIP 流媒体服务, 根..._easygbs-windows-2.6.0-23042316使用文档

【Web】记录巅峰极客2023 BabyURL题目复现——Jackson原生链_原生jackson 反序列化链子-程序员宅基地

文章浏览阅读1.2k次,点赞27次,收藏7次。2023巅峰极客 BabyURL之前AliyunCTF Bypassit I这题考查了这样一条链子:其实就是Jackson的原生反序列化利用今天复现的这题也是大同小异,一起来整一下。_原生jackson 反序列化链子

一文搞懂SpringCloud,详解干货,做好笔记_spring cloud-程序员宅基地

文章浏览阅读734次,点赞9次,收藏7次。微服务架构简单的说就是将单体应用进一步拆分,拆分成更小的服务,每个服务都是一个可以独立运行的项目。这么多小服务,如何管理他们?(服务治理 注册中心[服务注册 发现 剔除])这么多小服务,他们之间如何通讯?这么多小服务,客户端怎么访问他们?(网关)这么多小服务,一旦出现问题了,应该如何自处理?(容错)这么多小服务,一旦出现问题了,应该如何排错?(链路追踪)对于上面的问题,是任何一个微服务设计者都不能绕过去的,因此大部分的微服务产品都针对每一个问题提供了相应的组件来解决它们。_spring cloud

Js实现图片点击切换与轮播-程序员宅基地

文章浏览阅读5.9k次,点赞6次,收藏20次。Js实现图片点击切换与轮播图片点击切换<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title></title> <script type="text/ja..._点击图片进行轮播图切换

tensorflow-gpu版本安装教程(过程详细)_tensorflow gpu版本安装-程序员宅基地

文章浏览阅读10w+次,点赞245次,收藏1.5k次。在开始安装前,如果你的电脑装过tensorflow,请先把他们卸载干净,包括依赖的包(tensorflow-estimator、tensorboard、tensorflow、keras-applications、keras-preprocessing),不然后续安装了tensorflow-gpu可能会出现找不到cuda的问题。cuda、cudnn。..._tensorflow gpu版本安装

随便推点

物联网时代 权限滥用漏洞的攻击及防御-程序员宅基地

文章浏览阅读243次。0x00 简介权限滥用漏洞一般归类于逻辑问题,是指服务端功能开放过多或权限限制不严格,导致攻击者可以通过直接或间接调用的方式达到攻击效果。随着物联网时代的到来,这种漏洞已经屡见不鲜,各种漏洞组合利用也是千奇百怪、五花八门,这里总结漏洞是为了更好地应对和预防,如有不妥之处还请业内人士多多指教。0x01 背景2014年4月,在比特币飞涨的时代某网站曾经..._使用物联网漏洞的使用者

Visual Odometry and Depth Calculation--Epipolar Geometry--Direct Method--PnP_normalized plane coordinates-程序员宅基地

文章浏览阅读786次。A. Epipolar geometry and triangulationThe epipolar geometry mainly adopts the feature point method, such as SIFT, SURF and ORB, etc. to obtain the feature points corresponding to two frames of images. As shown in Figure 1, let the first image be ​ and th_normalized plane coordinates

开放信息抽取(OIE)系统(三)-- 第二代开放信息抽取系统(人工规则, rule-based, 先抽取关系)_语义角色增强的关系抽取-程序员宅基地

文章浏览阅读708次,点赞2次,收藏3次。开放信息抽取(OIE)系统(三)-- 第二代开放信息抽取系统(人工规则, rule-based, 先关系再实体)一.第二代开放信息抽取系统背景​ 第一代开放信息抽取系统(Open Information Extraction, OIE, learning-based, 自学习, 先抽取实体)通常抽取大量冗余信息,为了消除这些冗余信息,诞生了第二代开放信息抽取系统。二.第二代开放信息抽取系统历史第二代开放信息抽取系统着眼于解决第一代系统的三大问题: 大量非信息性提取(即省略关键信息的提取)、_语义角色增强的关系抽取

10个顶尖响应式HTML5网页_html欢迎页面-程序员宅基地

文章浏览阅读1.1w次,点赞6次,收藏51次。快速完成网页设计,10个顶尖响应式HTML5网页模板助你一臂之力为了寻找一个优质的网页模板,网页设计师和开发者往往可能会花上大半天的时间。不过幸运的是,现在的网页设计师和开发人员已经开始共享HTML5,Bootstrap和CSS3中的免费网页模板资源。鉴于网站模板的灵活性和强大的功能,现在广大设计师和开发者对html5网站的实际需求日益增长。为了造福大众,Mockplus的小伙伴整理了2018年最..._html欢迎页面

计算机二级 考试科目,2018全国计算机等级考试调整,一、二级都增加了考试科目...-程序员宅基地

文章浏览阅读282次。原标题:2018全国计算机等级考试调整,一、二级都增加了考试科目全国计算机等级考试将于9月15-17日举行。在备考的最后冲刺阶段,小编为大家整理了今年新公布的全国计算机等级考试调整方案,希望对备考的小伙伴有所帮助,快随小编往下看吧!从2018年3月开始,全国计算机等级考试实施2018版考试大纲,并按新体系开考各个考试级别。具体调整内容如下:一、考试级别及科目1.一级新增“网络安全素质教育”科目(代..._计算机二级增报科目什么意思

conan简单使用_apt install conan-程序员宅基地

文章浏览阅读240次。conan简单使用。_apt install conan