linux 运维相关笔记

目录

设置IP地址

命令设置

文件配置修改

启用禁用网络接口

Linux 服务器之间实现ssh互信认证

1.生成密钥

2.将公钥文件拷贝到目标服务器

用户相关操作

启用禁用root用户

创建用户

修改用户名

修改用户密码

防火墙操作相关命令

firewall-cmd(命令行管理工具)

防火墙服务

启动/停止 firewalld 服务

使用 firewall-cmd 管理规则

端口配置

添加端口

删除端口

查看开发端口

iptables相关用法

工作机制

检查端口转发规则

# 查看所有表的概要

# 或查看特定表

# 显示数据包和字节计数

SSH 远程访问相关设置

修改ssh远程端口

步骤 1:备份当前配置

步骤 2:编辑 SSH 配置文件

步骤 3:修改端口号

步骤 4:配置多个端口(可选)

步骤 5:保存并测试配置

步骤 6:配置防火墙(关键步骤!)

CentOS/RHEL/Fedora (firewalld):

Ubuntu/Debian (ufw):

直接使用 iptables:

步骤 7:重启 SSH 服务

步骤 8:测试新端口连接(保持现有连接不关闭!)

步骤 9:确认新端口工作正常后,关闭旧端口

方法 A:禁用旧端口(推荐)

方法 B:从防火墙移除旧端口

重新加载配置

3. 完整自动化脚本

4. 测试和验证

测试连接:

验证配置:

5. 故障排除

问题1:连接被拒绝

问题2:SELinux 阻止

管理SELinux的端口策略

# 查看 SELinux 状态

# 如果是 Enforcing,需要添加端口

#删除端口

# 查看已允许的 SSH 端口

# 临时解决方案

问题3:配置文件错误

6. 安全增强建议

1. 禁用密码登录(使用密钥)

2. 禁用 root 登录

3. 限制用户访问

4. 使用 fail2ban 防止暴力破解

7. 恢复默认端口

使用 OpenSSL创建证书(推荐)

引言

准备工作

步骤一:生成私钥

步骤二:生成证书签名请求(CSR)

步骤三:生成自签名证书

步骤四:验证证书

应用自签名证书

注意事项

结论

Docker应用实践

docker-ce 在线安装

yum下载并安装

验证安装是否成功

检查Docker是否运行

将当前用户加入 docker 组:

镜像加速配置

运维工具docker箱部署案例

Nginx 应用实践

编写nginx启动脚本

待更新


设置IP地址

命令设置

nmcli 命令参数详解

查看现有连接

     作用:获取到连接名 这里是[enp1s5] 方便后面使用

#查看现有连接
nmcli connetion show  / nmcli device status


 

步骤1: 设置静态ip
sudo  nmcli connection modify "enp1s5" \
ipv4.addresses 192.168.1.100/24 \
ipv4.gateway "192.168.1.1" \
ipv4.dns "8.8.8.8,8.8.4.4" \
ipv4.method manual

步骤二:
#重载设置   推荐
sudo nmcli connection reload
或者使用 
#禁用连接 不推荐,因为在远程时使用此命令会断开无法启用网络连接
sudo nmcli connection down "enp1s5"

步骤三:启用连接
sudo nmcli connection up "enp1s5"

 步骤一命令解析

#修改连接名称为enp1s5的

sudo  nmcli connection modify "enp1s5"

#IP地址 这里的/24 表示 子网掩码的前缀长度      255.255.255.0                                 
ipv4.addresses 192.168.1.100/24            

 #网关                                                                                        
ipv4.gateway "192.168.1.1" \   

  #DNS          
ipv4.dns "8.8.8.8,8.8.4.4" \    

#IP获取方式为手动

ipv4.method manual

#IP获取方式可选

manual      # 手动配置(静态IP)
auto        # 自动获取(DHCP)自动获取时不需要设置 addresses/gateway
disabled    # 禁用IPv4
link-local  # 链路本地地址(169.254.x.x)
shared      # 共享连接(用于热点)         
   
      
#nmcli 其他相关命令
connection add               # 添加新连接
connection delete           # 删除连接

文件配置修改

#【enp1s5】为网卡设备名称

nano /etc/sysconfig/network-scripts/ifcfg-enp1s5

TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
NAME=enp1s5
UUID=51345d88-5339-4c7e-bce7-ed02fa29f5c1
DEVICE=enp1s5
ONBOOT=yes

IPADDR=192.168.1.151 #IP地址
PREFIX=32
GATEWAY=192.168.1.1
DNS1=8.8.8.8
DNS2=8.8.4.4

启用禁用网络接口

#若需要查看网卡型号
llspci | grep ethernet

sudo ip link enp1s5 up #down 为禁用

#重新建立网卡连接
sudo nmcli device connect enp1s5
#若失败 执行重新应用配置
nmcli devie reapply enp1s5 

Linux 服务器之间实现ssh互信认证

1.生成密钥

ssh-keygen

[gensang@localhost ~]$ ssh-keygen 

#以下各步骤可直接 按【回车】
Generating public/private rsa key pair.
Enter file in which to save the key (/home/gensang/.ssh/id_rsa): 
Created directory '/home/gensang/.ssh'.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/gensang/.ssh/id_rsa
Your public key has been saved in /home/gensang/.ssh/id_rsa.pub
 

生成私钥(/home/gensang/.ssh/id_rsa)

公钥(/home/gensang/.ssh/id_rsa.pub)

2.将公钥文件拷贝到目标服务器

#执行后会在目标服务器 /home/gensang/.ssh 目录下生成一个名为[authorized_keys]的文件

ssh-copy-id 服务器名称@IP地址

反之亦然 互相能通信

用户相关操作

启用禁用root用户

sudo

创建用户

# 创建用户john,设置家目录,使用bash shell
sudo useradd -m -s /bin/bash john

# 设置密码
sudo passwd john

修改用户名

sudo usermod new-name oldname

修改用户密码

sudo passwd [用户名]

#创建用户

sudo adduser

防火墙操作相关命令

firewall-cmd(命令行管理工具)

firewalld(服务后台/守护进程)

firewall-cmd(命令行管理工具)

防火墙服务

查看服务是否安装

which firewalld

#存在输出路径

[gs2@GsServer2 nginx]$ which firewalld

/usr/sbin/firewalld

查看命令行工具是否存在

which firewalld

#存在输出命令路径

[gs2@GsServer2 nginx]$ which firewall-cmd

/usr/bin/firewall-cmd

# 检查是否安装(rpm系)

rpm -q firewalld

# 检查是否安装(deb系)

dpkg -l | grep firewalld

# 查看服务状态

sudo systemctl status firewalld

启动/停止 firewalld 服务

sudo systemctl start firewalld      # 启动守护进程
sudo systemctl stop firewalld       # 停止守护进程
sudo systemctl status firewalld     # 查看状态
 

使用 firewall-cmd 管理规则

sudo firewall-cmd --list-all        # 查看所有规则
sudo firewall-cmd --add-service=http # 添加服务
sudo firewall-cmd --reload          # 重新加载配置

端口配置

添加端口
# 临时生效(运行时)
sudo firewall-cmd --add-port=80/tcp
# 永久生效(写入配置)
sudo firewall-cmd --permanent  --add-port=9667/tcp 
删除端口
sudo firewall-cmd --remove-port=80/tcp
查看开发端口

sudo firewall-cmd --list-all

iptables相关用法

工作机制

规则链名包括(也被称为五个钩子函数(hook functions)):

  • INPUT链 :处理输入数据包。
  • OUTPUT链 :处理输出数据包。
  • FORWARD链 :处理转发数据包。
  • PREROUTING链 :用于目标地址转换(DNAT)。
  • POSTOUTING链 :用于源地址转换(SNAT)。

检查端口转发规则

[gs1@localhost ~]$ sudo iptables -t nat -L -n

参数作用示例输出
-t nat指定查看 NAT表只看NAT相关规则
-L列出规则默认查看filter表
-n数字显示IP和端口显示为数字

这是关于iptables(一个用于配置Linux内核防火墙的工具)的五种不同类型的表的解释。每种表都有其特定的用途和包含的链(chain),以下是对每种表的详细解释:

filter表:
这是默认的表,通常用于执行基本的防火墙过滤操作。
命令行示例:iptables -t filter -L 或简写为 iptables -L。
包含的链:INPUT、OUTPUT、FORWARD。
nat表:
用于网络地址转换(NAT),例如在进行源NAT(SNAT)或目的NAT(DNAT)时。
命令行示例:iptables -t nat -L。
包含的链:PREROUTING、POSTROUTING、OUTPUT。
mangle表:
用于修改数据包的某些部分,比如服务类型(TOS)、生存时间(TTL)或设置MARK(用于高级路由)。
命令行示例:iptables -t mangle -L。
用途:修改TOS、TTL、MARK等。
raw表:
用于决定是否对数据包进行连接跟踪,通常用于性能优化或特定的数据包处理。
命令行示例:iptables -t raw -L。
用途:设置NOTRACK规则。
security表:
与SELinux(安全增强的Linux)相关,用于实施强制访问控制(MAC)。
命令行示例:iptables -t security -L。

每种表在iptables中都有其特定的功能和用途,通过这些表,管理员可以精细地控制网络流量和实现各种网络功能。

# 查看所有表的概要

sudo iptables -L -n --line-numbers

# 或查看特定表

sudo iptables -t filter -L -n -v
sudo iptables -t nat -L -n -v
sudo iptables -t mangle -L -n -v

# 显示数据包和字节计数

sudo iptables -t nat -L -n -v

SSH 远程访问相关设置

修改ssh远程端口

步骤 1:备份当前配置

bash

# 备份 SSH 配置文件
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.backup.$(date +%Y%m%d)

步骤 2:编辑 SSH 配置文件

bash

# 使用你喜欢的编辑器
sudo vi /etc/ssh/sshd_config
# 
sudo nano /etc/ssh/sshd_config

步骤 3:修改端口号

找到以下行(通常在文件顶部):

bash

#Port 22
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::

修改为:

bash

Port 2222  # 改为你想要的端口,如 2222
#Port 22   # 注释掉或保留原22端口(建议先保留作为备份)

端口选择建议:

  • 建议使用 1024-65535 之间的端口
  • 避免使用常见端口:21(FTP)23(Telnet)25(SMTP)80(HTTP)443(HTTPS)
  • 常用替代端口:222222222222920227822

步骤 4:配置多个端口(可选)

如果你想让新旧端口同时工作一段时间:

bash

Port 22
Port 2222

这样可以从两个端口连接,测试新端口无误后再关闭旧端口。

步骤 5:保存并测试配置

bash

# 测试配置文件语法
sudo sshd -t
 
# 如果没有任何输出,表示配置正确

步骤 6:配置防火墙(关键步骤!)

CentOS/RHEL/Fedora (firewalld)

bash

# 查看当前防火墙状态
sudo firewall-cmd --state
 
# 如果防火墙开启,添加新端口
sudo firewall-cmd --permanent --add-port=2222/tcp
sudo firewall-cmd --reload
 
# 验证端口已添加
sudo firewall-cmd --list-ports
sudo firewall-cmd --list-all
Ubuntu/Debian (ufw)

bash

# 查看 ufw 状态
sudo ufw status
 
# 允许新端口
sudo ufw allow 2222/tcp
sudo ufw reload
 
# 查看规则
sudo ufw status numbered
直接使用 iptables

bash

# 临时添加规则
sudo iptables -A INPUT -p tcp --dport 2222 -j ACCEPT
 
# 保存规则(不同系统保存方式不同)
# CentOS/RHEL 7+:
sudo firewall-cmd --runtime-to-permanent
# 
sudo iptables-save > /etc/sysconfig/iptables
 
# Ubuntu/Debian:
sudo iptables-save | sudo tee /etc/iptables/rules.v4

步骤 7:重启 SSH 服务

bash

# 重启 SSH 服务
sudo systemctl restart sshd    # CentOS/RHEL/Fedora
# 
sudo systemctl restart ssh     # Ubuntu/Debian
 
# 查看服务状态
sudo systemctl status sshd

步骤 8:测试新端口连接(保持现有连接不关闭!

在新的终端窗口测试:

bash

# 测试新端口连接
ssh -p 2222 username@server_ip
 
# 或者使用详细模式测试
ssh -v -p 2222 username@server_ip

步骤 9:确认新端口工作正常后,关闭旧端口

方法 A:禁用旧端口(推荐)

编辑配置文件,注释掉旧端口:

bash

sudo vi /etc/ssh/sshd_config

修改为:

bash

#Port 22      # 注释掉旧端口
Port 2222     # 只保留新端口
方法 B:从防火墙移除旧端口

bash

# CentOS/RHEL
sudo firewall-cmd --permanent --remove-service=ssh
sudo firewall-cmd --permanent --remove-port=22/tcp
sudo firewall-cmd –reload
# Ubuntu/Debian
sudo ufw delete allow 22/tcp
sudo ufw reload
重新加载配置

bash

sudo systemctl reload sshd
# 
sudo systemctl restart sshd

3. 完整自动化脚本

创建一个安全更改脚本 change_ssh_port.sh

bash

#!/bin/bash
# SSH 端口更改脚本
# 使用方法:sudo bash change_ssh_port.sh 2222
 
set -e  # 遇到错误立即退出
 
NEW_PORT=$1
OLD_PORT=22
 
if [ -z "$NEW_PORT" ]; then
    echo "错误:请指定新端口号"
    echo "用法: sudo $0 新端口号"
    exit 1
fi
 
if [ "$NEW_PORT" -eq "$OLD_PORT" ]; then
    echo "错误:新端口不能与旧端口相同"
    exit 1
fi
 
if [ "$NEW_PORT" -lt 1024 ] || [ "$NEW_PORT" -gt 65535 ]; then
    echo "错误:端口号必须在 1024-65535 之间"
    exit 1
fi
 
echo "=== 开始更改 SSH 端口 ==="
echo "当前端口: $OLD_PORT"
echo "新端口: $NEW_PORT"
echo ""
 
# 1. 备份配置
echo "1. 备份配置文件..."
BACKUP_FILE="/etc/ssh/sshd_config.backup.$(date +%Y%m%d_%H%M%S)"
sudo cp /etc/ssh/sshd_config "$BACKUP_FILE"
echo "备份已创建: $BACKUP_FILE"
 
# 2. 修改配置
echo "2. 修改 SSH 配置..."
sudo sed -i "s/^#Port $OLD_PORT/Port $OLD_PORT/" /etc/ssh/sshd_config
sudo sed -i "/^Port $OLD_PORT/a Port $NEW_PORT" /etc/ssh/sshd_config
echo "已添加新端口 $NEW_PORT"
 
# 3. 测试配置
echo "3. 测试配置语法..."
if ! sudo sshd -t; then
    echo "错误:SSH 配置测试失败,恢复备份..."
    sudo cp "$BACKUP_FILE" /etc/ssh/sshd_config
    exit 1
fi
 
# 4. 配置防火墙
echo "4. 配置防火墙..."
if command -v firewall-cmd &> /dev/null; then
    # firewalld
    sudo firewall-cmd --permanent --add-port=$NEW_PORT/tcp
    sudo firewall-cmd --reload
    echo "firewalld 已配置"
elif command -v ufw &> /dev/null; then
    # ufw
    sudo ufw allow $NEW_PORT/tcp
    sudo ufw reload
    echo "ufw 已配置"
else
    # iptables
    sudo iptables -A INPUT -p tcp --dport $NEW_PORT -j ACCEPT
    echo "iptables 规则已添加(需手动保存)"
fi
 
# 5. 重启服务
echo "5. 重启 SSH 服务..."
if systemctl is-active --quiet sshd; then
    sudo systemctl restart sshd
elif systemctl is-active --quiet ssh; then
    sudo systemctl restart ssh
fi
 
echo ""
echo "=== 更改完成 ==="
echo "请在新终端中测试连接:"
echo "  ssh -p $NEW_PORT $(whoami)@$(hostname -I | awk '{print $1}')"
echo ""
echo "如果测试成功,可以:"
echo "1. 编辑 /etc/ssh/sshd_config"
echo "2. 注释掉 'Port $OLD_PORT' "
echo "3. 运行: sudo systemctl reload sshd"
echo "4. 从防火墙移除旧端口"

给执行权限并运行:

bash

chmod +x change_ssh_port.sh
sudo ./change_ssh_port.sh 2222

4. 测试和验证

测试连接:

bash

# 使用新端口连接
ssh -p 2222 username@server_ip
 
# 使用详细输出调试
ssh -vvv -p 2222 username@server_ip
 
# 使用 nc 测试端口是否开放
nc -zv server_ip 2222

验证配置:

bash

# 查看 SSH 监听的端口
sudo ss -tlnp | grep ssh
# 
sudo netstat -tlnp | grep ssh
 
# 查看防火墙规则
sudo firewall-cmd --list-all 2>/dev/null || sudo ufw status 2>/dev/null
 
# 查看 SSH 配置
sudo grep -E "^Port|^#Port" /etc/ssh/sshd_config

5. 故障排除

问题1:连接被拒绝

bash

# 检查 SSH 服务状态
sudo systemctl status sshd
 
# 检查端口监听
sudo ss -tlnp | grep :2222
 
# 检查防火墙
sudo firewall-cmd --list-ports 2>/dev/null || sudo ufw status 2>/dev/null

问题2SELinux 阻止

管理SELinux的端口策略

bash

# 查看 SELinux 状态

getenforce

# 如果是 Enforcing,需要添加端口
sudo semanage port -a -t ssh_port_t -p tcp 2222
#删除端口
sudo semanage port -d -t ssh_port_t -p tcp 2222
# 查看已允许的 SSH 端口
sudo semanage port -l | grep ssh
# 临时解决方案
sudo setenforce 0

问题3:配置文件错误

bash

# 恢复备份
sudo cp /etc/ssh/sshd_config.backup.* /etc/ssh/sshd_config
sudo systemctl restart sshd

6. 安全增强建议

1. 禁用密码登录(使用密钥)

bash

#  /etc/ssh/sshd_config 中添加:
PasswordAuthentication no
PubkeyAuthentication yes

2. 禁用 root 登录

bash

PermitRootLogin no

3. 限制用户访问

bash

AllowUsers username1 username2
# 
AllowGroups sshusers

4. 使用 fail2ban 防止暴力破解

bash

# 安装 fail2ban
sudo yum install fail2ban    # CentOS/RHEL
sudo apt install fail2ban    # Ubuntu/Debian
 
# 配置 SSH 防护
sudo tee /etc/fail2ban/jail.local << EOF
[sshd]
enabled = true
port = 2222
filter = sshd
logpath = /var/log/secure
maxretry = 3
bantime = 3600
EOF
 
sudo systemctl restart fail2ban

7. 恢复默认端口

如果更改后出现问题,恢复步骤:

bash

# 1. 恢复配置文件
sudo cp /etc/ssh/sshd_config.backup /etc/ssh/sshd_config
 
# 2. 恢复防火墙
sudo firewall-cmd --permanent --remove-port=2222/tcp
sudo firewall-cmd --permanent --add-service=ssh
sudo firewall-cmd --reload
 
# 3. 重启 SSH
sudo systemctl restart sshd
 
# 4. 如果是 SELinux 问题
sudo semanage port -d -t ssh_port_t -p tcp 2222

使用 OpenSSL创建证书(推荐)

引言

在开发过程中,经常需要模拟HTTPS环境以测试网站或应用的安全性。由于正式签发的SSL证书成本较高,且需要等待审核,自签名证书成为了开发测试阶段的理想选择。OpenSSL作为一款开源的SSL/TLS协议工具包,提供了强大的加密功能,包括证书的创建、签名和管理。本文将引导你如何使用OpenSSL创建一个自签名SSL证书。

准备工作

在开始之前,请确保你的系统中已经安装了OpenSSL。大多数Linux发行版和MacOS都预装了OpenSSL,Windows用户可能需要手动下载并安装。

步骤一:生成私钥

首先,我们需要生成一个私钥(private key)。私钥是证书的核心,用于解密信息或进行数字签名。

openssl genpkey -algorithm RSA -out server.key -pkeyopt rsa_keygen_bits:2048

这条命令会生成一个2048位的RSA私钥,并将其保存到server.key文件中。2048位是一个常用的密钥长度,既安全又具有较好的性能。

步骤二:生成证书签名请求(CSR)

接下来,我们需要基于私钥创建一个证书签名请求(Certificate Signing Request, CSR)。这个CSR将被发送到证书颁发机构(CA)进行签名,但在自签名证书的场景下,我们实际上会用它作为生成证书的输入。

openssl req -new -key server.key -out server.csr

执行这条命令时,系统会提示你输入一系列信息,如国家、省份、城市、组织名称等。对于某些字段,如果你只是测试用,可以随意填写。

步骤三:生成自签名证书

现在,我们有了私钥和CSR,就可以使用OpenSSL的x509命令来生成自签名证书了。

openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

这条命令会生成一个有效期为365天的自签名证书,并将其保存到server.crt文件中。-days参数用于指定证书的有效期,你可以根据需要调整。

步骤四:验证证书

生成证书后,你可能想验证它是否有效。可以使用OpenSSL的verify命令来完成这个任务。

openssl verify server.crt

# 验证自签名证书
openssl verify -CAfile server.crt server.crt

# 或者查看证书信息确认
openssl x509 -in server.crt -text -noout | head -20

如果证书没有问题,你会看到server.crt: OK的输出。

# 查看证书信息

openssl x509 -in server.crt -text -noout

# 验证证书链

openssl verify -CAfile rootCA.crt server.crt

# 检查私钥

openssl rsa -in server.key -check

应用自签名证书

生成并验证证书后,你就可以在需要的地方应用它了。例如,在Nginx或Apache服务器上配置HTTPS时,可以将server.crtserver.key文件指定为SSL证书和私钥。

注意事项

  • 自签名证书虽然方便,但在生产环境中应避免使用,因为它们不会被客户端浏览器自动信任。
  • 定期检查并更新你的证书,以防止证书过期导致的安全问题。

结论

通过本文,你应该已经掌握了使用OpenSSL创建自签名SSL证书的基本步骤。这个过程对于开发和测试HTTPS服务至关重要。希望这篇文章能帮助你更好地理解和应用SSL/TLS技术。

Docker应用实践

docker-ce 在线安装

1、使用yum在线安装Docker CE,执行以下命令安装依赖包:
[root@localhost ~]# yum install -y yum-utils  device-mapper-persistent-data   lvm2
执行下面的命令添加yum软件源:
[root@localhost ~]# yum-config-manager  --add-repo yum-config-manager  --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
最后,可以安装Docker CE了。
[root@localhost ~]# yum makecache fast
[root@localhost ~]# yum install docker-ce
最后,启动 Docker CE:
[root@localhost ~]# systemctl enable docker
[root@localhost ~]# systemctl start docker
 

yum下载并安装

sudo yum install docker

[gensang@localhost home]$ sudo yum install docker
[sudo] gensang 的密码:
Last metadata expiration check: 0:20:52 ago on 2025年12月24日 星期三 22时36分59秒.
Dependencies resolved.
==========================================================================================
 Package              Architecture  Version                           Repository     Size
==========================================================================================
Installing:
 docker-engine        x86_64        2:18.09.0-345.oe2203sp3           update         39 M

Transaction Summary
==========================================================================================
Install  1 Package

Total download size: 39 M
Installed size: 163 M
Is this ok [y/N]: y
Downloading Packages:
^C                              [            ===          ] ---  B/s |   0  B     --:-- ET                              [               ===       ] ---  B/s |   0  B     --:-- ETA
The downloaded packages were saved in cache until the next successful transaction.
You can remove cached packages by executing 'yum clean packages'.
Error: Error downloading packages:
  Interrupted by a SIGINT signal
[gensang@localhost home]$ sudo yum install docker
Last metadata expiration check: 0:21:14 ago on 2025年12月24日 星期三 22时36分59秒.
Dependencies resolved.
==========================================================================================
 Package              Architecture  Version                           Repository     Size
==========================================================================================
Installing:
 docker-engine        x86_64        2:18.09.0-345.oe2203sp3           update         39 M

Transaction Summary
==========================================================================================
Install  1 Package

Total download size: 39 M
Installed size: 163 M
Is this ok [y/N]: y
Downloading Packages:
docker-engine-18.09.0-345.oe2203sp3.x86_64.rpm            3.8 MB/s |  39 MB     00:10    
------------------------------------------------------------------------------------------
Total                                                     2.5 MB/s |  39 MB     00:15     
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                                  1/1 
  Installing       : docker-engine-2:18.09.0-345.oe2203sp3.x86_64                     1/1 
  Running scriptlet: docker-engine-2:18.09.0-345.oe2203sp3.x86_64                     1/1 
Created symlink /etc/systemd/system/multi-user.target.wants/docker.service → /usr/lib/systemd/system/docker.service.

  Verifying        : docker-engine-2:18.09.0-345.oe2203sp3.x86_64                     1/1 

Installed:
  docker-engine-2:18.09.0-345.oe2203sp3.x86_64                                            

Complete!
 

验证安装是否成功

sudo dockre -v

[gensang@localhost home]$ docker -v
Docker version 18.09.0, build d51e3ad

检查Docker是否运行

# 检查Docker是否运行
sudo systemctl status docker

将当前用户加入 docker 组:

默认情况下,docker命令会使用Unix socket与Docker引擎通讯。而只有root用户和docker组的用户才可以访问Docker引擎的Unix socket。出于安全考虑,一般Linux系统上不会直接使用root用户。因此,更好地做法是将需要使用docker的用户加入docker用户组。因此,首先建立docker组 groupadd docker

#查看用户组是否存在
[gensang@localhost ~]$ cat /etc/group | grep docker

#用户组不存在 创建
groupadd docker

#将当前用户加入 docker 组:
usermod -aG docker $USER

镜像加速配置

镜像加速器配置
国内从 Docker Hub 拉取镜像有时会遇到困难,此时可以配置镜像加速器,首先,创建daemon.json文件 : 

[gensang@localhost docker]$ sudo nano daemon.json
[gensang@localhost docker]$ cat daemon.json
{
                  "registry-mirrors": [
                     "https://docker.1ms.run",
                     "https://proxy.1panel.live",
                     "https://docker.xuanyuan.me",
                     "https://docker.m.daocloud.io",
                     "https://docker.rainbond.cc",
                     "https://docker.1panel.live"
                  ]
}
 

#  重启Docker使配置生效
sudo systemctl daemon-reload
sudo systemctl restart docker

#  验证镜像源是否生效
docker info | grep "Registry Mirrors"

运维工具docker箱部署案例

# 先拉取镜像(单独拉取更易排查)

sudo docker pull wcjiang/reference:latest

# 拉取成功后运行容器

sudo docker run --name reference -d -p9667:3000 wcjiang/reference:latest

# 检查容器状态

sudo docker ps

Nginx 应用实践

编写nginx启动脚本

 nginx 不强制要求必须有 Systemd 服务脚本,但强烈建议使用

待更新

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值