首页
友情链接
关于
Search
1
Docker 拉取镜像报错 “missing signature key” 解决办法
1,257 阅读
2
如何在CentOS 7中升级Linux内核
438 阅读
3
docker 常用命令
192 阅读
4
k8s 常用命令
190 阅读
5
Ubuntu 系统LVM 磁盘扩容
157 阅读
默认分类
Liinux系统管理
容器
云计算
虚拟化
编程语言
数据库
登录
/
注册
Search
标签搜索
Docker
shell脚本
Linux 系统管理
k8s
LVM
KVM
网络服务
Nginx
Ubuntu
内核升级
Linux用户管理
系统管理
MySQL
共享存储
Abbott
累计撰写
35
篇文章
累计收到
2
条评论
首页
栏目
默认分类
Liinux系统管理
容器
云计算
虚拟化
编程语言
数据库
页面
友情链接
关于
搜索到
35
篇与
的结果
2024-04-22
Docker 拉取镜像报错 “missing signature key” 解决办法
docker 缺少签名密钥<font color=red>问题:[root@web ~]# docker pull nginx Using default tag: latest Trying to pull repository docker.io/library/nginx ... missing signature key提示:缺少签名密钥<font color=bleen>解决方法1.在其他设备上运行查看是否可以垃取;2.查看docker的版本[root@web ~]# docker version Client: Version: 1.13.1 API version: 1.26 Package version: docker-1.13.1-210.git7d71120.el7.centos.x86_64 Go version: go1.10.3 Git commit: 7d71120/1.13.1 Built: Wed Mar 20 16:04:34 2024 OS/Arch: linux/amd64 Server: Version: 1.13.1 API version: 1.26 (minimum version 1.12) Package version: docker-1.13.1-210.git7d71120.el7.centos.x86_64 Go version: go1.10.3 Git commit: 7d71120/1.13.1 Built: Wed Mar 20 16:04:34 2024 OS/Arch: linux/amd64 Experimental: false3.移除dockersudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine4.更新docker[root@web ~]# sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin5.查看更新之后的版本[root@web ~]# docker version Client: Docker Engine - Community Version: 26.0.2 API version: 1.45 Go version: go1.21.9 Git commit: 3c863ff Built: Thu Apr 18 16:30:00 2024 OS/Arch: linux/amd64 Context: default Server: Docker Engine - Community Engine: Version: 26.0.2 API version: 1.45 (minimum version 1.24) Go version: go1.21.9 Git commit: 7cef0d9 Built: Thu Apr 18 16:28:58 2024 OS/Arch: linux/amd64 Experimental: false containerd: Version: 1.6.31 GitCommit: e377cd56a71523140ca6ae87e30244719194a521 runc: Version: 1.1.12 GitCommit: v1.1.12-0-g51d5e94 docker-init: Version: 0.19.0 GitCommit: de40ad06.再次垃取镜像测试[root@web ~]# docker pull nginx Using default tag: latest latest: Pulling from library/nginx 13808c22b207: Downloading [> ] 294.9kB/29.13MB c46d32988911: Downloading [> ] 426kB/41.79MB b9d060e68bbc: Download complete c028eb95b065: Download complete e74ab6743f66: Pulling fs layer 4a666f159bd0: Waiting 297a65ba6f04: Waiting可以垃取了,原因就是应用docker的版本低的原因
2024年04月22日
1,257 阅读
0 评论
1 点赞
2024-04-13
用户管理
1. 创建用户在Linux系统中,redhat系列 命令: useradd 描述:创建新用户或更新默认的新用户信息语法: useradd [options] user_name选项:-d, --home-dir HOME_DIR home directory of the new account -u, --uid UID user ID of the new account -m, --create-home create the user's home directory -s, --shell SHELL login shell of the new account -M, --no-create-home 不创建家目录Example 1: 创建一个新的普通用户[root@localhost ~]# useradd dev检查用户是否创建成功[root@localhost ~]# id dev uid=1000(dev) gid=1000(dev) groups=1000(dev) uid: user ID #用户ID gid:group ID #组ID groups: #组名称Example 2: 给用户创建密码命令: passwd[root@localhost ~]# passwd dev Changing password for user dev. New password: #输入一次密码 BAD PASSWORD: The password is shorter than 8 characters #不满足密码的要求 Retype new password: #确认密码 passwd: all authentication tokens updated successfully.Example 3: 使用普通用户登录系统[root@web ~]# ssh
[email protected]
4: 创建新用户的时候且指定家目录[root@localhost ~]# useradd dev03 -d /opt/dev03验证结果:Example 5: 创建用户时指定uid 用户ID [root@localhost ~]# useradd dev04 -u 1100 [root@localhost ~]# id dev04 uid=1100(dev04) gid=1100(dev04) groups=1100(dev04)Example 6: 创建伪用户,不能登录shell 环境[root@localhost ~]# useradd dev05 -s /sbin/nologin [root@localhost ~]# id dev05 uid=1101(dev05) gid=1101(dev05) groups=1101(dev05) [root@localhost ~]# ls /home/ dev dev01 dev04 dev05 #测试 显示用户无法登录系统 [root@localhost ~]# su - dev05 This account is currently not available. # 创建用户时,指定不能登录shell环境,且不创建家目录 [root@localhost ~]# useradd dev06 -M -s /sbin/nologin #验证是否创建家目录 [root@localhost ~]# ls /home/ dev dev01 dev04 dev05 [root@localhost ~]# 在debin (ubuntu)系列中命令: adduser2. 删除用户命令:userdel语法:userdel [options] [user_name]example 1: 删除用户[root@localhost ~]# userdel dev06 [root@localhost ~]# id dev06 id: 'dev06': no such user [root@localhost ~]# id dev05 uid=1101(dev05) gid=1101(dev05) groups=1101(dev05) [root@localhost ~]# userdel dev05 [root@localhost ~]# id dev05 id: 'dev05': no such userexample 2: 删除用户的所有文件[root@localhost ~]# userdel -r dev05 [root@localhost ~]# ls /home/ dev dev01 dev04修改用户命令:usermod语法:usermod [options] [user_name]Example 1: 修改用户的uid[root@localhost ~]# useradd dev01 [root@localhost ~]# id dev01 uid=1000(dev01) gid=1000(dev01) groups=1000(dev01) [root@localhost ~]# [root@localhost ~]# usermod -u 1001 dev01 [root@localhost ~]# id dev01 uid=1001(dev01) gid=1000(dev01) groups=1000(dev01)Example 2: 修改用户的家目录[root@localhost ~]# mkdir /opt/dev01 [root@localhost ~]# usermod -d /opt/dev01 dev01 测试: [root@localhost ~]# su - dev01 Last login: Sat Apr 13 16:36:49 CST 2024 on pts/0 [dev01@localhost ~]$ pwd /opt/dev01 关于用户的主配置文件/etc/passwd # 用户的主配置文件/etc/shadow # 用户的密码文件主配置文件[root@localhost ~]# cat /etc/passwd |grep dev tss:x:59:59:Account used for TPM access:/dev/null:/sbin/nologin dev01:x:1001:1000::/opt/dev01:/bin/bash dev03:x:1100:1100::/opt/dev03:/sbin/nologin 以冒号(:)作为分隔符 dev03:x:1100:1100::/opt/dev03:/sbin/nologin 第一个字段 #用户名 第二个字段 #密码占位符 第三个字段 #用户的ID 第四个字段 #用户组ID 第五个字段 #描述信息 第六个字段 #用户的家目录 第七个字段 #用户是否可以登录shell环境 用户的密码文件[root@localhost ~]# cat /etc/shadow root:$1$ruWCBuGb$dP9mCNiYN1mUuhiKZYo1b.::0:99999:7::: dev03:$6$NYLpnJrtz7T0o0A0$OvJkT3iQEalo0yl2Ht4HZse22:19826:0:99999:7::: 以冒号(:)作为分隔符 第一个字段 #用户名 第二个字段 #用户的密码 第三个字段 #最后修改时间 第四个字段 #最小间隔时间 第五个字段 #最大间隔时间 第六个字段 #警告时间 第七、八个字段 #保留字段切换用户命令:su语法: su [options][username]Example 1 切换用户当不切换所在的位置 - #切换用户的时候,连目录一起切换(系统环境) root@localhost ~]# su - dev04 [dev04@localhost ~]$ pwd /home/dev04
2024年04月13日
58 阅读
0 评论
0 点赞
2024-04-11
如何在CentOS 7中升级Linux内核
介绍Linux内核是所有Linux发行版运行的基础。它是开源软件-任何人都可以反编译、检查和修改代码。内核的更新版本可以提高安全性,增加功能,并提高操作系统的运行速度。本指南将指导您如何在CentOS 7上升级Linux内核。 先决条件CentOS服务器访问命令行/终端访问Sudo特权您系统的最新备份更新CentOS内核版本的步骤yum软件包管理器允许内核更新。然而,CentOS没有在官方存储库中提供最新的内核版本。要更新CentOS上的内核,您需要安装一个名为ElRepo的第三方存储库。ElRepo提供来自kernel.org的最新内核版本。官方版本经过测试,以确保它们正常工作,并且不会破坏应用程序和操作系统功能的稳定性。有两种类型的Linux内核版本:稳定的长期支持内核版本-更新频率较低,但支持时间更长。主线内核发布-支持期限较短,但更新更频繁。步骤1:检查您当前的内核版本要在CentOS上检查当前内核版本,请打开命令行界面并输入以下命令: [root@web ~]# uname -msr系统应该返回一个如下所示的条目:Linux 3.10.0-862.el7.x86-64 x86-64输出指示您当前运行的内核版本,以及它基于哪种架构。 第2步:更新CentOS存储库在升级内核之前,所有软件包都必须更新到最新版本。要更新CentOS软件存储库,请使用以下命令:[root@web ~]# yum -y update步骤3:启用ELRepo存储库要安装新的内核版本,需要启用一个新的存储库(ELRepo存储库)。在终端窗口中,键入:导入ELRepo存储库安装GPG密钥。这很重要-CentOS不允许安装未签名的软件包。GPG密钥提供数字签名,以验证软件是否真实。[root@web ~]# rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org安装elrepo库[root@web ~]# rpm -Uvh https://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm安装完成输出:第4步:列出可用内核要列出可用的内核,请输入:[root@web ~]# yum list available --disablerepo='*' --enablerepo=elrepo-kernel系统应返回可用模块的列表。在列表中,注意一行说kernel-lt——表示稳定的长期支持版本——或kernel-ml——表示主线版本,支持期限较短,但更新更频繁。[root@web ~]# yum list available --disablerepo='*' --enablerepo=elrepo-kernel 已加载插件:fastestmirror, langpacks, product-id, search-disabled-repos, subscription-manager This system is not registered with an entitlement server. You can use subscription-manager to register. Loading mirror speeds from cached hostfile * elrepo-kernel: mirrors.tuna.tsinghua.edu.cn elrepo-kernel | 3.0 kB 00:00:00 elrepo-kernel/primary_db | 2.1 MB 00:00:05 可安装的软件包 elrepo-release.noarch 7.0-6.el7.elrepo elrepo-kernel kernel-lt.x86_64 5.4.267-1.el7.elrepo elrepo-kernel kernel-lt-devel.x86_64 5.4.267-1.el7.elrepo elrepo-kernel kernel-lt-doc.noarch 5.4.267-1.el7.elrepo elrepo-kernel kernel-lt-headers.x86_64 5.4.267-1.el7.elrepo elrepo-kernel kernel-lt-tools.x86_64 5.4.267-1.el7.elrepo elrepo-kernel kernel-lt-tools-libs.x86_64 5.4.267-1.el7.elrepo elrepo-kernel kernel-lt-tools-libs-devel.x86_64 5.4.267-1.el7.elrepo elrepo-kernel kernel-ml.x86_64 6.7.1-1.el7.elrepo elrepo-kernel kernel-ml-devel.x86_64 6.7.1-1.el7.elrepo elrepo-kernel kernel-ml-doc.noarch 6.7.1-1.el7.elrepo elrepo-kernel kernel-ml-headers.x86_64 6.7.1-1.el7.elrepo elrepo-kernel kernel-ml-tools.x86_64 6.7.1-1.el7.elrepo elrepo-kernel kernel-ml-tools-libs.x86_64 6.7.1-1.el7.elrepo elrepo-kernel kernel-ml-tools-libs-devel.x86_64 6.7.1-1.el7.elrepo elrepo-kernel perf.x86_64 5.4.267-1.el7.elrepo elrepo-kernel python-perf.x86_64 5.4.267-1.el7.elrepo elrepo-kernel 第5步:安装新的CentOS内核版本要安装最新的主线内核[root@web ~]# yum --enablerepo=elrepo-kernel install kernel-ml第6步:查看可用版本[root@web ~]# cat /boot/grub2/grub.cfg | grep 'menuentry ' menuentry 'CentOS Linux (6.7.1-1.el7.elrepo.x86_64) 7 (Core)' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-6.7.1-1.el7.elrepo.x86_64-advanced-91451a1f-7d40-48f9-8c65-a8a9d93dfaca' { menuentry 'CentOS Linux (3.10.0-1160.114.2.el7.x86_64) 7 (Core)' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-3.10.0-1160.114.2.el7.x86_64-advanced-91451a1f-7d40-48f9-8c65-a8a9d93dfaca' { menuentry 'CentOS Linux (3.10.0-1160.95.1.el7.x86_64) 7 (Core)' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-3.10.0-1160.95.1.el7.x86_64-advanced-91451a1f-7d40-48f9-8c65-a8a9d93dfaca' { menuentry 'CentOS Linux (3.10.0-1160.92.1.el7.x86_64) 7 (Core)' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-3.10.0-1160.92.1.el7.x86_64-advanced-91451a1f-7d40-48f9-8c65-a8a9d93dfaca' { menuentry 'CentOS Linux (3.10.0-1160.71.1.el7.x86_64) 7 (Core)' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-3.10.0-1160.71.1.el7.x86_64-advanced-91451a1f-7d40-48f9-8c65-a8a9d93dfaca' { menuentry 'CentOS Linux (0-rescue-e57ef32020fa406d9bbee213aba339ed) 7 (Core)' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-0-rescue-e57ef32020fa406d9bbee213aba339ed-advanced-91451a1f-7d40-48f9-8c65-a8a9d93dfaca' {第7步:设置新内核为默认启动修改启动内核两种方法:第一种:修改grub引导到配置文件一旦您确认新内核兼容并正常工作,您将需要编辑GRUB引导实用程序,以便默认情况下,它会加载您的新内核。导航到/etc/default/,然后使用文本编辑器打开grub文件。或者,在终端中键入以下内容:sudo vim /etc/default/grub文件打开后,查找显示GRUB_DEFAULT=X的行,并将其更改为GRUB_DEFAULT=0(零)。此行将指示引导加载程序默认为列表中的第一个内核,这是最新的。保存文件,然后在终端中键入以下命令以重新创建内核配置:sudo grub2-mkconfig -o /boot/grub2/grub.cfg第二种:直接通过命令修改grub2-set-default 'CentOS Linux (6.7.1-1.el7.elrepo.x86_64) 7 (Core)'第8步: 查看设置的内核版本[root@web ~]# grub2-editenv list saved_entry=CentOS Linux (6.7.1-1.el7.elrepo.x86_64) 7 (Core)第9步:重启服务reboot验证默认情况下,引导加载程序是否设置为加载最新的内核。
2024年04月11日
438 阅读
0 评论
2 点赞
2024-04-05
nurses 磁盘使用
ncdu 命令概述ncdu(NCurses Disk Usage)是著名的 "du "的curses版本,可快速查看哪些目录正在占用磁盘空间。语法:ncdu <options> <directory>选项-h,--help此帮助信息 -q静音模式,刷新间隔为 2 秒 -v,-V,--版本 打印版本 -x 相同的文件系统 -启用扩展信息 -r 只读 -o FILE 将扫描目录导出到 FILE -从 FILE 导入扫描目录 -0,-1,-2扫描时使用的 UI(0=无,2=全 ncurses) --si 使用进制 10 (SI) 前缀,而不是进制 2 --exclude PATTERN 排除与 PATTERN 匹配的文件 -X, --exclude-from FILE 排除与 FILE 中任何模式匹配的文件 -L, --follow-symlinks 遵循符号链接(不包括目录) --exclude-caches 排除包含 CACHEDIR.TAG 的目录 --exclude-kernfs 排除 Linux 伪文件系统(procfs、sysfs、cgroup...) --confirm-quit 确认退出 ncdu --color SCHEME 设置颜色方案(off/dark/dark-bg)示例ubuntucom:~$ ncdu /
2024年04月05日
71 阅读
0 评论
0 点赞
2024-04-02
Ubuntu 系统LVM 磁盘扩容
问题 系统磁盘总容量500G,在安装ubuntu系统选择使用LVM作为分区,所以导致现在系统磁盘不够使用排查:查看卷组:查看逻辑卷:ubuntu系统默认不会把所有的存储空间划分给系统,以保证系统安全性,所以保留了一些存储空间,解决方案:从卷组里划分出一些空间给逻辑卷扩容y36@y36-server-ubuntucom:~$ sudo lvextend -L +100G /dev/ubuntu-vg/ubuntu-lv Size of logical volume ubuntu-vg/ubuntu-lv changed from 100.00 GiB (25600 extents) to 200.00 GiB (51200 extents). Logical volume ubuntu-vg/ubuntu-lv successfully resized.刷新逻辑卷y36@y36-server-ubuntucom:~$ sudo resize2fs /dev/ubuntu-vg/ubuntu-lv resize2fs 1.47.0 (5-Feb-2023) Filesystem at /dev/ubuntu-vg/ubuntu-lv is mounted on /; on-line resizing required old_desc_blocks = 13, new_desc_blocks = 25 The filesystem on /dev/ubuntu-vg/ubuntu-lv is now 52428800 (4k) blocks long.查看系统磁盘空间y36@y36-server-ubuntucom:~$ df -h Filesystem Size Used Avail Use% Mounted on tmpfs 3.2G 1.9M 3.2G 1% /run /dev/mapper/ubuntu--vg-ubuntu--lv 197G 81G 108G 43% / tmpfs 16G 0 16G 0% /dev/shm tmpfs 5.0M 0 5.0M 0% /run/lock tmpfs 16G 0 16G 0% /run/qemu /dev/sda1 2.0G 243M 1.6G 14% /boot tmpfs 3.2G 4.0K 3.2G 1% /run/user/1000
2024年04月02日
157 阅读
0 评论
0 点赞
2024-03-28
使用shell脚本创建KVM虚拟机
[root@web ~]# cat install_vm.sh #!/bin/bash # 定义虚拟机名称、磁盘路径、操作系统镜像和Kickstart文件路径 read -p "请输入虚拟机的名称:" VM_NAME #VM_NAME="myvm" VM_DISK_PATH="/home/xuni/${VM_NAME}.qcow2" #read -p "请输入您安装系统镜像的位置:" ISO_IMAGE ISO_IMAGE="/home/ISO/rhel-8.8-x86_64-dvd(1).iso" KICKSTART_FILE="/root/ks.cfg" #read -p "请指定KS文件位置" KICKSTART_FILE # 创建虚拟机磁盘 qemu-img create -f qcow2 "${VM_DISK_PATH}" 40G # 使用virt-install启动虚拟机安装过程 virt-install \ --name "${VM_NAME}" \ --memory 4089 \ --vcpus 2 \ --disk path="${VM_DISK_PATH}",format=qcow2 \ --os-type=linux \ --cdrom "${ISO_IMAGE}" \ --network network=default \ #--initrd-inject="${KICKSTART_FILE}" --extra-args "ks=file://${KICKSTART_FILE}" # 等待虚拟机安装完成 echo "等待安装完成..." while ! virsh list --all | grep -q "${VM_NAME}"; do sleep 5 done # 获取虚拟机的IP地址 VM_IP=$(virsh domifaddr "${VM_NAME}" | grep -oE "\b([0-9]{1,3}\.){3}[0-9]{1,3}\b") echo "虚拟机 ${VM_NAME} 的IP地址为:${VM_IP}" echo "完成安装!"
2024年03月28日
105 阅读
0 评论
0 点赞
2024-03-28
shell-script 创建密钥认证
[root@web ~]# cat ssh-copy-id.sh #!/bin/bash # 设置远程服务器的用户名列表和对应的IP地址列表 USERS=("user1" "user2" "user3") # 替换为你的用户名列表 SERVERS=("192.168.212.141" "192.168.212.142" "192.168.212.143") # 替换为你的服务器IP地址列表 PASSWORD="your_password" # 替换为你的远程服务器密码 PUBLIC_KEY_FILE="$HOME/.ssh/id_rsa.pub" # 公钥文件路径 # 检查公钥文件是否存在 if [ ! -f "$PUBLIC_KEY_FILE" ]; then echo "公钥文件不存在,请确认路径是否正确或者生成新的SSH密钥对。" exit 1 fi # 循环遍历远程服务器列表,并推送公钥 for ((i = 0; i < ${#SERVERS[@]}; i++)); do REMOTE_SERVER="${USERS[$i]}@${SERVERS[$i]}" # 向远程服务器传输公钥内容 echo "正在将公钥推送到远程服务器 $REMOTE_SERVER ..." sshpass -p "$PASSWORD" ssh-copy-id -o StrictHostKeyChecking=no -i "$PUBLIC_KEY_FILE" "$REMOTE_SERVER" if [ $? -eq 0 ]; then echo "公钥已成功推送到远程服务器 $REMOTE_SERVER。" else echo "无法将公钥推送到远程服务器 $REMOTE_SERVER,请检查权限和SSH配置。" fi done
2024年03月28日
63 阅读
0 评论
0 点赞
2024-03-28
shell 脚本批量创建免密登录
#!/bin/bash ipadd="192.168.212" read -p "请输入密码" passwd ssh_copy(){ for i in 141 142 143 do echo "正在连接$ipadd.$i" sshpass -p "$passwd" ssh-copy-id $ipadd.$i -o StrictHostKeyChecking=no done } if [ -f /usr/bin/sshpass ];then ssh_copy else yum -y install sshpass ssh_copy fi
2024年03月28日
38 阅读
0 评论
1 点赞
2024-03-28
shell 脚本安全审计
[root@web ~]# cat security.sh #!/bin/bash # 安全审计和漏洞扫描脚本 # 设置输出文件 output_file="security_scan_report.txt" # 执行系统信息收集 echo "收集系统信息..." > $output_file date >> $output_file echo "---------------------------" >> $output_file uname -a >> $output_file df -h >> $output_file echo "" >> $output_file for ip in {1..254} do ping -c 3 192.168.218.$ip if [ $? -eq 0 ]; then # 执行漏洞扫描 echo "执行漏洞扫描..." >> $output_file echo "---------------------------" >> $output_file # 在这里使用适合你的漏洞扫描工具,例如:Nmap、OpenVAS、Nessus等 nmap -p 1-65535 -T4 -A -v 192.168.218.$ip >> $output_file echo "" >> $output_file # 执行安全审计 echo "执行安全审计..." >> $output_file echo "---------------------------" >> $output_file # 在这里使用适合你的审计工具,例如 Lynis 或其他自定义脚本 yum -y install lynis > /dev/null lynis audit system >> $output_file echo "" >> $output_file else echo 192.168.218.$ip down fi done # 结束脚本 echo "安全审计和漏洞扫描已完成。报告保存在 $output_file。"
2024年03月28日
60 阅读
0 评论
0 点赞
2024-03-28
Docker 常用命令
Docker 常用命令Docker 镜像相关命令:docker images:列出本地主机上的 Docker 镜像。docker pull <镜像名>:从 Docker 镜像仓库中拉取指定的镜像。docker push <镜像名>:将本地的镜像推送到 Docker 镜像仓库。docker build -t <镜像名> <Dockerfile路径>:根据 Dockerfile 构建镜像。Docker 容器相关命令:docker run <镜像名>:根据镜像创建并启动一个容器。docker ps:列出正在运行的容器。docker stop <容器ID>:停止指定的容器。docker rm <容器ID>:删除指定的容器。docker exec <容器ID> <命令>:在正在运行的容器内执行命令。Docker 网络相关命令:docker network ls:列出所有的 Docker 网络。docker network create <网络名>:创建一个新的 Docker 网络。docker network connect <网络名> <容器ID>:将容器连接到指定的网络。docker network disconnect <网络名> <容器ID>:将容器从指定的网络断开。Docker 数据管理命令:docker volume ls:列出所有的 Docker 卷。docker volume create <卷名>:创建一个新的 Docker 卷。docker volume inspect <卷名>:查看指定 Docker 卷的详细信息。docker volume rm <卷名>:删除指定的 Docker 卷。Docker Compose 相关命令:docker-compose up:根据 Docker Compose 文件启动应用程序。docker-compose down:停止并删除由 Docker Compose 启动的应用程序。docker-compose ps:列出 Docker Compose 中的容器状态。Docker 日志相关命令:docker logs <容器ID>:查看容器的日志输出。docker logs -f <容器ID>:实时跟踪容器的日志输出。docker logs --tail <行数> <容器ID>:仅显示容器日志的指定行数。Docker Swarm 相关命令:docker swarm init:初始化 Docker Swarm 模式,并创建一个 Swarm 管理节点。docker swarm join:将节点加入 Docker Swarm 集群。docker node ls:列出 Docker Swarm 集群中的节点。docker service create:在 Swarm 集群中创建一个服务。docker service scale:调整 Swarm 服务的副本数量。Docker 安全相关命令:docker scan <镜像名>:扫描 Docker 镜像的安全漏洞。docker container run --cap-drop <能力>:限制容器的特权能力。docker container run --read-only:以只读模式运行容器。docker container run --user <用户>:指定容器运行时的用户。Docker 清理命令:docker system prune:清理未使用的镜像、容器和卷。docker image prune:清理未使用的镜像。docker container prune:清理未运行的容器。docker volume prune:清理未使用的卷。Docker 镜像仓库相关命令:docker login:登录到 Docker 镜像仓库。docker logout:注销当前登录的 Docker 镜像仓库。docker search <关键词>:在 Docker 镜像仓库中搜索镜像。docker tag <镜像名>:<标签> <新的镜像名>:<新的标签>:给镜像添加标签或重命名镜像。docker rmi <镜像名>:删除本地主机上的指定镜像。Docker 资源限制和监控命令:docker run --cpu-shares <权重>:设置容器的 CPU 资源权重。docker run --memory <内存限制>:限制容器可使用的内存大小。docker stats <容器ID>:实时显示容器的资源使用情况。docker top <容器ID>:查看容器内运行的进程信息。Docker Swarm Stack 相关命令:docker stack deploy -c <compose文件> <堆栈名称>:部署一个 Docker Swarm Stack。docker stack ls:列出当前 Swarm 集群中的堆栈。docker stack services <堆栈名称>:列出指定堆栈的服务。docker stack ps <堆栈名称>:列出指定堆栈的任务状态。Docker 调试和故障排查命令:docker logs <容器ID>:查看容器的日志输出。docker inspect <容器ID>:查看容器的详细信息,包括网络和存储配置。docker exec -it <容器ID> <命令>:在运行中的容器内执行交互式命令。docker attach <容器ID>:附加到正在运行的容器的标准输入、输出和错误流。
2024年03月28日
71 阅读
0 评论
1 点赞
2024-03-28
k8s 常用命令
kubernetes 常用命令以下是一些常用的Kubernetes命令:查看集群信息和节点状态:kubectl cluster-info:查看集群信息。kubectl get nodes:查看所有节点的状态。查看和管理资源:kubectl get pods:查看所有Pod的状态。kubectl get deployments:查看所有部署的状态。kubectl get services:查看所有服务的状态。kubectl get namespaces:查看所有命名空间的状态。kubectl describe <resource_type> <resource_name>:查看特定资源的详细信息。kubectl delete <resource_type> <resource_name>:删除特定资源。创建和管理资源:kubectl create -f <yaml_file>:使用YAML文件创建资源。kubectl apply -f <yaml_file>:使用YAML文件创建或更新资源。kubectl expose <resource_type> <resource_name> --port=<port>:将服务暴露到集群内部。kubectl scale <resource_type> <resource_name> --replicas=<count>:调整副本数。进入Pod和容器:kubectl exec -it <pod_name> --container=<container_name> -- /bin/bash:进入特定Pod的容器。kubectl logs <pod_name>:查看特定Pod的日志。调试和故障排查:kubectl describe pod <pod_name>:查看Pod的详细信息,包括事件和状态。kubectl logs <pod_name> -c <container_name>:查看特定容器的日志。kubectl get events:查看集群中的事件。kubectl rollout status <deployment_name>:查看部署的滚动更新状态。调试和故障排查:kubectl describe <resource_type> <resource_name>:查看特定资源的详细信息,如Pod、Deployment等。kubectl logs <pod_name> -c <container_name>:查看特定容器的日志。kubectl get events:查看集群中的事件。kubectl rollout status <deployment_name>:查看部署的滚动更新状态。端口转发和代理:kubectl port-forward <pod_name> <local_port>:<pod_port>:将本地端口与Pod的端口进行转发,用于访问Pod内部服务。kubectl proxy:在本地启动一个代理,使您可以通过API访问集群中的服务。配置管理:kubectl create configmap <configmap_name> --from-file=<path_to_file>:从文件创建ConfigMap。kubectl create secret generic <secret_name> --from-literal=<key>=<value>:从字面值创建Secret。kubectl edit <resource_type> <resource_name>:编辑特定资源的配置。扩展和自动化:kubectl autoscale <deployment_name> --min=<min_replicas> --max=<max_replicas> --cpu-percent=<cpu_percentage>:为Deployment创建自动扩展配置。kubectl apply -f <manifest_file> --prune:使用YAML文件进行部署,并自动删除已不存在的资源。描述和验证资源配置:kubectl explain <resource_type>:查看特定资源类型的详细说明。kubectl apply -f <manifest_file> --dry-run=client:验证YAML文件的语法和资源配置是否正确。状态查询和监控:kubectl top <resource_type>:查看特定资源的资源使用情况,如kubectl top pods查看Pod的资源使用情况。kubectl get pods --watch:持续监视Pod的状态变化。kubectl get pods -o wide:显示更详细的Pod信息,包括节点和IP地址。调度和节点管理:kubectl drain <node_name>:从节点上驱逐Pod,并将它们迁移到其他节点。kubectl cordon <node_name>:标记节点为不可调度状态,阻止新的Pod被调度到该节点。kubectl uncordon <node_name>:取消节点的不可调度状态。部署和滚动更新:kubectl apply -f <manifest_file>:使用YAML文件创建或更新资源,如果资源已存在,则更新。kubectl rollout history <resource_type> <resource_name>:查看特定资源的部署历史。kubectl rollout undo <resource_type> <resource_name>:回滚部署到先前的版本。认证和授权:kubectl config get-contexts:查看Kubernetes集群的上下文配置。kubectl config use-context <context_name>:切换到指定的上下文配置。kubectl auth can-i <verb> <resource_type>:检查当前用户是否具有执行特定操作的权限。清理和删除资源:kubectl delete <resource_type> <resource_name>:删除特定的资源。kubectl delete namespace <namespace_name>:删除命名空间及其所有的资源。kubectl delete pods --all:删除所有的Pod。安全管理:kubectl create role <role_name> --verb=<verb> --resource=<resource_type> --namespace=<namespace>:创建角色。kubectl create rolebinding <rolebinding_name> --role=<role_name> --user=<user> --namespace=<namespace>:创建角色绑定。kubectl create serviceaccount <serviceaccount_name> --namespace=<namespace>:创建服务账号。kubectl create clusterrole <clusterrole_name> --verb=<verb> --resource=<resource_type>:创建集群角色。kubectl create clusterrolebinding <clusterrolebinding_name> --clusterrole=<clusterrole_name> --user=<user>:创建集群角色绑定。日志和调试:kubectl logs <pod_name> -f:实时查看Pod的日志。kubectl port-forward <pod_name> <local_port>:<pod_port>:将本地端口与Pod的端口进行转发。kubectl attach <pod_name> -c <container_name>:将终端附加到运行中的容器。集群管理和扩展:kubectl get componentstatuses:查看集群组件的状态。kubectl get cs:查看集群组件的状态(简写)。kubectl scale deployment <deployment_name> --replicas=<replica_count>:调整部署的副本数。kubectl scale statefulset <statefulset_name> --replicas=<replica_count>:调整StatefulSet的副本数。插件和扩展:kubectl krew install:安装Krew插件管理器。kubectl krew search:搜索可用的Krew插件。kubectl plugin <plugin_name>:运行特定的Kubectl插件。版本和更新:kubectl version:查看Kubernetes客户端和服务器版本信息。kubectl get nodes --show-labels:查看节点的标签信息。运行和管理作业(Job):kubectl create job <job_name> --image=<image_name>:创建一个作业。kubectl get jobs:查看所有作业的状态。kubectl delete job <job_name>:删除一个作业。运行和管理批处理任务(CronJob):kubectl create cronjob <cronjob_name> --image=<image_name> --schedule=<cron_expression>:创建一个定时任务。kubectl get cronjobs:查看所有定时任务的状态。kubectl delete cronjob <cronjob_name>:删除一个定时任务。运行和管理DaemonSet:kubectl create daemonset <daemonset_name> --image=<image_name>:创建一个DaemonSet。kubectl get daemonsets:查看所有DaemonSet的状态。kubectl delete daemonset <daemonset_name>:删除一个DaemonSet。网络和服务发现:kubectl get services:查看所有服务的状态。kubectl expose deployment <deployment_name> --port=<port> --target-port=<target_port>:将部署暴露为服务。kubectl get ingress:查看所有Ingress的状态。状态检查和健康检查:kubectl get pods --field-selector=status.phase=<phase>:根据状态检索Pod。kubectl get pods --selector=<label_selector>:根据标签选择器检索Pod。kubectl describe pod <pod_name>:查看Pod的详细信息,包括事件和状态。故障排查和日志分析:kubectl logs <pod_name>:查看Pod的日志。kubectl describe <resource_type> <resource_name>:查看特定资源的详细信息,如Pod、Deployment等。kubectl exec -it <pod_name> -- /bin/bash:在Pod内部执行交互式Shell命令。状态和监控:kubectl top <resource_type>:查看特定资源的资源使用情况,如kubectl top pods查看Pod的资源使用情况。kubectl describe <resource_type> <resource_name>:查看特定资源的详细信息,如Pod、Deployment等。kubectl get events:查看集群中的事件。kubectl get metrics:查看集群的度量指标。存储和卷管理:kubectl get storageclasses:查看所有存储类的状态。kubectl get pv:查看所有持久卷的状态。kubectl get pvc:查看所有持久卷声明的状态。kubectl create pvc <pvc_name> --volume=<volume_name>:创建持久卷声明。调度和亲和性:kubectl describe nodes:查看节点的详细信息,包括标签和亲和性设置。kubectl taint nodes <node_name> <taint_key>=<taint_value>:<taint_effect>:为节点添加污点。kubectl label nodes <node_name> <label_key>=<label_value>:为节点添加标签。安全和权限:kubectl create role <role_name> --verb=<verb> --resource=<resource_type> --namespace=<namespace>:创建角色。kubectl create rolebinding <rolebinding_name> --role=<role_name> --user=<user> --namespace=<namespace>:创建角色绑定。kubectl create clusterrole <clusterrole_name> --verb=<verb> --resource=<resource_type>:创建集群角色。kubectl create clusterrolebinding <clusterrolebinding_name> --clusterrole=<clusterrole_name> --user=<user>:创建集群角色绑定。配置管理:kubectl create configmap <configmap_name> --from-file=<path_to_file>:从文件创建ConfigMap。kubectl create secret generic <secret_name> --from-literal=<key>=<value>:从字面值创建Secret。kubectl edit <resource_type> <resource_name>:编辑特定资源的配置。kubectl get configmaps:查看所有ConfigMap的状态。kubectl get secrets:查看所有Secret的状态。扩展和自动化:kubectl autoscale <deployment_name> --min=<min_replicas> --max=<max_replicas> --cpu-percent=<cpu_percentage>:为Deployment创建自动扩展配置。kubectl apply -f <manifest_file> --prune:使用YAML文件进行部署,并自动删除已不存在的资源。kubectl apply -f <manifest_file> --validate:使用YAML文件进行部署,并验证配置的正确性。kubectl apply -f <manifest_file> --dry-run=client:验证YAML文件的语法和资源配置是否正确。描述和验证资源配置:kubectl explain <resource_type>:查看特定资源类型的详细说明。kubectl apply -f <manifest_file> --dry-run=client:验证YAML文件的语法和资源配置是否正确。kubectl apply -f <manifest_file> --validate:使用YAML文件进行部署,并验证配置的正确性。kubectl diff -f <manifest_file>:比较YAML文件中的配置与当前集群中的配置的差异。清理和删除资源:kubectl delete <resource_type> <resource_name>:删除特定的资源。kubectl delete namespace <namespace_name>:删除命名空间及其所有的资源。kubectl delete pods --all:删除所有的Pod。kubectl delete --all <resource_type>:删除所有的指定资源类型。资源扩展和自定义:kubectl apply -f <custom_resource_definition>:创建自定义资源定义(Custom Resource Definition,CRD)。kubectl get crd:查看所有自定义资源定义的状态。kubectl get <custom_resource>:查看特定自定义资源的状态。网络策略和访问控制:kubectl create networkpolicy <networkpolicy_name> --namespace=<namespace> --from=<source_selector> --to=<destination_selector> --port=<port>:创建网络策略。kubectl get networkpolicies:查看所有网络策略的状态。执行和管理任务:kubectl create job <job_name> --image=<image_name>:创建一个作业。kubectl get jobs:查看所有作业的状态。kubectl delete job <job_name>:删除一个作业。集群信息和调试:kubectl cluster-info:查看集群信息。kubectl describe node <node_name>:查看特定节点的详细信息。kubectl describe pod <pod_name>:查看特定Pod的详细信息。kubectl describe service <service_name>:查看特定服务的详细信息。水平扩展和自动伸缩:kubectl scale deployment <deployment_name> --replicas=<replica_count>:调整部署的副本数。kubectl scale statefulset <statefulset_name> --replicas=<replica_count>:调整StatefulSet的副本数。kubectl autoscale deployment <deployment_name> --min=<min_replicas> --max=<max_replicas> --cpu-percent=<cpu_percentage>:为Deployment创建自动扩展配置。备份和恢复:kubectl get pv:查看所有持久卷的状态。kubectl get pvc:查看所有持久卷声明的状态。kubectl get snapshot:查看所有快照的状态。
2024年03月28日
190 阅读
0 评论
0 点赞
2024-03-28
kubernetes 1.28部署
构建k8s集群使用kubeadm 工具构建单节点架构图一、准备环境1.1 要求计算节点:MEM: 2GCPU: 2C控制节点:MEM: 4GCPU: 2C1.2 IP地址规划IP地址系统/内核角色版本192.168.212.75Red Hat Enterprise Linux 8.8 Linux 4.18.0-477.10.1.el8_8.x86_64masterv1.28.0192.168.212.76Red Hat Enterprise Linux 8.8 <br/>Linux 4.18.0-477.10.1.el8_8.x86_64node01v1.28.0192.168.212.77Red Hat Enterprise Linux 8.8 <br/>Linux 4.18.0-477.10.1.el8_8.x86_64node02v1.28.0192.168.212.78Red Hat Enterprise Linux 8.8 <br/>Linux 4.18.0-477.10.1.el8_8.x86_64node03v1.28.01.3 部署前的准备工作在所有节点上运行1. 配置主机名(hosts) 2. 关闭防火墙/selinux/swap cp /etc/fstab /etc/fstab_bak && grep -v "swap" /etc/fstab_bak > /etc/fstab 3. 修改网络配置 4. 修改内核 5. runtime ---> docker 6. 部署docker的第三方插件 安装容器运行时(container runtime)我们是基于docker 实现,部署k8s使用kubeadm的方式部署, 所以应该在所有节点上安装容器运行时,1. install container docker~]# dnf -y install vim yum-utils ~]# yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo ~]# yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y2.安装docker的第三方插件cri-dockerd1.源码构建1. 拉取源代码 2. 编译 3. 安装2.RPM 包安装2.1、获取软包wget https://github.com/Mirantis/cri-dockerd/releases/download/v0.3.14/cri-dockerd-0.3.14-3.el8.x86_64.rpm2.2. installdnf -y install cri-dockerd-0.3.14-3.el8.x86_64.rpm 2.3. 启动cri-dockerd进程cri-dockerd & 安装 kubeadm、kubelet 和 kubectl你需要在每台机器上安装以下的软件包:kubeadm:用来初始化集群的指令。kubelet:在集群中的每个节点上用来启动 Pod 和容器等。kubectl:用来与集群通信的命令行工具。一、 安装kubernetes的源配置:源cat <<EOF | tee /etc/yum.repos.d/kubernetes.repo [kubernetes] name=Kubernetes baseurl=https://mirrors.aliyun.com/kubernetes-new/core/stable/v1.28/rpm/ enabled=1 gpgcheck=1 gpgkey=https://mirrors.aliyun.com/kubernetes-new/core/stable/v1.28/rpm/repodata/repomd.xml.key EOF列出可用版本yum list kubeadm --showduplicates | sort -r 安装yum install -y kubelet-1.28.0 kubeadm-1.28.0 kubectl-1.28.0 systemctl enable --now kubelet 二、 初始化kubenetes集群初始化[root@kube-master cri-dockerd]# kubeadm init --cri-socket unix:///var/run/cri-dockerd.sock 由于网络源,垃取不了镜像列出kubenetes所需要的组件的版本信息:[root@kube-master cri-dockerd]# kubeadm config images list I0301 09:54:25.716272 21904 version.go:256] remote version is much newer: v1.29.2; falling back to: stable-1.28 registry.k8s.io/kube-apiserver:v1.28.7 registry.k8s.io/kube-controller-manager:v1.28.7 registry.k8s.io/kube-scheduler:v1.28.7 registry.k8s.io/kube-proxy:v1.28.7 registry.k8s.io/pause:3.9 registry.k8s.io/etcd:3.5.9-0 registry.k8s.io/coredns/coredns:v1.10.1手动获取镜像:➜ ~ docker pull registry.k8s.io/kube-apiserver:v1.28.7 ➜ ~ docker pull registry.k8s.io/kube-controller-manager:v1.28.7 ➜ ~ docker pull registry.k8s.io/kube-scheduler:v1.28.7 ➜ ~ docker pull registry.k8s.io/kube-proxy:v1.28.7 ➜ ~ docker pull registry.k8s.io/pause:3.9 ➜ ~ docker pull registry.k8s.io/etcd:3.5.9-0 ➜ ~ docker pull registry.k8s.io/coredns/coredns:v1.10.1 ➜ ~ docker save -o kube_images/apiserver.tar registry.k8s.io/kube-apiserver:v1.28.7 ➜ ~ docker save -o kube_images/registry.k8s.io/kube-controller-manager:v1.28.7 ➜ ~ docker save -o kube_images/controller-manager.tar registry.k8s.io/kube-controller-manager:v1.28.7 ➜ ~ docker save -o kube_images/kube-scheduler.tar registry.k8s.io/kube-scheduler:v1.28.7 ➜ ~ docker save -o kube_images/proxy.tar registry.k8s.io/kube-proxy:v1.28.7 ➜ ~ docker save -o kube_images/pause.ta registry.k8s.io/pause:3.9 ➜ ~ docker save -o kube_images/etcd.tar registry.k8s.io/etcd:3.5.9-0 ➜ ~ docker save -o kube_images/codedns.tar registry.k8s.io/coredns/coredns:v1.10.1 ➜ ~ scp -r kube_images
[email protected]
:~
[email protected]
's password: codedns.tar 100% 51MB 74.0MB/s 00:00 proxy.tar 100% 79MB 68.5MB/s 00:01 controller-manager.tar 100% 117MB 61.1MB/s 00:01 pause.ta 100% 737KB 53.5MB/s 00:00 kube-scheduler.tar 100% 58MB 66.4MB/s 00:00 etcd.tar 100% 282MB 86.4MB/s 00:03 apiserver.tar # 加载镜像 [root@kube-master ~]# docker load -i apiserver.tar [root@kube-master ~]# docker load -i codedns.tar [root@kube-master ~]# docker load -i controller-manager.tar [root@kube-master ~]# docker load -i etcd.tar [root@kube-master ~]# docker load -i kube-scheduler.tar [root@kube-master ~]# docker load -i pause.ta [root@kube-master ~]# docker load -i proxy.tar 再次初始化:[addons] Applied essential addon: CoreDNS [addons] Applied essential addon: kube-proxy Your Kubernetes control-plane has initialized successfully! To start using your cluster, you need to run the following as a regular user: mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config Alternatively, if you are the root user, you can run: export KUBECONFIG=/etc/kubernetes/admin.conf You should now deploy a pod network to the cluster. Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at: https://kubernetes.io/docs/concepts/cluster-administration/addons/ Then you can join any number of worker nodes by running the following on each as root: kubeadm join 192.168.212.75:6443 --token ah1gmy.c9ybyxahew5tou0o \ --discovery-token-ca-cert-hash sha256:316141c909cbe8569730d61ac039eff7055e772df26f5471c2995f82006f657d 将工作节点加入到控制节点kubeadm join 192.168.212.75:6443 --token ah1gmy.c9ybyxahew5tou0o --discovery-token-ca-cert-hash sha256:316141c909cbe8569730d61ac039eff7055e772df26f5471c2995f82006f657d --cri-socket unix:///var/run/cri-dockerd.sock查看节点是否加入到控制节点中 [root@kube-master kube_images]# kubectl get nodes NAME STATUS ROLES AGE VERSION kube-master NotReady control-plane 8m28s v1.28.0 kube-node01 NotReady <none> 37s v1.28.0 kube-node02 NotReady <none> 8s v1.28.0 kube-node03 NotReady <none> 6s v1.28.0三、 安装网络插件flannelcalicoCilium以calico网络插件获取地址:wget https://docs.projectcalico.org/manifests/calico.yaml安装网络插件[root@kube-master ~]# kubectl apply -f calico.yaml 在所有的工作节点上需要安装的组件kube-proxy pause docker load -i proxy.tar docker load -i pause.ta 集群构建状态集群创建成功[root@kube-master ~]# kubectl get no NAME STATUS ROLES AGE VERSION kube-master Ready control-plane 42m v1.28.0 kube-node01 Ready <none> 34m v1.28.0 kube-node02 Ready <none> 34m v1.28.0 kube-node03 Ready <none> 34m v1.28.0{lamp/}
2024年03月28日
62 阅读
0 评论
2 点赞
2024-03-08
docker 常用命令
docker 基础命令语法2.1 docker 用法docker {子命令} [OPTIONS] COMMAND2. 关于镜像的命令2.2.1 垃取镜像命令:pull语法: docker pull [镜像]示例:centosdocker pull centos2.2.2 查找可用的镜像[root@ansible-controller ~]# docker search ubuntu2.2.3 列出本地镜像[root@ansible-controller ~]# docker image list REPOSITORY TAG IMAGE ID CREATED SIZE hello-world latest d2c94e258dcb 9 months ago 13.3kB centos latest 5d0da3dc9764 2 years ago 231MB [root@ansible-controller ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE hello-world latest d2c94e258dcb 9 months ago 13.3kB centos latest 5d0da3dc9764 2 years ago 231MB2.2.4 删除本地镜像rmi --rm image[root@ansible-controller ~]# docker rmi 5d0da3dc9764 Untagged: centos:latest Untagged: centos@sha256:a27fd8080b517143cbbbab9dfb7c8571c40d67d534bbdee55bd6c473f432b177 Deleted: sha256:5d0da3dc976460b72c77d94c8a1ad043720b0416bfc16c52c45d4847e53fadb6 Deleted: sha256:74ddd0ec08fa43d09f32636ba91a0a3053b02cb4627c35051aff89f853606b593. 创建/管理container3.1 创建一个container语法:Usage: docker create [OPTIONS] IMAGE [COMMAND] [ARG...] [root@ansible-controller ~]# docker create --name web-nginx nginx:latest dd8560bc86b20e4ac032dacf0a14ec01597336e86990979d3395b01b3993b8f7\ [options] --name #容器的名称3.2 运行一个container语法:Usage: docker run [OPTIONS] IMAGE [COMMAND] [ARG...]示例:[root@ansible-controller ~]# docker run e4720093a3c1 [root@ansible-controller ~]# docker run -P nginx:latest [root@ansible-controller ~]# docker run -p 80:80 e4720093a3c1 [root@ansible-controller ~]# docker run --name nginx_test -p 80:80 -d nginx:latest [root@ansible-controller ~]# docker run -it --name my_cnetos --rm 5d0da3dc9764 #测试使用,及时销毁 选项:--name -p -P -d #在后台运行容器并打印容器 ID -i #即使未连接,也要保持 STDIN 打开 -t TTY #分配一个伪6终端3.3 停止一个container[root@ansible-controller ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 11064c8e0064 5d0da3dc9764 "/bin/bash" 11 minutes ago Up 11 minutes my-centos 9a23b9ebcb9e nginx:latest "/docker-entrypoint.…" 33 minutes ago Up 33 minutes 0.0.0.0:80->80/tcp, :::80->80/tcp nginx_test [root@ansible-controller ~]# docker stop nginx_test nginx_test [root@ansible-controller ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 11064c8e0064 5d0da3dc9764 "/bin/bash" 14 minutes ago Up 14 minutes my-centos3.4 重启一个container[root@ansible-controller ~]# docker restart nginx_test nginx_test3.5 列出容器# 只列出正在运行container [root@ansible-controller ~]# docker container list CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES #列出所有的container (正在运行、以退出) [root@ansible-controller ~]# docker container list --all CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES dd8560bc86b2 nginx:latest "/docker-entrypoint.…" 2 minutes ago Created web-nginx 568d91fc0590 hello-world "/hello" 30 minutes ago Exited (0) 30 minutes ago goofy_ritchie [root@ansible-controller ~]# [root@ansible-controller ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES [root@ansible-controller ~]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES dd8560bc86b2 nginx:latest "/docker-entrypoint.…" 4 minutes ago Created web-nginx 568d91fc0590 hello-world "/hello" 33 minutes ago Exited (0) 33 minutes ago goofy_ritchie [root@ansible-controller ~]# 3.6 获取容器详细信息用法:docker inspect {容器名称/容器的ID}[root@ansible-controller ~]# docker inspect 10e8bfa05b003.7 进入容器[root@ansible-controller ~]# docker exec -it 9a23b9ebcb9e /bin/bash3.8 删除container[root@ansible-controller ~]# docker rm web-nginx web-nginx3.9 获取容器日志[root@ansible-controller ~]# docker logs -f nginx_test3.10 拷贝语法:docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|- docker cp [OPTIONS] SRC_PATH|- CONTAINER:DEST_PATH示例1:[root@ansible-controller docker_nginx]# docker cp af8d6a0271fe:/etc/nginx .八、数据持久化 volume保证数据安全数据一致性修改配置文件[root@ansible-controller html]# docker run --name nginx_volume -itd -p 81:80 -v /opt/docker_nginx/html/:/usr/share/nginx/html/ -4720093a3c1 [root@ansible-controller docker_nginx]# docker run -itd -P --name nginx_test_v1 -v /opt/docker_nginx/nginx:/etc/nginx/ -v /opt/docker_nginx/html/:/usr/share/nginx/ nginx:latest
2024年03月08日
192 阅读
0 评论
0 点赞
2024-03-08
install docker
Ubuntu更新包管理器的软件源:sudo apt update安装依赖包以允许apt通过HTTPS使用仓库:sudo apt install -y apt-transport-https ca-certificates curl software-properties-common添加Docker的官方GPG密钥:curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg添加Docker的稳定版本仓库:echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null安装Docker引擎:sudo apt update sudo apt install -y docker-ce docker-ce-cli containerd.io验证安装是否成功:sudo docker run hello-worldCentOS操作系统:安装所需的软件包:sudo yum install -y yum-utils设置Docker的稳定版本仓库:sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo安装Docker引擎:sudo yum install -y docker-ce docker-ce-cli containerd.io启动Docker服务:sudo systemctl start docker验证安装是否成功:sudo docker run hello-worldmacOS操作系统:下载Docker Desktop for Mac,并安装它:https://www.docker.com/products/docker-desktopWindows操作系统:下载Docker Desktop for Windows,并安装它:https://www.docker.com/products/docker-desktop这些是在常见操作系统上安装Docker的基本步骤。请注意,具体的步骤可能因操作系统版本或Docker版本而有所变化。建议查阅Docker官方文档以获取更详细和特定于操作系统版本的安装指南。
2024年03月08日
34 阅读
0 评论
0 点赞
1
2
3