欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 金融 > 容器docker入门学习

容器docker入门学习

2025/4/19 17:13:50 来源:https://blog.csdn.net/m0_52165864/article/details/147297124  浏览:    关键词:容器docker入门学习

这里写目录标题

  • 容器
    • 容器的软件厂商
  • docker
    • docker引擎
  • 虚拟化
    • 虚拟化技术
  • docker安装详解
    • 1、安装检查
    • 2、安装yum相关的工具
    • 3、安装docker-ce软件
    • 4、查看docker版本
    • 5、启动docker服务
    • 6、设置docker开机启动
    • 7、查看有哪些docker容器运行进程
    • 8、查看容器里有哪些镜像
    • 9、下载nginx软件
    • 10、启动一个docker容器的命令
    • 11、启动一个为sc-nginx的容器
    • 12、查看防火墙的设置
    • 13、防火墙nat详解
    • 14、nginx访问测试

容器

轻量级的虚拟机,更加节省资源(cpu、内存、磁盘、带宽等)的虚拟机。
优点:省钱、成本低、速度更加快,扩展性更加强。serverless。

容器的软件厂商

① docker:提供容器技术的软件;
② k8s:kubernetes是容器集群管理软件,可以管理很多台服务器上的docker启动的容器。可以实现容器的分布式管理,综合很多容器的软件。k8s也是一个软件,用来管理多台服务器上的docker容器的。容器集群编排工具。

docker

docker是一个轻量级、可移植的虚拟化技术,通过容器化技术实现应用程序的打包、运输和运行。
docker
在这里插入图片描述

container集装箱一个封闭的空间,里面可以运行我们的程序。
1、集装箱container
集装箱:存放货物的地方
在这里插入图片描述
有隔离作用:靠Linux内核来实现的。一个进程对应一个容器。
2、what a container
a standard unit of software。
1、docker的框架:一个真实的机器里面装一个linux系统,系统里面装docker,docker里面再装容器,每个容器里面装一个服务。
在这里插入图片描述
3、docker和容器的区别
docker都是用来管理容器的一个软件。

docker引擎

Docker引擎是一种开源容器化技术,用于构建和容器化应用程序。Docker引擎充当客户端-服务器应用程序,具有:
① 具有长时间运行的守护进程dockerd的服务器。
② 指定程序可用于与Docker守护程序通信和指示docker守护程序的接口的API。
③ 命令行界面(CLI)客户端泊坞窗。

CLI使用Docker API通过脚本或直接CLI命令来控制Docker守护程序或与Docker守护程序交互。许多其他Docker应用程序使用底层API和CLI。守护程序创建和管理Docker对象,例如镜像、容器、网络和卷。

虚拟化

虚拟化virtualization:模拟出来的,不是物理的,算真的。
容器技术:container,存放东西的地方。容纳别的东西的器皿。
docker,containerd,k8s等。

虚拟化技术

VMware:workstation :入门级的产品
docker:容器技术的经典代表。
CNF 云原生基金会:Google Redhat ibm等:K8S(kubernetes):containerd(容器运行时软件)
docker是容器运行时软件----容器软件
k8s是管理容器运行时的软件(docker、containerd、rki等)—k8s理解为管理docker集群的软件。
k8s是建立再docker上的。
docker和k8s都是使用go语言开发的
只要是与k8s相关的技术都叫云原生相关的技术,容器理解为一个虚拟机,虚拟机是不是运行软件?

docker安装详解

安装具体流程可以参考之前的文章,这里做个大概的安装流程介绍:
docker安装详细教程

1、安装检查

卸载原来安装过的docker,如果没有安装的就不用进行卸载

sudo yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine

2、安装yum相关的工具

下载docker-ce.repo文件

yum install -y yum-utils
yum-config-manager \--add-repo \https://download.docker.com/linux/centos/docker-ce.repo

下载docker-ce.repo文件做个文件存在/etc/yum.repo.d

3、安装docker-ce软件

container engine:容器引擎
docker是一个容器管理的软件
docker-ce:是服务器端软件 server
docker-ce-cli:是客户端软件 client
docker-compose-plugin

yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin -y

4、查看docker版本

docker --version

[root@sc-master shell]# docker --version
Docker version 20.10.17, build 100c701

5、启动docker服务

systemctl start docker

systemctl start docker

6、设置docker开机启动

systemctl enable docker

systemctl enable docker

1个docker 启动的每一个容器的背后就是一个linux进程

7、查看有哪些docker容器运行进程

docker ps

[root@sc-master shell]# docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS  

8、查看容器里有哪些镜像

docker images --images 镜像,镜像里面包含了我们需要的软件的代码和基础环境。

[root@sc-master shell]# docker images
REPOSITORY    TAG       IMAGE ID       CREATED         SIZE
hello-world   latest    feb5d9fea6a5   11 months ago   13.3kB

9、下载nginx软件

docker pull nginx

[root@sc-master shell]# docker images 查看nginx镜像软件
REPOSITORY    TAG       IMAGE ID       CREATED         SIZE
nginx         latest    2b7d6430f78d   2 days ago      142MB
hello-world   latest    feb5d9fea6a5   11 months ago   13.3kB

10、启动一个docker容器的命令

docker run
启动一个容器,可以理解为开启一台虚拟机,相当于将nginx放入容器中进行运行,这样就可以限制其他的cpu资源。

11、启动一个为sc-nginx的容器

docker run -d -p 8090:80 --name sc-nginx nginx

[root@sc-master shell]# docker run -d -p 8090:80 --name sc-nginx nginx
1d3e0fdfaf8f971523ce5b539dda1c6c8c609c8e88c29361ed77e2f778e376e0

注解:
-d:在后台运行demo 、daemon守护进程
-p 8090:80 指定端口映射 DNAT:访问本机的8090端口,转发到docker容器的80端口。
–name sc-nginx 指定容器的名字为:sc-nginx
nginx是镜像的名字

12、查看防火墙的设置

iptables -t nat -L

[root@sc-master shell]# iptables -t nat -L
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination         
DOCKER     all  --  anywhere             anywhere             ADDRTYPE match dst-type LOCAL
DNAT       tcp  --  anywhere             anywhere             tcp dpt:8090 to:172.17.0.2:80

查看容器启动的进程:

[root@sc-master shell]# docker ps
CONTAINER ID   IMAGE     COMMAND                  CREATED         STATUS         PORTS                                   NAMES
1d3e0fdfaf8f   nginx     "/docker-entrypoint.…"   7 minutes ago   Up 7 minutes   0.0.0.0:8090->80/tcp, :::8090->80/tcp   sc-nginx

13、防火墙nat详解

图片理解:使用了nat功能,用户要去访问:
在这里插入图片描述
docker0:是宿主机与其他容器之间进行通信的网关,也就是lan口。

14、nginx访问测试

然后去客户机上能否访问,访问宿主机的8090端口,去浏览器上输入:http://宿主机ip地址:8090/
我的是:http://192.168.2.152:8090/
在这里插入图片描述
如果因为镜像没有访问到的话,可以先关闭防火墙和重启docker服务进行解决,如果重启docker服务的话,可能会导致之前的镜像停止,所以先查看所有的容器,包括停止的,然后再启动已经停止的容器。
1、关闭防火墙:

service firewalld stop

2、重启docker服务

service docker restart 

3、查看所有的容器,包括已经停止的

docker ps -a

4、启动已经停止的容器

docker start sc-nginx

5、再查看是否已经启动成功

docker ps

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词