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.实现远程连接

相关推荐
YRr YRr18 分钟前
ubuntu ros 解决建完图后 保存的地图非常小的问题
linux·运维·ubuntu
李少兄35 分钟前
Docker 命令总结:从入门到入土
docker·容器·eureka
石牌桥网管1 小时前
DNS Resolver解析服务器出口IP查询
运维·网络·tcp/ip·dns
LKAI.1 小时前
华为路由策略配置
运维·网络·华为·智能路由器
IpdataCloud2 小时前
IP数据云 识别和分析tor、proxy等各类型代理
运维·服务器
想学习java初学者2 小时前
Docker compose部署elasticsearch(单机版)
运维·docker·容器
人类群星闪耀时2 小时前
未来运维的发展趋势:运维领域的新技术与趋势
运维
落非2 小时前
NFS存储基础操作
运维
WEIII3 小时前
MySQL 主从复制原理与搭建实践
后端·mysql·docker
Vanish_ran3 小时前
gitlab与jenkins
运维·gitlab·jenkins