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

智能推荐

react学习总结6--构建工具Gulp、Browserify(二)_react gulp-程序员宅基地

文章浏览阅读1k次。react 学习总结–构建工具Gulp、Browserify(二)1.html 文件处理gulp-htmlmin 插件 用于压缩html,可以进行配置,下边是配置信息(选填) var gulp = require('gulp'), htmlmin = require('gulp-htmlmin'); gulp.task('htmlmin', function ()_react gulp

开关电源输入:共模电感,X电容,Y电容,差摸电感理论计算!_共模电感和y电容在滤波方面的区别-程序员宅基地

文章浏览阅读7.6k次,点赞3次,收藏69次。转自:https://mp.weixin.qq.com/s/qp_DSBGKdjNo2-lO2s5v7Q引言在开关电源中,EMI滤波器对共模和差模传导噪声的抑制起着显著的作用。在研究滤波器原理的基础上,探讨了一种对共模、差模信号进行独立分析,分别建模的方法,最后基于此提出了一种EMI滤波器的设计程序。高频开关电源由于其在体积、重量、功率密度、效率等方面的诸多优点,已经被广泛地应用于工业..._共模电感和y电容在滤波方面的区别

IntelliJ IDEA 设置注释模板 (Mac)_mac idea 设置注解格式-程序员宅基地

文章浏览阅读7.9k次。类注释模板设置:点击 preferences ,搜索 File and Code Template ,在 Files tab 页下,选择 Class,在类名上面添加模板:/** * @program ${PROJECT_NAME} * @description: ${TODO} * @author: ${USER} * @create: ${YEAR}/${MONTH}/${DAY}..._mac idea 设置注解格式

sizeof用法 _sizeof(4.0+2)-程序员宅基地

文章浏览阅读2k次。Sizeof用法本文主要包括二个部分,第一部分重点介绍在VC中,怎么样采用sizeof来求结构的大小,以及容易出现的问题,并给出解决问题的方法,第二部分总结出VC中sizeof的主要用法。1、 sizeof应用在结构上的情况请看下面的结构:struct MyStruct{double dda1;char dda;int type};对结构MyStruct采用_sizeof(4.0+2)

阅读小结:Large-Margin Softmax Loss for Convolutional Neural Networks_large-margin softmax loss的代码-程序员宅基地

文章浏览阅读2.2k次,点赞3次,收藏4次。徐博最近一直在看我博客,肯定是想看我什么时候不更新,然后好嘲笑我。当然,不排除徐博已经爱上我的可能。What:改进SoftmaxLoss,显式的控制类内的距离,(不让 已经对的样本score太高,影响训练)可以防止过拟合。回顾SoftmaxLoss:1. Softmax 就是一个把一个向量归一的函数,输出也是向量。在matlab里就3行代码:% X_large-margin softmax loss的代码

后端java解析复杂嵌套json_java 解析复杂类型的json-程序员宅基地

文章浏览阅读6.2k次。其实不是很复杂百度翻译传过来的json数据:{"from":"zh","to":"en","trans_result":[{"src":"高度600米","dst":"Height 600 meters"}]}现在要取出dst对应的值:Height 600 meters String date="{"from":"zh","to":"en","trans_result":[_java 解析复杂类型的json

随便推点

如何高效地从BAM文件中提取fastq-程序员宅基地

文章浏览阅读1.8k次。在一年前,我写过一篇文章,叫做如何从BAM文件中提取fastq,之前也发现了从BAM里面提取Fastq是有些麻烦,只不过最后通过samtools的子命令实现了数据提取,实现功能之后也没有再去思考如何提高效率。最近读到每周文献-190419-植物单细胞BAM重比对以及假基因研究时,发现里面提到了一个工具叫做 bazam, 功能就是提取Fastq文件,文章发表在 Genome Bio..._10x 开发的工具 bamtofastq

中国电信天翼宽带无线路由器设置wifi笔记_中国电信wifi设置时间-程序员宅基地

文章浏览阅读8k次。0x00 前言 还记得电信天翼宽带吗?现在的天翼宽带的终端基本是华为的无限路由了,相信有不少同学在包装了中国电信天翼宽带后,个人申请到一个账号/密码,并且额外缴费得到一个路由器,然后就没有然后了。心里就纳闷,咋上wifi,然后又得另外花钱买个无线路由,然后不知道怎样弄。0x01 电信宽带的路由终端首先电信的华为路由器的底部都会贴有该终端的信息,例如终端登录地址,账号,密码等_中国电信wifi设置时间

让VC编译出来的程序不依赖于msvcr80.dll/msvcr90.dll/msvcr100.dll等文件_编译msvc不依赖msvcr100.dll-程序员宅基地

文章浏览阅读853次。让VC编译出来的程序不依赖于msvcr80.dll/msvcr90.dll/msvcr100.dll等文件正常情况下,当我们用VC编译出一个Console/Win32类型项目的exe程序时(这里暂不考虑MFC程序),会依赖于msvcrxx.dll文件(xx为不同VC对应的版本号,VC2005为80,VC2008为90,VC2010为100),发布程序的时候,就需要把对应的dll也cop_编译msvc不依赖msvcr100.dll

什么是问题?_问题是什么-程序员宅基地

文章浏览阅读4.6k次。今天看到一篇文章,说什么是问题?看到这个标题很好奇。就点进去看了一下。以下是总结和思考。漫漫人生中,我们总会遇到各种各样的问题。那么什么是问题呢?有以下一个定义:问题是目标与现状的差异。解决方案,就是现状到目标的路径。那么,什么是目标呢?目标应该是符合真实的需求。那么,什么是需求呢?需求不仅包含当前这个问题,有时候它更需要考虑到整个系统。打个比方说,有一天某个系统出现了超时问题,..._问题是什么

java中controller,service,serviceImpl,mapper,xml等几个文件的作用理解,以简单的查询为例_serviceimpl类的作用是什么-程序员宅基地

文章浏览阅读5.3w次,点赞59次,收藏278次。说明:最近一周都在写报表,样式很统一,上面是查询条件,下面是查询结果,页面如下图所示。由于要写很多报表,都是重复的工作,所以部门里的小哥哥在写了一个基于node的小程序,直接配置JSON文件,就可以生成报表模板,感觉很强(后面想学习一下)。作为一个优秀的CV工程师(复制粘贴),我也没怎么写前端的工作,直接用生成的模板就好了,但是后台的查询我还是稍微走心的。由于JAVA基础不是很好,总结的可..._serviceimpl类的作用是什么

java开发注释规范,开发人员代码注释规范.doc-程序员宅基地

文章浏览阅读111次。开发人员代码注释规范开发人员代码注释规范Java类版权及代码注释注释示例package java.blah;import java.blah.blahdy.BlahBlah;/** ==========================================================* Version Author Date Des..._huangzhihui java

推荐文章

热门文章

相关标签