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

智能推荐

C#连接OPC C#上位机链接PLC程序源码 1.该程序是通讯方式是CSharp通过OPC方式连接PLC_c#opc通信-程序员宅基地

文章浏览阅读565次。本文主要介绍如何使用C#通过OPC方式连接PLC,并提供了相应的程序和学习资料,以便读者学习和使用。OPC服务器是一种软件,可以将PLC的数据转换为标准的OPC格式,允许其他软件通过标准接口读取或控制PLC的数据。此外,本文还提供了一些学习资料,包括OPC和PLC的基础知识,C#编程语言的教程和实例代码。这些资料可以帮助读者更好地理解和应用本文介绍的程序。1.该程序是通讯方式是CSharp通过OPC方式连接PLC,用这种方式连PLC不用考虑什么种类PLC,只要OPC服务器里有的PLC都可以连。_c#opc通信

Hyper-V内的虚拟机复制粘贴_win10 hyper-v ubuntu18.04 文件拷贝-程序员宅基地

文章浏览阅读1.6w次,点赞3次,收藏10次。实践环境物理机:Windows10教育版,操作系统版本 17763.914虚拟机:Ubuntu18.04.3桌面版在Hyper-V中的刚安装好Ubuntu虚拟机之后,会发现鼠标滑动很不顺畅,也不能向虚拟机中拖拽文件或者复制内容。在VMware中,可以通过安装VMware tools来使物理机和虚拟机之间达到更好的交互。在Hyper-V中,也有这样的工具。这款工具可以完成更好的鼠标交互,我的..._win10 hyper-v ubuntu18.04 文件拷贝

java静态变量初始化多线程,持续更新中_类初始化一个静态属性 为线程池-程序员宅基地

文章浏览阅读156次。前言互联网时代,瞬息万变。一个小小的走错,就有可能落后于别人。我们没办法去预测任何行业、任何职业未来十年会怎么样,因为未来谁都不能确定。只能说只要有互联网存在,程序员依然是个高薪热门行业。只要跟随着时代的脚步,学习新的知识。程序员是不可能会消失的,或者说不可能会没钱赚的。我们经常可以听到很多人说,程序员是一个吃青春饭的行当。因为大多数人认为这是一个需要高强度脑力劳动的工种,而30岁、40岁,甚至50岁的程序员身体机能逐渐弱化,家庭琐事缠身,已经不能再进行这样高强度的工作了。那么,这样的说法是对的么?_类初始化一个静态属性 为线程池

idea 配置maven,其实不用单独下载Maven的。以及设置新项目配置,省略每次创建新项目都要配置一次Maven_安装idea后是不是不需要安装maven了?-程序员宅基地

文章浏览阅读1w次,点赞13次,收藏43次。说来也是惭愧,一直以来,在装环境的时候都会从官网下载Maven。然后再在idea里配置Maven。以为从官网下载的Maven是必须的步骤,直到今天才得知,idea有捆绑的 Maven 我们只需要搞一个配置文件就行了无需再官网下载Maven包以后再在新电脑装环境的时候,只需要下载idea ,网上找一个Maven的配置文件 放到 默认的 包下面就可以了!也省得每次创建项目都要重新配一次Maven了。如果不想每次新建项目都要重新配置Maven,一种方法就是使用默认的配置,另一种方法就是配置 .._安装idea后是不是不需要安装maven了?

奶爸奶妈必看给宝宝摄影大全-程序员宅基地

文章浏览阅读45次。家是我们一生中最重要的地方,小时候,我们在这里哭、在这里笑、在这里学习走路,在这里有我们最真实的时光,用相机把它记下吧。  很多家庭在拍摄孩子时有一个看法,认为儿童摄影团购必须是在风景秀丽的户外,即便是室内那也是像大酒店一样...

构建Docker镜像指南,含实战案例_rocker/r-base镜像-程序员宅基地

文章浏览阅读429次。Dockerfile介绍Dockerfile是构建镜像的指令文件,由一组指令组成,文件中每条指令对应linux中一条命令,在执行构建Docker镜像时,将读取Dockerfile中的指令,根据指令来操作生成指定Docker镜像。Dockerfile结构:主要由基础镜像信息、维护者信息、镜像操作指令、容器启动时执行指令。每行支持一条指令,每条指令可以携带多个参数。注释可以使用#开头。指令说明FROM 镜像 : 指定新的镜像所基于的镜像MAINTAINER 名字 : 说明新镜像的维护(制作)人,留下_rocker/r-base镜像

随便推点

毕设基于微信小程序的小区管理系统的设计ssm毕业设计_ssm基于微信小程序的公寓生活管理系统-程序员宅基地

文章浏览阅读223次。该系统将提供便捷的信息发布、物业报修、社区互动等功能,为小区居民提供更加便利、高效的服务。引言: 随着城市化进程的加速,小区管理成为一个日益重要的任务。因此,设计一个基于微信小程序的小区管理系统成为了一项具有挑战性和重要性的毕设课题。本文将介绍该小区管理系统的设计思路和功能,以期为小区提供更便捷、高效的管理手段。四、总结与展望: 通过本次毕设项目,我们实现了一个基于微信小程序的小区管理系统,为小区居民提供了更加便捷、高效的服务。通过该系统的设计与实现,能够提高小区管理水平,提供更好的居住环境和服务。_ssm基于微信小程序的公寓生活管理系统

如何正确的使用Ubuntu以及安装常用的渗透工具集.-程序员宅基地

文章浏览阅读635次。文章来源i春秋入坑Ubuntu半年多了记得一开始学的时候基本一星期重装三四次=-= 尴尬了 觉得自己差不多可以的时候 就吧Windows10干掉了 c盘装Ubuntu 专心学习. 这里主要来说一下使用Ubuntu的正确姿势Ubuntu(友帮拓、优般图、乌班图)是一个以桌面应用为主的开源GNU/Linux操作系统,Ubuntu 是基于DebianGNU/Linux,支..._ubuntu安装攻击工具包

JNI参数传递引用_jni引用byte[]-程序员宅基地

文章浏览阅读335次。需求:C++中将BYTE型数组传递给Java中,考虑到内存释放问题,未采用通过返回值进行数据传递。public class demoClass{public native boolean getData(byte[] tempData);}JNIEXPORT jboolean JNICALL Java_com_core_getData(JNIEnv *env, jobject thisObj, jbyteArray tempData){ //resultsize为s..._jni引用byte[]

三维重建工具——pclpy教程之点云分割_pclpy.pcl.pointcloud.pointxyzi转为numpy-程序员宅基地

文章浏览阅读2.1k次,点赞5次,收藏30次。本教程代码开源:GitHub 欢迎star文章目录一、平面模型分割1. 代码2. 说明3. 运行二、圆柱模型分割1. 代码2. 说明3. 运行三、欧几里得聚类提取1. 代码2. 说明3. 运行四、区域生长分割1. 代码2. 说明3. 运行五、基于最小切割的分割1. 代码2. 说明3. 运行六、使用 ProgressiveMorphologicalFilter 分割地面1. 代码2. 说明3. 运行一、平面模型分割在本教程中,我们将学习如何对一组点进行简单的平面分割,即找到支持平面模型的点云中的所有._pclpy.pcl.pointcloud.pointxyzi转为numpy

以NFS启动方式构建arm-linux仿真运行环境-程序员宅基地

文章浏览阅读141次。一 其实在 skyeye 上移植 arm-linux 并非难事,网上也有不少资料, 只是大都遗漏细节, 以致细微之处卡壳,所以本文力求详实清析, 希望能对大家有点用处。本文旨在将 arm-linux 在 skyeye 上搭建起来,并在 arm-linux 上能成功 mount NFS 为目标, 最终我们能在 arm-linux 里运行我们自己的应用程序. 二 安装 Sky..._nfs启动 arm

攻防世界 Pwn 进阶 第二页_pwn snprintf-程序员宅基地

文章浏览阅读598次,点赞2次,收藏5次。00为了形成一个体系,想将前面学过的一些东西都拉来放在一起总结总结,方便学习,方便记忆。攻防世界 Pwn 新手攻防世界 Pwn 进阶 第一页01 4-ReeHY-main-100超详细的wp1超详细的wp203 format2栈迁移的两种作用之一:栈溢出太小,进行栈迁移从而能够写入更多shellcode,进行更多操作。栈迁移一篇搞定有个陌生的函数。C 库函数 void *memcpy(void *str1, const void *str2, size_t n) 从存储区 str2 _pwn snprintf

推荐文章

热门文章

相关标签