Docker篇之二容器镜像使用操作+容器内部署nginx服务

一、docker镜像使用操作

1.1 默认从官方dockerhub仓库查询镜像

[root@cka-docker ~]# docker search centos #建议下载offcial官方镜像,安全性高
image
镜像源在仓库的名字、描述信息、星标、是否是官方、自动构建

1.2 下载镜像

[root@cka-docker ~]# docker pull centos
image

1.3 查看本地镜像

[root@cka-docker ~]# docker images
image

1.4 把本地的镜像做成离线压缩包,方便在其他机器上直接使用

[root@cka-docker ~]# docker save -o centos.tar.gz centos
image

1.5 删除本地镜像

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

1.6 在其目录下,解压刚刚的离线压缩包centos.tar.gz。

[root@cka-docker ~]# docker load -i centos.tar.gz
image

二、docker容器使用操作

2.1 交换式启动--启动容器则进入,退出出则容器关闭。

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

2.2 守护进程式启动--启动

[root@cka-docker ~]# docker run --name=centos-2 -td centos
image
参数: -d 在后台运行docker。退出容器时也不关闭容器;

2.2.1 查看运行的容器、所有的容器

[root@cka-docker ~]# docker ps #查看正在运行的容器
[root@cka-docker ~]# docker ps -a #查看所有的容器,包括运行、退出的
image

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进入
image

2.2.3 删除容器

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

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
image

3.2 进入nginx容器中,查看容器内分配的ip地址

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

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
image
因为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-*
image
③继续在容器内安装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
image
image
③-4容器内,修改后启动nginx
[root@27dac7464ba1 html]# /usr/sbin/nginx
[root@27dac7464ba1 html]# /usr/sbin/nginx -t #测试下语法是否有错误
image
③-5容器外,另开窗口,查看nginx容器运行情况
[root@zbox ~]# docker ps | grep nginx
image
image

posted @ 2022-06-24 10:03  菜鸟不想早飞  阅读(36)  评论(0)    收藏  举报