Docker篇之二容器镜像使用操作+容器内部署nginx服务
一、docker镜像使用操作
1.1 默认从官方dockerhub仓库查询镜像
[root@cka-docker ~]# docker search centos #建议下载offcial官方镜像,安全性高

镜像源在仓库的名字、描述信息、星标、是否是官方、自动构建
1.2 下载镜像
[root@cka-docker ~]# docker pull centos

1.3 查看本地镜像
[root@cka-docker ~]# docker images

1.4 把本地的镜像做成离线压缩包,方便在其他机器上直接使用
[root@cka-docker ~]# docker save -o centos.tar.gz centos

1.5 删除本地镜像
[root@cka-docker ~]# docker rmi -f centos 参数rm:删除,i:指镜像,-f:强制force

1.6 在其目录下,解压刚刚的离线压缩包centos.tar.gz。
[root@cka-docker ~]# docker load -i centos.tar.gz

二、docker容器使用操作
2.1 交换式启动--启动容器则进入,退出出则容器关闭。
[root@cka-docker ~]# docker run --name=centos-1 -ti centos /bin/bash

参数: --name= 后跟容器的名字;-t (terminal终端);-i (interactive交互式) ; /bin/bash 进入容器运行的第一个命令;
2.2 守护进程式启动--启动
[root@cka-docker ~]# docker run --name=centos-2 -td centos

参数: -d 在后台运行docker。退出容器时也不关闭容器;
2.2.1 查看运行的容器、所有的容器
[root@cka-docker ~]# docker ps #查看正在运行的容器
[root@cka-docker ~]# docker ps -a #查看所有的容器,包括运行、退出的

2.2.2 停止容器、启动容器、进入容器
[root@cka-docker ~]# docker stop centos-2 #停止容器
[root@cka-docker ~]# docker start centos-2 #启动容器
[root@cka-docker ~]# docker exec -ti centos-2 /bin/bash #进入容器,没指定用户,默认以root进入

2.2.3 删除容器
[root@cka-docker ~]# docker rm -f centos-1 #删除centos-1容器

2.2.4 获取docker命令的帮助手册
[root@cka-docker ~]# docker --help
[root@cka-docker ~]# man docker
[========]
三、docker容器内部署nginx服务
3.1 以守护进程方式,基于centos镜像,启动一个名为nginx的容器。
[root@cka-docker ~]# docker run --name nginx -td -p 80 centos
参数:-p 容器内指定端口80.随机映射到本地没用过的端口,如49155

3.2 进入nginx容器中,查看容器内分配的ip地址
[root@cka-docker ~]# docker exec -ti nginx /bin/bash #进入容器
[root@6cac40258c0e /]# ip addr #查看容器的地址

3.3 容器内验证和本地网络通信是否正常
[root@6cac40258c0e /]# ping 192.168.10.144 #能ping通,网络正常
3.4 从容器内部直接yum安装nginx
[root@6cac40258c0e /]# yum install -y nginx
此时,会报以下错误:
点击查看代码
[root@6cac40258c0e /]# yum install -y nginx
Failed to set locale, defaulting to C.UTF-8 #无法设置区域设置,默认为 C.UTF-8
CentOS Linux 8 - AppStream 63 B/s | 38 B 00:00
Error: Failed to download metadata for repo 'appstream': Cannot prepare internal mirrorlist: No URLs in mirrorlist #无法下载存储库“应用流”的元数据:无法准备内部镜像列表:镜像列表中没有 URL
①看到上面有CentOS Linux 8 - AppStream ,看一下nginx容器使用的centos镜像的版本
[root@6cac40258c0e /]# cat /etc/redhat-release

因为centos8在2021年停止服务。所以修改centos中的文件内容即可。
②在nginx容器内进行操作--这个是临时解决。容器删除后,下次从centos镜像创建的容器还会存在这个问题
[root@6e8aee4f0a4f /]# cd /etc/yum.repos.d/
[root@6e8aee4f0a4f yum.repos.d]# sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-*
[root@6e8aee4f0a4f yum.repos.d]# sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-*

③继续在容器内安装nginx,和文本编辑器
[root@6e8aee4f0a4f yum.repos.d]# yum -y install nginx #此时就可以进行下去了
[root@27dac7464ba1 yum.repos.d]# yum install vim-enhanced -y #安装vim编辑器
③-1容器内,在/var/目录下,创建/var/www/html/目录
[root@6e8aee4f0a4f var]# mkdir -p /var/www/html/
③-2容器内,在/var/www/html/目录下,创建index.html页面:
[root@27dac7464ba1 yum.repos.d]# cd /var/www/html/ #进入html目录
[root@27dac7464ba1 html]# vim index.html #创建index.html文件
点击查看index.html文件中的代码
<html>
<head>
my is head
</head>
<body>
my is body
</body>
</html>
③-3容器内,修改原nginx的配置文件中root的路径,使其指向刚刚创建的index.html文件路径
[root@27dac7464ba1 html]# vim /etc/nginx/nginx.conf


③-4容器内,修改后启动nginx
[root@27dac7464ba1 html]# /usr/sbin/nginx
[root@27dac7464ba1 html]# /usr/sbin/nginx -t #测试下语法是否有错误

③-5容器外,另开窗口,查看nginx容器运行情况
[root@zbox ~]# docker ps | grep nginx



浙公网安备 33010602011771号