whoami相关知识
-
『中级篇』集群服务间通信之RoutingMesh(47)service组成一个wordpress,一个mysql。这2个service运行在不同的机器上边,并且他们之前是可以进行通信的,可以通过servicename的方式通信。先创建mysql,wordpress查找mysql就是通过servicename这种方式。懂网络的老铁应该就知道了,这里面肯定有DNS的功劳在里面。实验的方式了解这个网络必须创建overlay的networksudo docker network create -d overlay demo创建一个service,这个service 使用whoami,这个image,这个image的作用,就是访问后,返回当前访问的主机名称docker service create --name whoami -p 8000:8000 --network demo jwilder/whoami#查看servi
-
linux 用户的相关操作查看当前用户:whoami whoami 查看登录用户 查看登录用户:who 退出登录账户: exit exit //如果是切换后的登陆用户,退出则返回上一个登陆账号。 添加用户账号:useradd useradd -d /home/a a -g test -m //创建一个用户名字叫a,主目录在/home/a,如果主目录不存在,就自动创建主目录,同时用户属于test组 设置用户密码:passwd 删除用户:userdel userdel -r abc(用户名) // 删除用户,同时删除用户的主目录 切换用户:su su - // 切换到root用户,同时切换目录
-
python中获取对象信息拿到一个变量,除了用 isinstance() 判断它是否是某种类型的实例外,还有没有别的方法获取到更多的信息呢? 例如,已有定义: class Person(object): def __init__(self, name, gender): self.name = name self.gender = gender class Student(Person): def __init__(self, name, gender, score): super(Student, self).__init__(name, gender) self.score = score def whoAmI(self): return 'I am a Student, my name is %s' % self.name 首先可以用
-
js访问对象属性的2个方法笔者在学习的过程中,了解到访问对象的属性,其实有两种方式:比如:一个对象 Obj = {"name": "whoami", "AGE": "20"}1.用点访问,Obj.Name ;2.用中括号访问,Obj["Name"];上述两种方式得到的结果都是属性Name的值whoami;两者的区别:1.语法方面的区别点表示法的对象的属性名是标识符,而后者的属性名则是一个字符串。2.灵活性方面的区别在JavaScript编写程序中,可以为对象创建任意数目的属性。但使用”.“运算符来存取一个对象的属性时,属性名是用标识符表示的。而在JavaScript程序中,标识符必须被逐字地输入,它们不是一种数据类型,因此程序不能对其操作。也就是说,标识符是静态的,在程序中必须对其进行硬编码。而使用数组[]表示法来存取一个对象的属性时,属性名是用字符串表示的。字符串是JavaScript的一种数据类型,因此可以在程序运行中操作并创建它
whoami相关课程
whoami相关教程
- 1. CentOS 安装 Docker Tips:CentOS8 的推荐的新包管理工具是 dnf,所以我们使用 dnf 来安装 Docker。 CentOS7 的版本只需要将 dnf 替换成 yum 即可。1. 添加软件源:dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo2.执行下面这条命令更新软件包索引:dnf update3. 安装需要的依赖:目前 Centos8 软件源中的 containerd.io 版本偏低,我们需要手动安装一个新版本,这样才能顺利安装 docker-ce 19.03,否则只能安装老版本的 docker-ce。Centos7 用户可以跳过此步。dnf install -y https://download.docker.com/linux/centos/7/x86_64/edge/Packages/containerd.io-1.2.13-3.2.el7.x86_64.rpm4. 安装 Docker-ce:dnf install -y docker-ce5.配置网络与防火墙systemctl stop firewalldiptables -P INPUT ACCEPTiptables -Fecho "net.ipv4.ip_forward = 1" | tee -a /etc/sysctl.confsysctl -psystemctl start firewalldfirewall-cmd --add-masquerade --permanentfirewall-cmd --reload6. 将 Docker 设定为开机启用:systemctl enable docker7. 启动 Docker 服务:systemctl start docker8. 使用 查看 docker 版本:Tips:如果使用的是非root用户,需要先将当前用户加入到Docker用户组并重启Docker服务sudo usermod -aG docker `whoami`newgrp dockersystemctl restart docker执行docker version查看安装版本信息Client: Docker Engine - Community Version: 19.03.12 API version: 1.40 Go version: go1.13.10 Git commit: 48a66213fe Built: Mon Jun 22 15:46:54 2020 OS/Arch: linux/amd64 Experimental: falseServer: Docker Engine - Community Engine: Version: 19.03.12 API version: 1.40 (minimum version 1.12) Go version: go1.13.10 Git commit: 48a66213fe Built: Mon Jun 22 15:45:28 2020 OS/Arch: linux/amd64 Experimental: false containerd: Version: 1.2.13 GitCommit: 7ad184331fa3e55e52b890ea95e65ba581ae3429 runc: Version: 1.0.0-rc10 GitCommit: dc9208a3303feef5b3839f4323d9beb36df0a9dd docker-init: Version: 0.18.0 GitCommit: fec3683如果可以成功输出上面的版本号,说明我们的 Docker 已经安装成功了!
- 2.2 使用 Namespace 自制简易容器 将以下代码保存到/root/test/container.c#define _GNU_SOURCE#include <stdio.h>#include <stdlib.h>#include <sys/types.h>#include <sys/wait.h>#include <sys/mount.h>#include <sys/capability.h>#include <stdio.h>#include <sched.h>#include <signal.h>#include <unistd.h>#define STACK_SIZE (1024 * 1024)static char container_stack[STACK_SIZE];char* const container_args[] = { "/bin/bash", NULL};int pipefd[2];void set_map(char* file, int inside_id, int outside_id, int len) { FILE* mapfd = fopen(file, "w"); if (NULL == mapfd) { perror("open file error"); return; } fprintf(mapfd, "%d %d %d", inside_id, outside_id, len); fclose(mapfd);}void set_uid_map(pid_t pid, int inside_id, int outside_id, int len) { char file[256]; sprintf(file, "/proc/%d/uid_map", pid); set_map(file, inside_id, outside_id, len);}void set_gid_map(pid_t pid, int inside_id, int outside_id, int len) { char file[256]; sprintf(file, "/proc/%d/gid_map", pid); set_map(file, inside_id, outside_id, len);}int container_main(){ char ch; close(pipefd[1]); read(pipefd[0], &ch, 1); sethostname("container",10); /* Mount Namespace */ mount("proc", "/proc", "proc", 0, NULL); mount("none", "/tmp", "tmpfs", 0, ""); execv(container_args[0], container_args); return 1;}int main(){ const int gid=getgid(), uid=getuid(); pipe(pipefd); int container_pid = clone(container_main, container_stack+STACK_SIZE, CLONE_NEWCGROUP|CLONE_NEWIPC|CLONE_NEWUTS | CLONE_NEWPID | CLONE_NEWNS | CLONE_NEWUSER | SIGCHLD, NULL); set_uid_map(container_pid, 0, uid, 1); set_gid_map(container_pid, 0, gid, 1); close(pipefd[1]); waitpid(container_pid, NULL, 0); return 0;}我们不用读懂这个代码,只需要留意下 main 主函数中这部分int container_pid = clone(container_main, container_stack+STACK_SIZE, CLONE_NEWCGROUP|CLONE_NEWIPC|CLONE_NEWNET|CLONE_NEWUTS | CLONE_NEWPID | CLONE_NEWNS | CLONE_NEWUSER | SIGCHLD, NULL);这段代码 调用 clone 实现线程的系统调用,用来创建一个新的进程,并可以通过设计上述参数达到隔离。执行下面的操作# 安装可能需要的依赖sudo dnf install -y libcap-devel# 编译这个文件cc container.c -o container# 运行./container执行我们编译好的container程序后,发现我们处于一个新的环境的终端中,你可以在这里验证你的猜测,比如查看当前环境的进程 ps,当前登录的用户 whoami,网络状况 ip a等等,使用exit 可以退出回到原来的环境。我们确实通过系统调用,创建了一个与宿主机资源隔离的容器环境。
- 3. 使用 HomeBrew 安装 RabbitMQ 在安装之前,请确保自己的 Mac 电脑中已经具备了 HomeBrew 包管理工具,具体的我们可以输入 brew 命令进行检查,在输入 brew 命令之后,出现下图提示,则说明 HomeBrew 已经在我们的电脑中了。在确保 HomeBrew 已经安装之后,我们还需要对 HomeBrew 进行一个更新,这是在使用 HomeBrew 来安装依赖的前提操作,如果不更新 HomeBrew 直接来安装 RabbitMQ ,可能会出现版本不兼容的问题。更新 HomeBrew ,我们只需要输入以下命令:brew update在运行该命令之后,我们的命令行标题会变为 curl ,此时表明电脑正在更新 HomeBrew ,需要我们稍等几分钟即可,如下图所示:如果我们的 HomeBrew 已经很长时间没有使用了,那么在更新 HomeBrew 的时候,可能会报错:Error: Fetching /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core failed!这种报错我们需要在命令行重新初始化我们的用户分组,以及运行 HomeBrew 的自行修复工具,命令如下:// steafan 为电脑用户名称,可通过 whoami 命令得到sudo chown -R steafan:staff *brew doctor执行完这些命令,我们的 HomeBrew 即可正常更新了。当我们看到如下图所示的提示时,说明我们的 HomeBrew 已经更新完成了,接着,我们在命令行中输入以下命令来开始安装 RabbitMQ;brew install rabbitmq输入命令之后,我们需要稍等片刻,待命令行提示我们 rabbitmq installed successfully 时,就说明我们的 RabbitMQ 已经安装到了我们的 Mac 电脑中。Tips: 1. 更新 HomeBrew 的时间根据自己的网速和本地 HomeBrew 中所安装的依赖大小和多少而定,普遍来说,速度都不是很快; 2. 使用 HomeBrew 的方式来安装 RabbitMQ 时,HomeBrew 会为我们自动下载最新合适版本的 Erlang 语言支持库,并且该版本 Erlang 语言支持库直接与要安装的 RabbitMQ 版本相对应,完全不用考虑版本兼容问题。
- 3. 商品列表页功能 分布式电商系统
- 2 Flink中的Watermark深入剖析 从0基础到笑傲大数据的成长必备秘笈
- 非阻塞 Java NIO Channel 体系介绍 Java 网络编程入门首选
whoami相关搜索
-
w3cshool
w3c标准
w3c菜鸟
w3c验证
walk
wall
warn
web
web py
web service
web services
webbrowser
webgl
webmaster
webservices
webservice教程
webservice接口
webservice调用
websocket
webview