安装docker+docker远程连接

news2025/1/12 0:57:40

docker

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

docker架构

docker核心概念

1. 镜像(images):⼀个⾯向 docker 容器引擎的只读模板,也是容器的基础,类似于 iso 镜像⽂件。
2. 容器(container):基于镜像所创建的虚拟实例,相当于⼀个简易的 Linux 环境,可启停,且多个容器之间互相隔离。
3. 仓库(Repository):集中存放 docker 镜像的位置,可使⽤docker pull 或 push 命令下载或上传到私有或公有仓库。
4. 仓库注册服务器(registry):存放仓库的地⽅,如果没有私有仓库,则使⽤公共仓库 docker hub。

安装docker

配置docker环境

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

 

overlay:是⼀种⽂件系统层叠技术,常⽤于容器化平台(⽐如 Docker)中。
br_netfilter:Linux 内核中的⼀个模块,它提供了桥接设备(bridge device) 和⽹络过滤器(netfilter) 之间的集成。

[root@docker ~]# modprobe overlay     //加载overlay内核模块
[root@docker ~]# modprobe br_netfilter    //加载br_netfilter内核模块
[root@docker ~]# cat /etc/modules-load.d/k8s.conf
overlay
br_netfilter
[root@docker ~]# 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@docker ~]# sysctl --system

 

device-mapper-persistent-data:⼀个Linux内核模块,它为Device Mapper设备提供持久存储功能
lvm2:Linux系统下的逻辑卷管理⼯具

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

添加阿里云yum源:配置一个仓库

[root@docker ~]# yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

[root@docker ~]# yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y 

启动关闭服务:

[root@docker ~]# systemctl start|stop|restart docker.service 

查看镜像:
[root@docker ~]# docker images
REPOSITORY   TAG       IMAGE ID   CREATED   SIZE

配置docker镜像站:

[root@docker ~]# 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"
    ]
}


[root@docker ~]# systemctl restart docker

下载镜像:

[root@docker ~]# 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@docker ~]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
centos       latest    5d0da3dc9764   2 years ago   231MB

 

运行容器

[root@docker ~]# docker run -i -t --name=c0 centos:latest /bin/bash
[root@b9d46da21fe3 /]#

在容器中获取阿里云镜像:

[root@b9d46da21fe3 ~]# curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo
[root@b9d46da21fe3 ~]# yum clean all
[root@b9d46da21fe3 ~]# yum makecache
安装http:

[root@b9d46da21fe3 ~]# yum -y install httpd

[root@b9d46da21fe3 ~]# yum -y install net-tools

修改index文件:

[root@b9d46da21fe3 ~]# echo 'docker_httpd_derver' > /var/www/html/index.html

使用systemctl无法启动httpd,因为容器也就200MB,使用httpd -k start 来启动

[root@b9d46da21fe3 ~]# systemctl start httpd
System has not been booted with systemd as init system (PID 1). Can't operate.
Failed to connect to bus: Host is down
[root@b9d46da21fe3 ~]# httpd -k start
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 172.17.0.2. Set the 'ServerName' directive globally to suppress this message

访问:

[root@b9d46da21fe3 ~]# curl localhost
docker_httpd_derver
只要还没退出容器(退出就没有服务了),宿主机上也可以访问,但在物理机上不能访问

[root@docker ~]# curl http://172.17.0.2
docker_httpd_derver
退出容器:

[root@b9d46da21fe3 ~]# exit   
exit

再次启动:
[root@docker ~]# docker start c0
c0
接入到管理界面,将容器的命令行附加到当前的终端,把c0挂载到当前终端上
[root@docker ~]# docker attach c0
[root@b9d46da21fe3 /]# 


总结:

第一次创建容器

docker  run -it --name=c0  centos:latest  /bin/bash

配置阿里云的yum仓库

yum  clean all &&  yum makecache

yum -y install httpd

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

不能用systemctl start httpd启动服务,因为容器也就200MB

使用 httpd -k start 来启动

在宿主机上访问可以,无法在物理机上访问,也无法ping到这个主机

如果没有指令正在执行,容器就会停止  exit

重新启动容器    docker  start c0

将c0的终端附加到当前的终端     docker attach  c0

此时,httpd服务又停了

期望退出,服务继续运行,一致按住ctrl,先按p,再按q
 

docker远程连接

docker可以远程连接,但必须要有sock文件

方法

1.查看状态

     查看sock套接字:ls -lh /var/run/docker.sock

     要允许远程连接,需要有一个服务,使用端口体现: netstat -lnput | grep 2375

2.设置允许远程管理

     停用docker服务

     修改/usr/lib/systemd/system/docker.service

     修改daemon.json

3.加载daemon.json

      systemctl daemon-reload

4.启动服务

      systemctl  start  docker.service

5.查看状态

     查看sock套接字:ls -lh /var/run/docker.sock

     要允许远程连接,需要有一个服务,使用端口体现: netstat -lnput | grep 2375

6.远程连接

      docker  -Hip地址  -it    -name...      

具体步骤

docker的套接字文件,即使docker是关闭的,sock也在,但这个套接字文件不正确,我们需要修改一些配置

[root@docker ~]# ls -lh /var/run/

srw-rw----.  1 root   docker    0 8月  22 11:22 docker.sock
[root@docker ~]# vim /etc/docker/daemon.json


[root@docker ~]# systemctl start docker
[root@docker ~]# netstat -lnput | grep 2375

[root@docker ~]# ls -lh /var/run/

srw-rw----.  1 root   docker    0 8月  22 11:22 docker.sock

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

把13行dockerd后面的内容删掉:


[root@docker ~]# systemctl stop docker
Warning: docker.service changed on disk. Run 'systemctl daemon-reload' to reload units.
Warning: Stopping docker.service, but it can still be activated by:
  docker.socket

启动失败,需要加载daemon.json:
[root@docker ~]# systemctl start docker.service   
Warning: docker.service changed on disk. Run 'systemctl daemon-reload' to reload units.
Job for docker.service failed because the control process exited with error code. See "systemctl status docker.service" and "journalctl -xe" for details.

加载daemon.json:

[root@docker ~]# systemctl daemon-reload
[root@docker ~]# systemctl start docker.service 
[root@docker ~]# netstat -lnput | grep 2375
tcp6       0      0 :::2375                 :::*                    LISTEN      6831/dockerd        
[root@docker ~]# ls -lh /var/run/
srw-rw----.  1 root   docker    0 8月  22 16:10 docker.sock

远程连接:

[root@docker ~]# docker -H 192.168.118.55 images
REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
centos       latest    5d0da3dc9764   2 years ago   231MB

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2064889.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

89.SAP ABAP数据类型 - 笔记

1.SAP ABAP数据类型 目录 全局类型 标准类型 局部类型 全局类型 数据字典中创建的类型&#xff08;下图中②&#xff09; Data Element 是一个数据的类型&#xff0c;包含了这个元素的寓意属性&#xff0c;它包含了一些非结构化的数据对象的技术属性&#xff08;域&#…

丈夫每次回家打妻子,还在外染上性病,婚后没完整过一个年

丈夫每次回家打妻子&#xff0c;还在外染上性病&#xff0c;婚后没完整过一个年 这是一篇涉离婚纠纷的民事起诉状 &#xff08;范文点评&#xff09; 离 婚 起 诉 状 原告&#xff1a;徐某秀&#xff0c;女&#xff0c;现年48岁&#xff0c;汉族&#xff0c;无业&#xff0c…

记录一次SQL 查询 LEFT JOIN 相关优化

记录一次 LEFT JOIN 相关优化 1 环境说明2 sql 在dm库查询用时30秒2.1 sql 语句2.2 sql 执行计划 3 调优数据库参数3.1 使用hint 调整数据库参数3.2 hint 的执行计划 4 永久修改数据库参数5 参数说明6 达梦数据库学习使用列表 1 环境说明 某项目的公文办公系统在生产环境刚部署…

嵌入式学习----网络通信之TCP协议通信

TCP&#xff08;即传输控制协议&#xff09;&#xff1a;是一种面向连接的传输层协议&#xff0c;它能提供高可靠性通信(即数 据无误、数据无丢失、数据无失序、数据无重复到达的通信) 适用情况&#xff1a; 1. 适合于对传输质量要求较高&#xff0c;以及传输大量数据 的通信。…

系统编程-信号

6 信号与管道 1 目录 6 信号与管道 1 信号 信号的概念 信号的使用 信号的发送 通过函数来实现信号的发送 信号改造函数(重点) 给自己发送信号函数 定时闹钟函数 暂停进程的函数 例题&#xff1a; 代码一&#xff1a; 代码二&#xff1a; 代码分析 -- linux系统下…

ArcGIS热点分析 (Getis-Ord Gi*)——基于地级市尺度的七普人口普查数据的热点与冷点分析

先了解什么是热点分析 ? 热点分析 (Getis-Ord Gi*) 是一种用于空间数据分析的技术&#xff0c;主要用于识别地理空间数据中值的聚集模式&#xff0c;可以帮助我们理解哪些区域存在高值或低值的聚集&#xff0c;这些聚集通常被称为“热点”或“冷点”&#xff0c;Gi* 统计量为…

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

1.Docker介绍 1.Docker介绍 Docker 是⼀个开源的应用容器引擎&#xff0c;可以实现虚拟化&#xff0c;完全采用“沙盒”机制&#xff0c;容器之间不会存在任何接口。 Docker 通过 Linux Container&#xff08;容器&#xff09;技术将任意类型的应用进行包装&#xff0c;变成一…

PhotoZoom Pro 9:AI加持让图像放大革命性飞跃 PhotoZoom下载

全球领先的数字图片和图形缩放软件——PhotoZoom Pro 9&#xff0c;现已正式发布&#xff01;凭借全新的S-Spline Max AI图像缩放技术&#xff0c;PhotoZoom Pro 9在图像放大质量上达到了前所未有的高度。欢迎各位下载和体验最新的9系列版本。 PhotoZoom Pro 9发布 PhotoZoom9…

远端登录基础配置实验

1.作用 方便远程管理&#xff0c;并且传统的console线只能一个用户访问&#xff0c;而远程管理的协议&#xff0c;可以多用户同时登录。 2.基础远程管理方式 Telnet 协议 telnet协议提供了一种通过终端远程登录到服务器的方式&#xff0c;可以远程对设备进行配置和管…

Prometheus 1:安装(Centos7)

1. 同步时间 因Prometheus对时间精度要求高&#xff0c;所以安装前&#xff0c;需要与NTP同步时间&#xff1a; #设置系统显示时区为 亚洲上海 timedatectl set-timezone Asia/Shanghai#同步当地时间 ntpdate -u cn.pool.ntp.org 2. 同步时间后&#xff0c;从官网下载Prometh…

《Web项目跨域请求后端Api设置Cookie失败问题?》

问题描述&#xff1a; 在web项目中跨域请求api时&#xff0c;api登录成功后需要向域名中设置cookie实现在两个域名下共享&#xff0c;但是登录接口返回成功&#xff0c;响应头中也有set-cookie&#xff0c;实际却无法设置到cookie中… web项目访问时的域名https://b.com/ api所…

解决在IIS下typecho访问网址为localhost的问题

如何在IIS下为typecho开启伪静态 布署好typecho发现访问的地址是这样的 默认的访问地址可以看出是一个php的动态页面&#xff0c;通过配置&#xff0c;可以让地址看起来像是一个静态页面。 开启伪静态需要以下两个步骤&#xff1a; 1、增加IIS Rewrite模块重写规则 2、到typ…

牛客网NC1大数加法

因为要计算的是两个很大很大的数&#xff0c;假设计算出来的数据大于整型的最大值&#xff0c;此时就会出现问题。所以要换个方法来解决问题。 我们应该以字符串的形式来读取两个正整数&#xff0c;并且返回二者相加的结果 我们应该从大数的个位开始&#xff0c;逐级的向上相…

海康VisionMaster使用学习笔记13-串口通信

测试工具 协议介绍 串口在VM中的使用 1. RS232信号线定义 2. RS485信号线定义 3. 创建串口连接 4. 测试VM中串口接收数据

Java Programming Examples

Java Programming Examples Example - Environment How to compile a java file? How to debug a java file? How to set classpath? java -cp java -classpathHow to view current classpath? windows C:> echo %CLASSPATH%linux echo $CLASSPATHHow to set dest…

cbsd 设置网络问题留档

cbsd创建或导入虚拟机&#xff0c;网络不通。使用bridge一直不通&#xff0c;后来是通过设立VALENAT才调通的。 cbsd里网卡设置&#xff0c;里面可以设置网络的上一级 默认是auto 这里选bridge1 试试 失败 选tap1 试试 网络还是不通&#xff0c;但是好消息&#xff0c;是能…

element 使用printJS调用打印功能

1.安装依赖 npm install print-js --save 2.在main.js中全局引用 import printJS from print-js; 3.在页面中使用 <el-button type"success" plain icon"Printer" :disabled"single" click"handlePrint">打印</el-button…

VBA技术资料MF188:将Txt文件转换成Html文件

我给VBA的定义&#xff1a;VBA是个人小型自动化处理的有效工具。利用好了&#xff0c;可以大大提高自己的工作效率&#xff0c;而且可以提高数据的准确度。“VBA语言専攻”提供的教程一共九套&#xff0c;分为初级、中级、高级三大部分&#xff0c;教程是对VBA的系统讲解&#…

03:电容的充放电特性及应用举例

1.电容的基本特性&#xff1a;电容两端的电压不能突变 2.影响电容两端电压的参数&#xff1a;整个回路中电阻&#xff0c;电容大小 3.如何计算电容的电压变化时间&#xff1f; τRC R1k C1uF 则得到τ1ms的时间 应用&#xff1a;芯片使能延时

测试一组图像生成#Mixlab的异形头

“异形头”或“物体头” 通常指的是一种艺术或设计中的概念&#xff0c;人物的头部被替换为非人体的物体或异形结构。这种设计常见于超现实主义艺术、漫画、动画和游戏中&#xff0c;旨在创造视觉冲击或传达特定的主题和情感。 shadow&#xff1a; 这个概念还蛮有意思的&#x…