Docker介绍、docker安装以及实现docker的远程管理

1.Docker介绍

1.Docker介绍

        Docker 是⼀个开源的应用容器引擎,可以实现虚拟化,完全采用“沙盒”机制,容器之间不会存在任何接口。

        Docker 通过 Linux Container(容器)技术将任意类型的应用进行包装,变成一种轻量级、标准化、可移植、自管理的组件。在包装应用的同时可连带该应用的依赖和环境一并进行打包,所以可以将这种“包”移植到任意环境去运行,省去兼容性的问题。

2.Docker架构

1. 用docker pull 命令从 hub.docker.com 官网上下载 images (镜像)。

2. 可以用docker save 命令将镜像保存到本地 tar文件,也可以用docker load 命令将本地ta文件导入镜像。

3. 可以用docker build 构建 Dockerfile 镜像。

4. 可以用docker run 和 docker create 将镜像运行成 container (容器),容器内可以安装所需要的 APP。

5. 可以用docker commit/export 将容器做成镜像反复的使用。

6. 可以将自己制作的镜像发布到 hub.docker.com 网站,需要注册账号。

3.Docker 核心概念

1. 镜像(images):一个面向 docker 容器引擎的只读模板,也是容器的基础,类似于 iso 镜像文件。

2. 容器(container):基于镜像所创建的虚拟实例,相当于一个简易的 Linux 环境,可启停,且多个容器之间互相隔离。

3. 仓库(Repository):集中存放 docker 镜像的位置,可使用docker pull 或 push 命令下载或上传到私有或公有仓库。

4. 仓库注册服务器(registry):存放仓库的地方,如果没有私有仓库,则使用公共仓库 docker hub。 

4.Docker特性

1.文件系统隔离:每个进程容器运行在⼀个完全独立的根文件系统里。

2.资源隔离:实现不同的容器的资源配额和调度,cgroup。

3.网络隔离:每个进程容器运行在自己的网络空间,拥有虚拟接口和 IP 地址。

4.日志记录:Docker将收集到和记录的每个进程容器的标准流 (stdout/stderr/stdin),用于实时检索或者批量检索。

5.变更管理:容器文件系统的变更可以提交到新的镜像中,并可重复使用以创建更多的容器。

6.交互式shell:Docker可以分配一个虚拟终端并且关联到任何容器的标准输出上,例如运行一个一次性交互shell。

命令表

2.安装Docker

安装模块

[root@docker0 ~]# cat << EOF | tee /etc/modules-load.d/k8s.conf

> overlay

> br_netfilter

> EOF

overlay

br_netfilter

加载内核模块

[root@docker0 ~]# modprobe overlay

[root@docker0 ~]# modprobe br_netfilter

查看模块

[root@docker0 ~]# cat /etc/modules-load.d/

cat: /etc/modules-load.d/: 是一个目录

[root@docker0 ~]# cat /etc/modules-load.d/k8s.conf

overlay

br_netfilter

[root@docker0 ~]# cat << EOF | tee /etc/sysctl.d/k8s.conf

> net.bridge.bridge-nf-call-iptables = 1

> net.bridge.bridge-nf-call-ip6tables = 1

> net.ipv4.ip_forward = 1

> EOF

net.bridge.bridge-nf-call-iptables = 1

net.bridge.bridge-nf-call-ip6tables = 1

net.ipv4.ip_forward = 1

运行

[root@docker0 ~]# sysctl --system

安装

[root@docker0 ~]# yum install -y yum-utils device-mapper-persistent-data lvm2

提高下载速度

yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

ls /etc/yum.repos.d/

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

启动docker

[root@docker0 ~]# systemctl start docker

[root@docker0 ~]# docker images    #里面空空如也

REPOSITORY   TAG       IMAGE ID   CREATED   SIZE

搜索一下tomcat

[root@docker0 ~]# docker search tomcat

overlay:是一种文件系统层叠技术,常用于容器化平台(比如 Docker)中。它允许将多个文件系统叠加在一起,从而创建一个统一可见的文件系统。通过加载 overlay 模块,可以在 Linux 系统中使用overlay 文件系统,并且它将提供一些额外的功能,比 如联合挂载、文件层叠等。

 br_netfilter:Linux 内核中的提个模块,它提供了桥接设备(bridge device) 和网络过滤器(netfilter) 之间的集成。它允许在桥 接设备上使用网络过滤器功能,如防火墙规则、网络地址转换 (NAT) 等。通过加载 br_netfilter 模块,你可以在 Linux 系统中的桥接设备上应用网络过滤规则对网络流量进行管理和控制。

 device-mapper-persistent-data:一个Linux内核模块,它为 Device Mapper设备提供持久存储功能。DMPD提供了一个用于存储映射关系的数据库,使得Device Mapper可以持久化存储映射数据,以便在系统重新启动后仍然可以恢复之前的映射关系。

 lvm2:Linux系统下的逻辑卷管理工具,LVM 的升级版,它是对磁盘分区进行管理的一种机制,建立在硬盘和分区之上的一个逻辑层,用来提高磁盘管理的灵活性。

3.启动docker镜像

创建文档,设置加速器

[root@docker0 ~]# vim /etc/docker/daemon.json

{

    "registry-mirrors": [

        "https://do.nark.eu.org",

        "https://dc.j8.work",

        "https://docker.m.daocloud.io",

        "https://dockerproxy.com",

        "https://docker.mirrors.ustc.edu.cn",

        "https://docker.nju.edu.cn"

    ]

}

重启docker

[root@docker0 ~]# systemctl restart docker

[root@docker0 ~]# docker info

拉取centos镜像

[root@docker0 ~]# docker pull centos

Using default tag: latest

latest: Pulling from library/centos

a1d0c7532777: Pull complete

Digest: sha256:a27fd8080b517143cbbbab9dfb7c8571c40d67d534bbdee55bd6c473f432b177

Status: Downloaded newer image for centos:latest

docker.io/library/centos:latest

查看镜像

[root@docker0 ~]# docker images

REPOSITORY   TAG       IMAGE ID       CREATED       SIZE

centos       latest    5d0da3dc9764   2 years ago   231MB

运行容器 

[root@docker0 ~]# docker run -it --name=c0 centos:latest /bin/bash

[root@9ef531eeae6c /]#

当前运行的进程

当前位置和启动时间

查看版本

[root@9ef531eeae6c /]#  cat /etc/redhat-release

CentOS Linux release 8.4.2105

配置阿里云的yum仓库

rm -rf /etc/yum.repos.d/*

curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo

yum clean all && yum makecache

安装http

yum -y install httpd

 修改index.html文件

echo "docker_httpd_server" > /var/www/html/index.html

 启动http服务

httpd -k start

宿主机访问 

curl 容器IP地址:80     #ifconfig可获得

退出 

exit

4.docker管理远程管理

1.关闭docker守护进程

2.修改dock daemon的进程文件 

进入配置文件

[root@docker001 ns]# vim /usr/lib/systemd/system/docker.service

 删除相关sock的文件

 再次启动,发现有提示

 3.加载配置文件

systemctl daemon-reload 

systemctl start docker

4.重新开启docker守护进程 

 systemctl daemon-reload

 systemctl start docker

 5.添加配置文件对docker daemon 的配置

通过修改/etc/docker/daemo.json文件对docker守护进程进行配置,默认情况下没有daemon.json文件,在添加daemon之前,先修改。

修改

 重启

 6.实现远程连接

  • 8
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值