一、使用xserver1节点,自行配置YUM源,安装docker服务(需要用到的包为xserver1节点/root目录下的Docker.tar.gz)。安装完服务后,将registry_latest.tar上传到xserver1节点中并配置为私有仓库。要求启动registry容器时,将内部保存文件的目录映射到外部的/opt/registry目录,将内部的5000端口映射到外部5000端口。依次将启动registry容器的命令及返回结果、执行docker info命令的返回结果以文本形式提交到答题框。
1.配置yum源
[root@localhost ~]# tar -zxvf Docker.tar.gz
[root@localhost ~]# cd /etc/yum.repo.d
[root@localhost yum.repos.d]# mkdir /repo
[root@localhost yum.repos.d]# mv * /repo
[root@localhost yum.repos.d]# vi local.repo
[docker]
baseurl=file:///root/Docker
gpgcheck=0
enabled=1
[c7]
baseurl=file:///cdrom
gpgcheck=0
enabled=1
[root@localhost yum.repos.d]# mkdir /cdrom
[root@localhost yum.repos.d]# mount /dev/sr0 /cdrom
2.升级内核(不升级不能启用路由转发,升级完毕重启虚拟机)
[root@localhost ~]# yum upgrade -y
[root@localhost ~]# reboot
3.关闭防火墙
[root@localhost ~]# systemctl stop firewalld && systemctl disable firewalld
[root@localhost ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
[root@localhost ~]# setenforce 0
4.路由转发
[root@localhost ~]# vi /etc/sysctl.conf
net.ipv4.ip_forward=1
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
[root@localhost ~]# modprobe br_netfilter #没有升级内核此处会not found
[root@localhost ~]# sysctl -p
5.安装docker
[root@localhost ~]# yum install -y yum-utils device-mapper-persistent- data
[root@localhost ~]# yum install docker-ce-18.09.6 docker-ce-cli-18.09.6 containerd.io -y
[root@localhost ~]# systemctl start docker
[root@localhost ~]# systemctl enable docker
[root@localhost ~]# docker info
6.私有仓库
[root@localhost ~]# ./image.sh
[root@localhost ~]# docker run -itd --rm -v /opt/registry:/var/lib/registry -p 5000:5000 registry:latest
[root@localhost ~]# vi /etc/docker/daemon.json
{
#192.168.1.32为xserver1的ip
"insecure-registries": ["192.168.1.32:5000"]
"registry-mirrors": ["https://6pebc8pn.mirror.aliyuncs.com"]
}
[root@localhost ~]# curl 192.168.1.32:5000/v2/_catalog
{"repositories":[]} #返回的结果是这样即连上私有仓库
提交的截图或命令
二、假设当前存在docker镜像mysql:latest,将该镜像上传至本地,然后将该镜像推送至本地仓库(假设仓库地址为192.168.100.100:5000),从私有仓库中拉取mariadb:v10.3.18镜像。运行mysql镜像,要求将内部3306端口映射到外部的13306端口,提供交互接口,后台运行,容器名为xmysql。最后将mysql镜像和创建的容器删除。依次提交操作命令。
1.载入mysql镜像
[root@localhost ~]# ls
anaconda-ks.cfg mysql_image.tar
[root@localhost ~]# docker load -i mysql_image.tar
Loaded image: docker.io/mysql:latest
2.推送至本地仓库
[root@localhost ~]# docker tag mysql:latest 192.168.1.32:5000/mariadb:v10.3.18
[root@localhost ~]# docker push 192.168.1.32:5000/mariadb:v10.3.18
The push refers to a repository [192.168.1.32:5000/mariadb]
d67a9f3f6569: Pushed
fc8a043a3c75: Pushed
118fee5d988a: Pushed
c654c2afcbba: Pushed
1d1f48e448f9: Pushed
aad27784b762: Pushed
0d17fee8db40: Pushed
d7a777f6c3a4: Pushed
a0c2a050fee2: Pushed
0798f2528e83: Pushed
fba7b131c5c3: Pushed
ad6b69b54919: Pushed
v10.3.18: digest: sha256:238cf050a7270dd6940602e70f1e5a11eeaf4e02035f445b7f613ff5e0641f7d size: 2828
[root@localhost ~]# curl 192.168.1.32:5000/v2/_catalog
{"repositories":["mariadb"]}
3.拉取mariadb:v10.3.18镜像(到xserver2节点)
[root@localhost ~]# docker pull 192.168.1.32:5000/mariadb:v10.3.18
Trying to pull repository 192.168.1.32:5000/mariadb ...
v10.3.18: Pulling from 192.168.1.32:5000/mariadb
72a69066d2fe: Pull complete
93619dbc5b36: Pull complete
99da31dd6142: Pull complete
626033c43d70: Pull complete
37d5d7efb64e: Pull complete
ac563158d721: Pull complete
d2ba16033dad: Pull complete
688ba7d5c01a: Pull complete
00e060b6d11d: Pull complete
1c04857f594f: Pull complete
4d7cfa90e6ea: Pull complete
e0431212d27d: Pull complete
Digest: sha256:238cf050a7270dd6940602e70f1e5a11eeaf4e02035f445b7f613ff5e0641f7d
Status: Downloaded newer image for 192.168.1.32:5000/mariadb:v10.3.18
[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
192.168.1.32:5000/mariadb v10.3.18 3218b38490ce 5 months ago 516 MB
[root@localhost ~]#
4.运行mysql实例
[root@localhost ~]# docker run --name xmysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -p 13306:3306 -itd mysql
d9d35a4efe186676bf6d06c2b138484cc14f9561ceb84024e6a0948806929c14
[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d9d35a4efe18 mysql "docker-entrypoint..." 1 second ago Up 1 second 33060/tcp, 0.0.0.0:13306->3306/tcp xmysql
e24de99e4c38 registry:latest "/entrypoint.sh /e..." 2 weeks ago Up 15 minutes 0.0.0.0:5000->5000/tcp registry
5.删除
[root@localhost ~]# docker stop] d9d35a4efe18
docker: 'stop]' is not a docker command.
See 'docker --help'
[root@localhost ~]# docker stop d9d35a4efe18
d9d35a4efe18
[root@localhost ~]# docker rm d9d35a4efe18
d9d35a4efe18
[root@localhost ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e24de99e4c38 registry:latest "/entrypoint.sh /e..." 2 weeks ago Up 17 minutes 0.0.0.0:5000->5000/tcp registry
[root@localhost ~]# docker rmi mysql
Untagged: mysql:latest
Untagged: 192.168.1.32:5000/mariadb@sha256:238cf050a7270dd6940602e70f1e5a11eeaf4e02035f445b7f613ff5e0641f7d
Untagged: docker.io/mysql@sha256:e9027fe4d91c0153429607251656806cc784e914937271037f7738bd5b8e7709
每一步都提交
三、使用xserver1节点,上传nginx_latest.tar到xserver1节点中,然后将该镜像打标签,上传至私有仓库。使用xserver2节点,自行安装docker服务,配置xserver2节点使用xserver1的私有仓库,配置完毕后,在xserver2节点拉取nginx_latest.tar镜像。最后将在xserver2上执行docker images命令返回的结果以文本形式提交到答题框。
1.上传至私有仓库
[root@localhost ~]# docker tag nginx 192.168.1.32:5000/nginx
[root@localhost ~]# docker push 192.168.1.32:5000/nginx
The push refers to a repository [192.168.1.32:5000/nginx]
a059c9abe376: Pull complete
09be960dcde4: Pull complete
18be1897f940: Pull complete
dfe7577521f0: Pull complete
d253f69cb991: Pull complete
fd95118eade9: Pull complete
latest: digest: sha256:b495f952df67472c3598b260f4b2e2ba9b5a8b0af837575cf4369c95c8d8a215 size: 1570
2.拉取nginx镜像
[root@localhost ~]# docker pull 192.168.1.32:5000/nginx
Using default tag: latest
Trying to pull repository 192.168.1.32:5000/nginx ...
latest: Pulling from 192.168.1.32:5000/nginx
214ca5fb9032: Pull complete
66eec13bb714: Pull complete
17cb812420e3: Pull complete
56fbf79cae7a: Pull complete
c4547ad15a20: Pull complete
d31373136b98: Pull complete
Digest: sha256:b495f952df67472c3598b260f4b2e2ba9b5a8b0af837575cf4369c95c8d8a215
Status: Downloaded newer image for 192.168.1.32:5000/nginx:latest
提交的截图或代码
四、假设当前存在docker镜像tomcat:latest,现在将tomcat镜像导出,导出名称为tomcat_images.tar,放在/media目录下,将以上操作命令填入答题框。
1.获取镜像
[root@localhost ~]# docker pull tomcat
Using default tag: latest
Trying to pull repository docker.io/library/tomcat ...
latest: Pulling from docker.io/library/tomcat
e756f3fdd6a3: Pull complete
bf168a674899: Pull complete
e604223835cc: Pull complete
6d5c91c4cd86: Pull complete
5e20d165240e: Pull complete
1334d60df9a8: Pull complete
16c2728dcd90: Pull complete
05288798d23d: Pull complete
c022dc2b2581: Pull complete
d86ac2f896ee: Pull complete
Digest: sha256:b4e84cff017ff5202cb760ccb1373dd950158f926d6afb04bd5e9f7337291501
Status: Downloaded newer image for docker.io/tomcat:latest
2.导出镜像
[root@localhost ~]# docker save tomcat > /media/tomcat_images.tar
[root@localhost ~]# ls /media/
tomcat_images.tar
每一步都提交