docker的安装以及docker中nginx配置

news2024/11/26 12:43:54

机器 test3 192.168.23.103

1机器初始化配置

1.1关闭防火墙,清空防火墙规则

systemctl stop firewalld
iptables -F
setenforce 0

1.2部署时间同步

yum install ntp ntpdate -y

1.3安装基础软件包

yum install -y wget net-tools nfs-utils lrzsz gcc gcc-c++ make cmake libxml2-devel openssl-devel curl curl-devel unzip sudo ntp libaio-devel wget vim ncurses-devel autoconf automake zlib-devel python-devel epel-release openssh-server socat ipvsadm conntrack

1.4构建docker-ce源

https://developer.aliyun.com/mirror/
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
sed -i 's+download.docker.com+mirrors.aliyun.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo
yum makecache fast
yum -y install docker-ce
1.5启动docker
systemctl  restart docker && systemctl enable docker

2.docker的配置

2.1要是想要docker能被其他服务器访问,要是想要docker相互之间通信没有问题,需要修改内核参数,开启包转发功能,内核参数修改,br_netfilter 模块用于将桥接流量转发至iptables链,
[root@test3 ~]# modprobe br_netfilter
模块可以通过这个命令看有没有开启
[root@test3 ~]# lsmod |grep br_netfilter
br_netfilter           22256  0 
bridge                151336  1 br_netfilter

[root@test3 ~]# cat > /etc/sysctl.d/docker.conf << EOF
> net.bridge.bridge-nf-call-ip6tables = 1
> net.bridge.bridge-nf-call-iptables = 1 
> net.ipv4.ip_forward = 1
> EOF
具体功能如下
Docker 安装后出现:WARNING: bridge-nf-call-iptables is disabled 的解决办法: 
net.bridge.bridge-nf-call-ip6tables = 1 
net.bridge.bridge-nf-call-iptables = 1

net.ipv4.ip_forward = 1: 
将 Linux 系统作为路由或者 VPN 服务就必须要开启 IP 转发功能。当 linux 主机有多个网卡时一个网卡收
到的信息是否能够传递给其他的网卡 ,如果设置成 1 的话 可以进行数据包转发,可以实现 VxLAN 等功
能。不开启会导致 docker 部署应用无法访问。

使模块生效
[root@test3 ~]#  sysctl -p /etc/sysctl.d/docker.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1


重启后模块失效,下面是开机自动加载模块的脚本 
在/etc/新建 rc.sysinit 文件 
cat /etc/rc.sysinit 
#!/bin/bash 
for file in /etc/sysconfig/modules/*.modules ; do 
[ -x $file ] && $file 
done

cat /etc/sysconfig/modules/br_netfilter.modules 
modprobe br_netfilter 

增加权限
chmod 755 /etc/sysconfig/modules/br_netfilter.modules

这样即使重启也会加载模块 

配置阿里云镜像加速器地址

https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors 

在这里插入图片描述

docker镜像相关的操作

从dockerhub上查找镜像
[root@test3 ~]# docker search centos
NAME                               DESCRIPTION                                     STARS     OFFICIAL
centos                             DEPRECATED; The official build of CentOS.       7721      [OK]
kasmweb/centos-7-desktop           CentOS 7 desktop for Kasm Workspaces            43        
bitnami/centos-base-buildpack      Centos base compilation image                   0         
dokken/centos-7                    CentOS 7 image for kitchen-dokken               10        
dokken/centos-8                    CentOS 8 image for kitchen-dokken               6         
spack/centos7                      CentOS 7 with Spack preinstalled                2         
dokken/centos-6                    EOL: CentOS 6 image for kitchen-dokken          0         
atlas/centos7-atlasos              ATLAS CentOS 7 Software Development OS          3         
ustclug/centos                     Official CentOS Image with USTC Mirror          0         
spack/centos6                      CentOS 6 with Spack preinstalled                1         
dokken/centos-stream-8                                                             5         
eclipse/centos_jdk8                CentOS, JDK8, Maven 3, git, curl, nmap, mc, …   5         
dokken/centos-stream-9                                                             10        
corpusops/centos-bare              https://github.com/corpusops/docker-images/     0         
corpusops/centos                   centos corpusops baseimage                      0         
eclipse/centos_go                  Centos + Go                                     0         
spack/centos-stream                                                                2         
fnndsc/centos-python3              Source for a slim Centos-based Python3 image…   0         
eclipse/centos_spring_boot         Spring boot ready image based on CentOS         0         
openmicroscopy/centos-systemd-ip   centos/systemd with iproute, for testing mul…   0         
eclipse/centos                     CentOS based minimal stack with only git and…   1         
eclipse/centos_nodejs              CentOS based nodejs4 stack                      0         
eclipse/centos_vertx               CentOS + vertx                                  0         
eclipse/centos_wildfly_swarm       CentOS, WildFly, Swarm                          0         
dockette/centos                    My Custom CentOS Dockerfiles                    1         

解释说明
NAME: 镜像仓库的名称
DESCRIPTION:镜像的描述
STARS:类似 github 里面的star,表示点赞,喜欢的意思
OFFICIAL:是否 docker 官方发布

拉取镜像

[root@test3 ~]# docker pull centos

查看有哪些镜像

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

把镜像做成离线压缩包

[root@test3 ~]# ls
anaconda-ks.cfg
[root@test3 ~]# docker save -o centos.tar.gz centos
[root@test3 ~]# ls
anaconda-ks.cfg  centos.tar.gz

解压

[root@test3 ~]# docker load -i centos.tar.gz 
Loaded image: centos:latest

删除镜像

docker rmi -f centos:latest

容器相关的操作

以交互式启动并运行容器
[root@test3 ~]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
centos       latest    5d0da3dc9764   2 years ago   231MB
[root@test3 ~]# docker run --name=hello -it centos /bin/bash
[root@573ed31d77d8 /]# 

#docker run 运行并创建容器
--name 容器的名字
-i 交互式
-t 分配终端
centos:启动docker 需要的镜像
bin/bash 说明你的shell 类型为bash   bash是一种最常用的shell 是大多数 linux 发行版默认的shell 此外还有 c shell 等其他的shell


#在起一个终端看一下   docker ps 是查看正在运行的容器
[root@test3 ~]# docker ps
CONTAINER ID   IMAGE     COMMAND       CREATED         STATUS         PORTS     NAMES
573ed31d77d8   centos    "/bin/bash"   6 seconds ago   Up 5 seconds             hello
CONTAINER ID:容器的id
 IMAGE:容器使用的镜像
 COMMAND:容器运行的命令
 STATUS:容器启动的时间
  PORTS : 容器的名字

#以守护式进程方式启动容器
[root@test3 ~]# docker run --name=hello1 -itd centos /bin/bash
ae2fe03e778aa2fbd0b9ba2ac412ff3b2f17eaf04772028e1ab4670fd9bdd7fe
d 表示后台运行

#进入hello1的容器
[root@test3 ~]# docker exec -it hello1 /bin/bash
[root@ae2fe03e778a /]# 

#我们退出会发现 容器他依然运行
[root@test3 ~]# docker exec -it hello1 /bin/bash
[root@ae2fe03e778a /]# exit
exit
[root@test3 ~]# docker ps
CONTAINER ID   IMAGE     COMMAND       CREATED         STATUS         PORTS     NAMES
ae2fe03e778a   centos    "/bin/bash"   3 minutes ago   Up 3 minutes             hello1
[root@test3 ~]# 

docker ps 会列出正在运行的容器
docker ps -a 会列出正在运行的和已经停止的容器全部都列出来

#查看容器日志
[root@test3 ~]# docker logs hello1
[root@test3 ~]# 


运行和停止容器
[root@test3 ~]# docker stop hello1
hello1
[root@test3 ~]# docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
[root@test3 ~]# docker ps -a
CONTAINER ID   IMAGE     COMMAND       CREATED          STATUS                     PORTS     NAMES
ae2fe03e778a   centos    "/bin/bash"   7 minutes ago    Exited (0) 8 seconds ago             hello1
573ed31d77d8   centos    "/bin/bash"   26 minutes ago   Exited (0) 8 minutes ago             hello
[root@test3 ~]# docker start hello1
hello1
[root@test3 ~]# docker ps
CONTAINER ID   IMAGE     COMMAND       CREATED         STATUS         PORTS     NAMES
ae2fe03e778a   centos    "/bin/bash"   8 minutes ago   Up 2 seconds             hello1
[root@test3 ~]# docker rm -f hello
hello
[root@test3 ~]# docker ps -a
CONTAINER ID   IMAGE     COMMAND       CREATED         STATUS          PORTS     NAMES
ae2fe03e778a   centos    "/bin/bash"   8 minutes ago   Up 48 seconds             hello1

docker部署nginx

[root@test3 ~]# docker run --name nginx -p 80 -itd centos
3bd4aa598dd007dc8aba6f43f67d9bd5610e885b724910679edb2694325c8a78
-p 把容器断端口 随机在物理机映射一个端口

#进入容器
[root@test3 ~]# docker exec -it nginx /bin/bash
[root@3bd4aa598dd0 /]# 
#此时安装你会发现他会报错
[root@3bd4aa598dd0 /]# yum install wget
Failed to set locale, defaulting to C.UTF-8
CentOS Linux 8 - AppStream                                                                                                                                                         78  B/s |  38  B     00:00    
Error: Failed to download metadata for repo 'appstream': Cannot prepare internal mirrorlist: No URLs in mirrorlist
[root@3bd4aa598dd0 /]# 

#解决,删除/etc/yum.repos.d/所有文件,把阿里云的镜像重写进去
[root@3bd4aa598dd0 /]# rm -rf /etc/yum.repos.d/* 
[root@3bd4aa598dd0 yum.repos.d]# curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  2495  100  2495    0     0  25202      0 --:--:-- --:--:-- --:--:-- 25202


#此时下载就可以了
[root@3bd4aa598dd0 yum.repos.d]# yum install nginx vim -y
Failed to set locale, defaulting to C.UTF-8
CentOS-8.5.2111 - Base - mirrors.aliyun.com                                                                                                                                       1.2 MB/s | 4.6 MB     00:03    
CentOS-8.5.2111 - Extras - mirrors.aliyun.com                                                                                                                                      64 kB/s |  10 kB     00:00    
CentOS-8.5.2111 - AppStream - mirrors.aliyun.com                                                                                                                                  2.1 MB/s | 8.4 MB     00:04    
Dependencies resolved.
==================================================================================================================================================================================================================
 Package                                                  Architecture                        Version                                                                Repository                              Size
==================================================================================================================================================================================================================
Installing:
 nginx                                                    x86_64                              1:1.14.1-9.module_el8.0.0+184+e34fea82                                 AppStream                              570 k
Upgrading:

#在容器里更改配置文件,重启nginx
[root@3bd4aa598dd0 yum.repos.d]# echo 'docker is nginx' > /usr/share/nginx/html/index.html 
[root@3bd4aa598dd0 yum.repos.d]# /usr/sbin/nginx          

#在宿主机上通过 docker ps 可以查看把容器的 80 端口映射到宿主机的那个端口上,可以看出映射到宿主机的32768端口
[root@test3 ~]# docker ps
CONTAINER ID   IMAGE     COMMAND       CREATED        STATUS        PORTS                                     NAMES
3bd4aa598dd0   centos    "/bin/bash"   23 hours ago   Up 23 hours   0.0.0.0:32768->80/tcp, :::32768->80/tcp   nginx
     
#访问测试,或者直接请求容器的ip也行
[root@test3 ~]# curl 127.0.0.1:32768
docker is nginx
[root@test3 ~]# curl 172.17.0.3
docker is nginx

#流量走向
访问物理节点ip:port(容器在物理节点映射的端口) ——>   容器 ip:port (容器里部署的服务器端口) ——> 就可以访问到容器里部署的应用了

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

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

相关文章

如何访问内网?

在互联网万维网上&#xff0c;我们可以轻松访问各种网站和资源。但是&#xff0c;有时我们需要访问局域网内的资源&#xff0c;例如公司内部的文件共享、打印机等。本文将介绍几种方法&#xff0c;帮助您实现访问内网的需求。 内网穿透技术 内网穿透技术是一种通过互联网将局域…

人工智能论文GPT-3(1):2020.5 Language Models are Few-Shot Learners;摘要;引言;scaling-law

摘要 近期的工作表明&#xff0c;在大量文本语料库上进行预训练&#xff0c;然后针对特定任务进行微调&#xff0c;可以在许多NLP任务和基准测试中取得实质性进展。虽然这种方法在架构上通常是与任务无关的&#xff0c;但仍然需要包含数千或数万示例的针对特定任务的微调数据集…

STM32G431RBT6移植FreeRTOS

引言&#xff1a; 本文专门为参加了蓝桥杯嵌入式赛道的同学准备&#xff0c; 大家可能会有这样一个问题&#xff0c; 比完赛之后&#xff0c; 对于像继续使用STM32G431RBT6学习FreeRTOS的&#xff0c; 发现网上的教程使用的板子基本上都是F1和F4的&#xff0c; 其实呢&#xff…

多系统源代码暴露在互联网,超四百万公民个人信息存在泄露的风险

#哈尔滨等保# 一 安全事件阐述 截至2024年3月&#xff0c;绿盟科技创新研究院监测到上万个互联网中暴露的DevOps资产存在未授权访问情况。其中&#xff0c;源代码仓库成为未授权访问的“重灾区”。这些允许未授权访问的源代码仓库暴露了境内多家机构的重要系统源代码&#x…

html公众号页面实现点击按钮跳转到导航

实现效果&#xff1a; 点击导航自动跳转到&#xff1a; html页面代码&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>跳转导航</title><meta name"keywords" conten…

【AR开发示例】实现AR管线巡检

写在前面的话 这是一篇旧文档&#xff0c;代码仓库见 https://gitee.com/tanyunxiu/AR-pipe 本文档是基于超图移动端SDK的AR模块开发的示例&#xff0c;仅供参考&#xff0c;SDK在持续迭代中&#xff0c;相关描述可能有变化。 示例介绍 这是一个使用AR查看墙内管线的基础示…

uniapp 如何区分目前运行环境(app、web、mp-weixin)

platform 区分 iOS、Android uniplatform 区分 app、web、mp-weixin ....

fatal error LNK1120: xxxx unresolved externals

场景&#xff1a; A项目Library&#xff0c;编译环境VS2008DDKWarizd, 编译平台WIN7XP; B项目驱动, 编译环境VS2008&#xff0c;编译平台Rlease32位&#xff0c;DDK版本相同,都是7.0 在B项目集成A项目的32位LIB库时&#xff0c;出现此错误&#xff0c;看错误很常见的找不到符号…

Linux【实战】—— LAMP环境搭建 部署网站

目录 一、介绍 1.1什么是LAMP&#xff1f; 1.2LAMP的作用 二、部署静态网站 2.1 虚拟主机&#xff1a;一台服务器上部署多个网站 2.1.1 安装Apache服务 2.1.2 防火墙配置 2.1.3 准备网站目录 2.1.4 创建网站的配置文件 2.1.5 检查配置文件是否正确 2.1.6 Linux客户端…

润石科技(RUNIC)汽车电子应用方案和物料选型

一、润石科技&#xff08;RUNIC&#xff09;简介 江苏润石科技有限公司是一家专注于高性能、高品质模拟/混合信号集成电路研发和销售的高科技半导体设计公司。公司主要产品线分为两类&#xff1a;信号链和电源管理&#xff0c;其中信号链包含运算放大器、比较器、模拟开关、数…

Mac 部署 GPT-2 预训练模型 gpt2-chinese-cluecorpussmall

文章目录 下载 GPT-2 模型快速开始 GPT-2 下载 GPT-2 模型 https://huggingface.co/uer/gpt2-chinese-cluecorpussmall git clone https://huggingface.co/uer/gpt2-chinese-cluecorpussmall # 或单独下载 LFS GIT_LFS_SKIP_SMUDGE1 git clone https://huggingface.co/uer/gpt…

基于Spring Boot+Vue的校园网上店铺,开启便捷购物新模式

作者介绍&#xff1a;✌️大厂全栈码农|毕设实战开发&#xff0c;专注于大学生项目实战开发、讲解和毕业答疑辅导。 &#x1f345;获取源码联系方式请查看文末&#x1f345; 推荐订阅精彩专栏 &#x1f447;&#x1f3fb; 避免错过下次更新 Springboot项目精选实战案例 更多项目…

递归 python

↵一、简单理解 解决问题的一种方法&#xff0c;它将问题不断的分成更小的子问题&#xff0c;直到子问题可以用普通的方法解决。通常情况下&#xff0c;递归会使用一个不停调用自己的函数。 【注】&#xff1a;每一次递归调用都是在解决一个更小的问题&#xff0c;如此进行下…

Leetcode - 128双周赛

目录 一&#xff0c;3110. 字符串的分数 二&#xff0c;3111. 覆盖所有点的最少矩形数目 三&#xff0c;3112. 访问消失节点的最少时间​编辑 写法一&#xff1a;朴素 Dijkstra&#xff08;适用于稠密图&#xff0c;即边比较多的图&#xff09; 写法二&#xff1a;堆优化 …

⑤【Shiro】SpringBoot整合Shiro,实现登录认证

个人简介&#xff1a;Java领域新星创作者&#xff1b;阿里云技术博主、星级博主、专家博主&#xff1b;正在Java学习的路上摸爬滚打&#xff0c;记录学习的过程~ 个人主页&#xff1a;.29.的博客 学习社区&#xff1a;进去逛一逛~ ⑤【Shiro】SpringBoot整合Shiro&#xff0c;实…

作为Boss,还在写代码。what?赶紧改掉这个坏毛病

有些创业中的老板&#xff0c;经常或者偶尔也要写代码&#xff0c;我听了很震惊呀&#xff0c;这叫创业吗&#xff1f;这不是给员工打工吗&#xff1f;其他重要的事情谁来干&#xff0c;这个毛病一定要改。 一、比起写代码&#xff0c;你还有更重要的事情要做 作为BOSS和创业…

.NET 爬虫从入门到入狱

目录 前言 1.&#x1f4a1;使用HttpClient爬取数据 2.&#x1f680;模拟User-Agent 3.&#x1f935;使用HTML解析库 3.&#x1f44c;前端Price显示 4.&#x1f331;运行实例 获取金价Au 5.&#x1f9fe;使用正则表达式解析 6.&#x1f4ab;获取BTC价格 7.✨获取CSDN热点…

【网站项目】书籍销售系统小程序

&#x1f64a;作者简介&#xff1a;拥有多年开发工作经验&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。&#x1f339;赠送计算机毕业设计600个选题excel文件&#xff0c;帮助大学选题。赠送开题报告模板&#xff…

【云计算】安全组和网络ACL的区别

安全组和网络ACL的区别 ACL&#xff08;Access Control List&#xff09;和 安全组&#xff08;Security Group&#xff09;是两种不同的网络安全控制机制&#xff0c;通常用于管理云计算平台中的网络访问权限。它们在功能和实现上有一些显著的区别&#xff1a; 辨析 范围不同&…

大数据------额外插件及技术------Git(完整知识点汇总)

Git 定义 它是分布式版本控制工具&#xff0c;主要用于管理开发过程中的源代码文件&#xff08;如&#xff1a;Java类、xml文件、html页面等&#xff09;&#xff0c;在软件开发过程中被广泛应用 作用 代码回溯&#xff1a;快速回到某一代码历史版本版本切换&#xff1a;同一个…