容器docker入门学习

容器

轻量级的虚拟机,更加节省资源(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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

欢喜躲在眉梢里-柚子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值