docker期末总复习
第一次作业:安装docker
请大家使用阿里云镜像站里的docker-ce源在线部署一个docker引擎,源地址:https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo部署完成后,运行docker version命令,并将命令及运行结果截图到答题区域。
答题步骤:
# 1.安装gcc相关环境(需要确保 虚拟机可以上外网)
yum -y install gcc
yum -y install gcc-c++
# 2.安装需要的软件包
yum install -y yum-utils
# 3.设置镜像仓库
yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo #推荐使用阿里云的,十分的快
# 4.更新yum软件包索引
yum makecache fast
# 5.安装 Docker CE
yum install docker-ce docker-ce-cli containerd.io
# 6.启动 Docker
systemctl start docker
# 7.测试
docker version #查看版本信息
docker run hello-world #拉取镜像
docker images #查看镜像
第二次作业:配置镜像加速器
答题步骤:
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://z2uujcy0.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
第三次作业:常规命令的使用
1、请你将官方镜像nginx:1.18和registry:latest下载到本地,并将命令及运行结果以文本形式提交到答题区域。
#下载nginx:1.18镜像
[root@docker ~]# docker pull nginx:1.18
1.18: Pulling from library/nginx
f7ec5a41d630: Pull complete
0b20d28b5eb3: Pull complete
1576642c9776: Pull complete
c12a848bad84: Pull complete
03f221d9cf00: Pull complete
Digest: sha256:e90ac5331fe095cea01b121a3627174b2e33e06e83720e9a934c7b8ccc9c55a0
Status: Downloaded newer image for nginx:1.18
docker.io/library/nginx:1.18
#下载registry:latest镜像
[root@docker ~]# docker pull registry:latest
latest: Pulling from library/registry
2408cc74d12b: Pull complete
ea60b727a1ce: Pull complete
c87369050336: Pull complete
e69d20d3dd20: Pull complete
fc30d7061437: Pull complete
Digest: sha256:bedef0f1d248508fe0a16d2cacea1d2e68e899b2220e2258f1b604e1f327d475
Status: Downloaded newer image for registry:latest
docker.io/library/registry:latest
2、请使用registry:latest搭建一个本地私有仓库,命名为registry,将本地宿主机的5000端口映射到容器的5000端口上,并将仓库设置为自动启动。请将命令及运行的结果以文本形式提交到答题区域。
#搭建本地私有仓库
[root@docker ~]# docker run -itd --name registry -p 5000:5000 --restart=always registry
23cf09d52cefc7bbeb24dc67452da4b87135b24d950c2d65435372f0bed632cd
#查看当前运行的容器
[root@docker ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
23cf09d52cef registry "/entrypoint.sh /etc…" 8 seconds ago Up 7 seconds 0.0.0.0:5000->5000/tcp, :::5000->5000/tcp registry
3、使用nginx:1.18镜像来启动一个nginx容器,容器命名为nginx-1,并将宿主机的8080端口映射到容器的80端口上,且将宿主机的/opt/nginx目录挂到容器内部nginx默认的主页路径(/usr/share/nginx/html)下,在/opt/nginx下创建一个主页文件index.html,编辑内容hello world,最后请你使用浏览器访问该主页。请将主页以截图形式提交到答题区域。
#启动一个nginx容器
[root@docker ~]# docker run -itd --name nginx-1 -p 8080:80 -v /opt/nginx:/usr/share/nginx/html nginx:1.18
5df1988907ed8fd35405084b456b1f4e8b77e274b934f3fa00fd5c5c667b6499
#查看最后一个容器
[root@docker ~]# docker ps -l
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
5df1988907ed nginx:1.18 "/docker-entrypoint.…" 13 seconds ago Up 12 seconds 0.0.0.0:8080->80/tcp, :::8080->80/tcp nginx-1
第四次作业:镜像的构建
1、请你在本地docker宿主机上加载registry的tar包为registry:latest镜像,并启动为私有仓库容器,将本地宿主机的5000端口映射到容器的5000端口,仓库命名为registry,设置为自启动状态。请将docker ps -l命令及运行结果截图提交到答题区域。
#将tar包加载为镜像
[root@docker ~]# docker load -i registry_latest.tar
d9ff549177a9: Loading layer 4.671MB/4.671MB
f641ef7a37ad: Loading layer 1.587MB/1.587MB
d5974ddb5a45: Loading layer 20.08MB/20.08MB
5bbc5831d696: Loading layer 3.584kB/3.584kB
73d61bf022fd: Loading layer 2.048kB/2.048kB
Loaded image: registry:latest
#查看加载后的镜像
[root@docker ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
registry latest f32a97de94e1 3 years ago 25.8MB
#创建私有仓库
[root@docker ~]# docker run -itd --name registry --restart=always -p 5000:5000 registry:latest
72e407f423a2e8609ac1bd73fe499558fc5eae87ff5a6bdba0096ff848ee69ba
#查看最后一个容器
[root@docker ~]# docker ps -l
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
72e407f423a2 registry:latest "/entrypoint.sh /etc…" 10 seconds ago Up 9 seconds 0.0.0.0:5000->5000/tcp, :::5000->5000/tcp registry
2、下载官方的centos:7镜像,将该镜像上传到registry仓库。请将关键命令及运行结果以文本形式提交到答题区域。
#下载centos:7镜像
[root@docker ~]# docker pull centos:7
7: Pulling from library/centos
2d473b07cdd5: Pull complete
Digest: sha256:c73f515d06b0fa07bb18d8202035e739a494ce760aa73129f60f4bf2bd22b407
Status: Downloaded newer image for centos:7
docker.io/library/centos:7
#添加
[root@docker ~]# vim /etc/docker/daemon.json
{
"insecure-registries":["http://docker:5000"],
"registry-mirrors": ["https://z2uujcy0.mirror.aliyuncs.com"]
}
#给镜像打标签
[root@docker ~]# docker tag eeb6ee3f44bd docker:5000/centos:7
#推送镜像
[root@docker ~]# docker push docker:5000/centos:7
The push refers to repository [docker:5000/centos]
174f56854903: Pushed
7: digest: sha256:dead07b4d8ed7e29e98de0f4504d87e8880d4347859d839686a31da35a3b532f size: 529
3、在远程docker主机上下载registry中的centos:7镜像,将该镜像运行为一个容器,命名为centos-7,进入容器安装net-tools工具,实现netstat命令的自由使用,并将该容器打包封装为新的镜像,命名为centos:net,重新上传至registry。请将关键命令及运行结果以文本形式提交到答题区域。
#在远程主机上(另外一台虚拟机)下载centos:7镜像
#注意:在另外一台虚拟机上需要配置
[root@docker-2 ~]# cat /etc/docker/daemon.json
{
"insecure-registries":["http://docker:5000"],
"registry-mirrors": ["https://z2uujcy0.mirror.aliyuncs.com"]
}
# 下载
[root@docker-2 ~]# docker pull docker:5000/centos:7
7: Pulling from centos
2d473b07cdd5: Pull complete
Digest: sha256:dead07b4d8ed7e29e98de0f4504d87e8880d4347859d839686a31da35a3b532f
Status: Downloaded newer image for docker:5000/centos:7
docker:5000/centos:7
#运行为容器
[root@docker-2 ~]# docker run -itd --name centos-7 docker:5000/centos:7
3e9f48cf0922233e1c00a9f740d4f89a33a894bbfe8b4da663282d99fd5f0034
#进入容器安装
[root@docker-2 ~]# docker exec -it 3e9f48cf0922 /bin/bash
[root@3e9f48cf0922 /]# yum -y install net-tools
#测试
[root@3e9f48cf0922 /]# netstat -pant
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 172.17.0.2:43496 39.155.141.16:80 TIME_WAIT -
#构建成新的镜像
[root@docker-2 ~]# docker commit -a "centos+net" -m "my centos" 3e9f48cf0922 centos:net
sha256:c321d79ea3a414dc243d11b8db6f0dd3afdc19b792d90babc5c1b07958be7163
#查看构建后的镜像
[root@docker-2 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos net c321d79ea3a4 29 seconds ago 375MB
docker:5000/centos 7 eeb6ee3f44bd 8 months ago 204MB
#给新的镜像打标签
[root@docker-2 ~]# docker tag c321d79ea3a4 docker:5000/centos:net
#推送镜像到本地仓库
[root@docker-2 ~]# docker push docker:5000/centos:net
The push refers to repository [docker:5000/centos]
e605f07b283c: Pushed
174f56854903: Layer already exists
net: digest: sha256:e5c917ae974661693b9d2526519aca6306aaec16c120201f73b02791058bf1b3 size: 741
4、在本地docker宿主机上,下载registry中的centos:net镜像,并将其保存为tar包。请将关键命令及运行结果以文本形式提交到答题区域。
#在本地仓库下载centos:net
[root@docker ~]# docker pull docker:5000/centos:net
net: Pulling from centos
590abad97a19: Pull complete
Digest: sha256:e5c917ae974661693b9d2526519aca6306aaec16c120201f73b02791058bf1b3
Status: Downloaded newer image for docker:5000/centos:net
docker:5000/centos:net
[root@docker ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker:5000/centos net c321d79ea3a4 2 minutes ago 375MB
centos 7 eeb6ee3f44bd 8 months ago 204MB
docker:5000/centos 7 eeb6ee3f44bd 8 months ago 204MB
registry latest f32a97de94e1 3 years ago 25.8MB
# 保存为tar包
[root@docker ~]# docker save -o centos_net.tar docker:5000/centos:net
[root@docker ~]# ls
anaconda-ks.cfg centos_net.tar original-ks.cfg registry_latest.tar
5、在本地docker宿主机上,将registry中的centos:net镜像运行为容器,命名为centos-net,并在该容器中,通过/etc/hosts文件修改本容器主机IP映射为centos-net,然后将该容器导出为一个tar包。请将关键命令及运行结果以文本形式提交到答题区域。
[root@docker ~]# docker run -itd --name centos-net docker:5000/centos:net
6792fe46e9d1516db221d7cea8b75ce70d06a6907f91a77f333889514c4d9836
[root@docker ~]# docker ps -l
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
6792fe46e9d1 docker:5000/centos:net "/bin/bash" 16 seconds ago Up 15 seconds centos-net
[root@docker ~]# docker exec -it 6792fe46e9d1 /bin/bash
[root@894552476d79 /]# vi /etc/hosts
[root@894552476d79 /]# cat /etc/hosts
[root@6792fe46e9d1 /]# cat /etc/hosts
127.0.0.1 localhost
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
172.17.0.3 centos-net
# 将该容器导出为一个tar包
[root@docker ~]# docker export -o centos-net_hosts.tar 6792fe46e9d1
[root@docker ~]# ls
anaconda-ks.cfg centos-net_hosts.tar original-ks.cfg
centos-net_hosts centos_net.tar registry_latest.tar
第五次作业:使用dockerfile构建镜像
1、基于centos7镜像编写dockerfile文件,构建http服务,Dockerfile要求删除镜像的yum源,使用当前docker宿主机系统的yum源文件,完成后安装http服务,此镜像要求暴露80端口,构建的镜像名称为http:v1.0。请将Dockerfile文件内容以文本形式提交到答题区域,并将docker ps -a命令及结果截图到答题区域。
[root@docker dockerfile]# ls
CentOS-Base.repo Dockerfile
[root@docker dockerfile]# cat Dockerfile
FROM centos:7
RUN rm -rf /etc/yum.repos.d/*
COPY CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo
RUN yum makecache
RUN yum -y install httpd
EXPOSE 80
CMD ["-D","FOREGROUND"]
ENTRYPOINT ["/usr/sbin/httpd"]
[root@docker dockerfile]# docker build -t http:v1.0 .
Complete!
Removing intermediate container f98276e24114
---> 4bf94c3ef072
Step 5/5 : EXPOSE 80
---> Running in 75b06b270dce
Removing intermediate container 75b06b270dce
---> c78f6303c1ef
Successfully built c78f6303c1ef
Successfully tagged htttp:v1.0
[root@docker dockerfile]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
htttp v1.0 c78f6303c1ef About a minute ago 407MB
centos 7 eeb6ee3f44bd 8 months ago 204MB
2、基于centos7镜像编写dockerfile文件,构建http服务,Dockerfile要求删除镜像的yum源,使用当前系统的yum源文件,完成后安装http服务,上传index.html文件至镜像内部/var/www/html路径下,index文件内容为“hello apache",此镜像要求暴露80端口,且修改参数HOSTNAME为www.example.com,设置httpd服务为前台启动,构建的镜像名称为http:v2.0。启动该镜像为容器,命名为http-1,将8080端口映射至容器内部80端口,访问8080端口网页。请将Dockerfile文件内容以文本形式提交到答题区域,并将容器主页的浏览器访问结果截图到答题区域。
[root@docker dockerfile]# ls
CentOS-Base.repo Dockerfile index.html
[root@docker dockerfile]# cat Dockerfile
FROM centos:7
RUN rm -rf /etc/yum.repos.d/*
COPY local.repo /etc/yum.repos.d/local.repo
RUN yum makecache
RUN yum -y install httpd
ADD index.html /var/www/html/index.html
EXPOSE 80
ENV HOSTNAME "www.example.com"
CMD ["-D","FOREGROUND"]
ENTRYPOINT ["/usr/sbin/httpd"]
[root@docker dockerfile]# docker build -t http:v2.0 .
Complete!
Removing intermediate container f89d565811ad
---> 401473c880e2
Step 5/8 : ADD index.html /var/www/html
---> 725ae9278c6a
Step 6/8 : EXPOSE 80
---> Running in 18feb6666c30
Removing intermediate container 18feb6666c30
---> b4ce4bf8e3de
Step 7/8 : ENV HOSTNAME "www.example.com"
---> Running in 689325f4fd11
Removing intermediate container 689325f4fd11
---> 2b0abef3c178
Step 8/8 : CMD /usr/sbin/apachectl -D FOREGROUND
---> Running in 54461cffe93d
Removing intermediate container 54461cffe93d
---> c0ea644ea4d5
Successfully built c0ea644ea4d5
Successfully tagged http:v2.0
[root@docker dockerfile]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
http v2.0 c0ea644ea4d5 About a minute ago 407MB
centos 7 eeb6ee3f44bd 8 months ago 204MB
[root@docker dockerfile]# docker run -itd --name http-1 -p 8080:80 -h www.example.com 1db65318e6d9
749e781f99aa1d5f66cf7f4fe01518639d4d0cea1f3e551a6b969a15a7932ab8
# 查看hostname
[root@localhost http2.0]# docker inspect --format="{{.Config.Hostname}}" http-1
www.example.com
第六次作业:使用docker compose编排
请基于教材P140面的内容,使用docker compose技术完成WordPress博客项目的部署。请你将博客系统登录的页面提交到答题区域。
# 安装Docker Compose(将二进制文件docker-compose-linux-x86_64上传到/root下)
[root@docker ~]# ll
total 25376
-rw-r--r--. 1 root root 25968640 Jun 9 12:47 docker-compose-linux-x86_64
# 给二进制文件可执行权限
[root@docker ~]# chmod +x docker-compose-linux-x86_64
# 给二进制文件重命名为docker-compose
[root@docker ~]# mv docker-compose-linux-x86_64 /usr/local/bin/docker-compose
# 查看docker-compose的版本
[root@docker ~]# docker-compose --version
Docker Compose version v2.6.0
#创建文件夹
[root@docker ~]# mkdir wordpress && cd wordpress
#编写yml文件
[root@docker wordpress]# vim docker-compose.yml
version: "3.3"
services:
db:
image: mysql:5.7
volumes:
- db_data:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: 123456
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
wordpress:
depends_on:
- db
image: wordpress:latest
ports:
- "8008:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
WORDPRESS_DB_NAME: wordpress
volumes:
db_data: {}
# 执行yml文件
[root@docker wordpress]# docker-compose up -d
[+] Running 4/4
⠿ Network wordpress_default Created 0.1s
⠿ Volume "wordpress_db_data" Created 0.0s
⠿ Container wordpress-db-1 Started 2.1s
⠿ Container wordpress-wordpress-1 Started
# 查看容器运行结果
[root@docker wordpress]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
ba9f3e8b8ca8 wordpress:latest "docker-entrypoint.s…" About a minute ago Up About a minute 0.0.0.0:8008->80/tcp, :::8008->80/tcp wordpress-wordpress-1
85481c18222c mysql:5.7 "docker-entrypoint.s…" About a minute ago Up About a minute 3306/tcp, 33060/tcp wordpress-db-1
# 浏览器访问:http://IP:8008
容器技术期中考试
第一题
1、为你的docker引擎配置一个镜像加速器。请将涉及到的关键步骤截图到以下空白区域,注意:可截多张图,需包含json文件内容。
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://z2uujcy0.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
第二题
2、拉取镜像httpd:latest。将命令及运行结果截图到以下空白区域。
[root@docker-1 ~]# docker pull httpd:latest
latest: Pulling from library/httpd
a2abf6c4d29d: Pull complete
dcc4698797c8: Pull complete
41c22baa66ec: Pull complete
67283bbdd4a0: Pull complete
d982c879c57e: Pull complete
Digest: sha256:0954cc1af252d824860b2c5dc0a10720af2b7a3d3435581ca788dff8480c7b32
Status: Downloaded newer image for httpd:latest
docker.io/library/httpd:latest
第三题
3、运行一个容器,镜像为httpd,命名为http-1,端口映射到宿主机8080,外挂一个宿主机存储,路径为/opt/docker/http,挂载到容器内部的/usr/local/apache2/htdocs,index.html文件内容为“hello world”。使用宿主机浏览器访问容器http-1主页。将主要命令及运行结果截图到以下空白区域。
[root@docker-1 ~]# docker run -itd --name http-1 -p 8080:80 -v /opt/docker/http:/usr/local/apache2/htdocs httpd
c58ff474b00d1c696b8467c668bc80256e0877a52600d4917154a32312d14774
[root@docker-1 ~]# cd /opt/docker/http/
[root@docker-1 http]# echo "hello world" >> index.html
第四题
4、请你将官方镜像nginx:1.18和registry:latest下载到本地;将主要命令及运行结果截图到以下空白区域。
[root@docker-1 ~]# docker pull nginx:1.18
1.18: Pulling from library/nginx
f7ec5a41d630: Pull complete
0b20d28b5eb3: Pull complete
1576642c9776: Pull complete
c12a848bad84: Pull complete
03f221d9cf00: Pull complete
Digest: sha256:e90ac5331fe095cea01b121a3627174b2e33e06e83720e9a934c7b8ccc9c55a0
Status: Downloaded newer image for nginx:1.18
docker.io/library/nginx:1.18
[root@docker-1 ~]# docker pull registry:latest
latest: Pulling from library/registry
79e9f2f55bf5: Pull complete
0d96da54f60b: Pull complete
5b27040df4a2: Pull complete
e2ead8259a04: Pull complete
3790aef225b9: Pull complete
Digest: sha256:169211e20e2f2d5d115674681eb79d21a217b296b43374b8e39f97fcf866b375
Status: Downloaded newer image for registry:latest
docker.io/library/registry:latest
第五题
5、docker.io/library/registry:latest请使用registry:latest搭建一个本地私有仓库,命名为registry-1,将本地宿主机的5000端口映射到容器的5000端口上,并将仓库设置为自动启动;将主要命令及运行结果截图到以下空白区域。
[root@docker-1 ~]# docker run -itd --name registry-1 -p 5000:5000 --restart=always registry:latest
ca291f766d87da887258396fb33a5e157a365129834748ba01d5bbf4735b4497
第六题
6、将nginx:1.18打上registry仓库标签,并推送到registry上;将主要命令及运行结果截图到以下空白区域。
[root@docker-1 ~]# vim /etc/docker/daemon.json
{
"insecure-registries":["docker:5000"],
"registry-mirrors": ["https://z2uujcy0.mirror.aliyuncs.com"]
}
[root@docker-1 ~]# vim /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.100.100 docker
[root@docker-1 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
httpd latest dabbfbe0c57b 5 months ago 144MB
registry latest b8604a3fe854 7 months ago 26.2MB
nginx 1.18 c2c45d506085 14 months ago 133MB
[root@docker-1 ~]# docker tag c2c45d506085 docker:5000/http:1.18
[root@docker-1 ~]# docker push docker:5000/http:1.18
The push refers to repository [docker:5000/http]
4fa6704c8474: Pushed
4fe7d87c8e14: Pushed
6fcbf7acaafd: Pushed
f3fdf88f1cb7: Pushed
7e718b9c0c8c: Pushed
1.18: digest: sha256:9b0fc8e09ae1abb0144ce57018fc1e13d23abd108540f135dc83c0ed661081cf size: 1362
第七题
7、使用registry的nginx:1.18镜像来启动一个nginx容器,容器命名为nginx-1,并将宿主机的8080端口映射到容器的80端口上,且将宿主机的/opt/nginx目录挂到容器内部nginx默认的主页路径(/usr/share/nginx/html)下,在/opt/nginx下创建一个主页文件index.html,编辑内容hello world,最后请你使用浏览器访问该主页。将主要命令及运行结果截图到以下空白区域。
[root@docker-1 ~]# docker run -itd --name nginx-1 -p 8080:80 -v /opt/nginx:/usr/share/nginx/html nginx:1.18
b349bba195ecb2bbbef3b0dbbd80888fd7e50c1aaac89c5ab5cb13115ec85e2f
[root@docker-1 ~]# cd /opt/nginx/
[root@docker-1 nginx]# echo "hello world" >> index.html
第八题
8、Dockerfile文件构建镜像:
要求:请将docker还原到快照“docker初始化”状态。
1)基于centos7镜像编写dockerfile文件,构建http服务,Dockerfile要求删除镜像的yum源,使用当前系统的yum源文件,完成后安装http服务,此镜像要求暴露80端口,构建的镜像名称为http:v1.0。将dockerfile文件内容及主要命令及结果截图到以下空白区域。
[root@localhost dockerfile]# pwd
/root/dockerfile
[root@localhost dockerfile]# ls
CentOS-Base.repo Dockerfile
[root@localhost dockerfile]# cat Dockerfile
FROM centos:7
RUN rm -rf /etc/yum.repos.d/*
ADD CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo
RUN yum -y install httpd
EXPOSE 80
#构建镜像
[root@localhost dockerfile]# docker build -t http:v1.0 .
Sending build context to Docker daemon 4.608kB
Step 1/5 : FROM centos:7
---> eeb6ee3f44bd
Step 2/5 : RUN rm -rf /etc/yum.repos.d/*
---> Using cache
---> 6a738f7eb728
Step 3/5 : ADD CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo
---> Using cache
---> 36a4b4e31bb8
Step 4/5 : RUN yum -y install httpd
---> Running in 9bed7b4cda90
Complete!
Removing intermediate container 9bed7b4cda90
---> f553995256cb
Step 5/5 : EXPOSE 80
---> Running in 26dcd4748aeb
Removing intermediate container 26dcd4748aeb
---> ed5ab62162a5
Successfully built ed5ab62162a5
Successfully tagged http:v1.0
2)基于centos7镜像编写dockerfile文件,构建http服务,要求使用当前系统 的yum源文件,添加系统的httpd.conf文件,且修改参数ServerName为www.example.com,将镜像中的/data目录设置为挂载点,构建的镜像名称为http:v2.0。将dockerfile文件内容及主要命令及结果截图到以下空白区域。
[root@localhost ~]# yum -y install httpd
[root@localhost ~]# cd /etc/httpd/conf/
[root@localhost conf]# ls
httpd.conf magic
[root@localhost conf]# vim httpd.conf
96 ServerName www.example.com #去掉前面的井号
[root@localhost dockerfile]# pwd
/root/dockerfile
[root@localhost dockerfile]# ls
CentOS-Base.repo Dockerfile httpd.conf
[root@localhost dockerfile]# cat Dockerfile
FROM centos:7
RUN rm -rf /etc/yum.repos.d/*
ADD CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo
RUN yum -y install httpd
VOLUME "[/data]"
[root@localhost dockerfile]# docker build -t http:v2.0 .
Sending build context to Docker daemon 16.9kB
Step 1/5 : FROM centos:7
---> eeb6ee3f44bd
Step 2/5 : RUN rm -rf /etc/yum.repos.d/*
---> Using cache
---> 6a738f7eb728
Step 3/5 : ADD CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo
---> Using cache
---> 36a4b4e31bb8
Step 4/5 : RUN yum -y install httpd
---> Using cache
---> f553995256cb
Step 5/5 : VOLUME "[/data]"
---> Running in c9364931e101
Removing intermediate container c9364931e101
---> 81914cd34784
Successfully built 81914cd34784
Successfully tagged http:v2.0
3)请运行docker images命令,将命令及运行结果截图到以下空白区域。
[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
http v2.0 81914cd34784 About a minute ago 407MB
http v1.0 ed5ab62162a5 16 minutes ago 407MB
centos 7 eeb6ee3f44bd 8 months ago 204MB
本文来自博客园,作者:Cloudservice,转载请注明原文链接:https://www.cnblogs.com/whwh/p/16367803.html,只要学不死,就往死里学!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律