继开 | 博客

热爱生活,努力学习,实现自己的价值


  • 短诗的序

  • 迷途自渡

  • 寒星三两

  • 林深见鹿

  • 记昨日书

  • 顾探往昔

Docker安装kafka

发表于 2021-01-15
字数统计: 420 字 | 阅读时长 ≈ 2 min

docker安装kafka

操作的ip地址:192.168.0.200

1、kafka需要zookeeper管理,所以需要先安装zookeeper。

下载zookeeper镜像

1
docker pull wurstmeister/zookeeper

2、启动镜像生成容器

1
docker run -d --restart=always --log-driver json-file --log-opt max-size=100m --log-opt max-file=2  --name zookeeper -p 2181:2181 -v /etc/localtime:/etc/localtime wurstmeister/zookeeper

3、下载kafka镜像

1
docker pull wurstmeister/kafka

4、启动kafka镜像生成容器

1
docker run -d --restart=always --log-driver json-file --log-opt max-size=100m --log-opt max-file=2 --name kafka -p 9092:9092 -e KAFKA_BROKER_ID=0 -e KAFKA_ZOOKEEPER_CONNECT=192.168.0.200:2181/kafka -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.0.200:9092 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 -v /etc/localtime:/etc/localtime wurstmeister/kafka

参数说明:
-e KAFKA_BROKER_ID=0 在kafka集群中,每个kafka都有一个BROKER_ID来区分自己
-e KAFKA_ZOOKEEPER_CONNECT=172.20.10.10:2181/kafka 配置zookeeper管理kafka的路径172.20.10.10:2181/kafka
-e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://172.20.10.10:9092 把kafka的地址端口注册给zookeeper,如果是远程访问要改成外网IP,类如Java程序访问出现无法连接。
-e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 配置kafka的监听端口
-v /etc/localtime:/etc/localtime 容器时间同步虚拟机的时间

5、验证kafka是否可以使用

5.1、进入容器

1
docker exec -it kafka bash

5.2、进入 /opt/kafka_2.12-2.3.0/bin/ 目录下

1
cd /opt/kafka_2.12-2.3.0/bin/

注意版本可能不同

5.3、运行kafka生产者发送消息

1
./kafka-console-producer.sh --broker-list localhost:9092 --topic sun

发送消息

1
> hello word!

5.4、运行kafka消费者接收消息

需要再建一个终端链接,进入容器后,运行

1
docker exec -it kafka bash
1
cd /opt/kafka_2.12-2.3.0/bin/
1
./kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic sun --from-beginning

Linux编写shell脚本并运行

发表于 2021-01-13
字数统计: 561 字 | 阅读时长 ≈ 2 min

创建脚本文件

第一步是使用以下命令创建一个扩展名为.sh的新文件:

1
[root@localhost ~]# touch hello_world.sh

写一个简单的脚本
使用vim编辑器打开新创建的文件,将以下bash脚本添加到文件中:

1
[root@localhost ~]# vim hello_world.sh

下面是添加到文件中的脚本内容:

1
#!/bin/bash echo "Hello World"

编辑完,保存并退出。

执行Bash脚本
有两种方法可以运行bash文件。
第一种是通过使用bash或sh命令。
另一种将文件添加可执行权限,就可以直接运行。

让我们运行以下命令以使用bash或sh命令执行bash脚本。

1
2
3
4
[root@localhost ~]# sh hello_world.sh 
Hello World
[root@localhost ~]# bash hello_world.sh
Hello World

为脚本文件设置可执行权限
执行bash脚本的第二种方法是设置可执行权限。

1
[root@localhost ~]# chmod +x hello_world.sh

可以看到hello_world.sh文件已经有x可执行权限了。

执行脚本
将可执行权限分配给脚本后,可以不带bash命令直接运行脚本,如下所示:

1
2
[root@localhost ~]# ./hello_world.sh 
Hello World

目录备份

在下面的示例中,我将编写并执行一个bash脚本以从源目录到目标目录进行备份:

1
[root@localhost ~]# vim backup_bash.sh

下面内容粘贴到backup_bash.sh文件中。

1
2
3
4
5
#!/bin/bash
TIME=`date +%Y_%m_%d`
DESTINATION=/tmp/backup-$TIME.tar.gz
SOURCE=/var/log
tar -zcvf $DESTINATION $SOURCE

保存脚本文件,并退出。为脚本文件添加可执行权限:

1
[root@localhost ~]# chmod +x backup_bash.sh

运行脚本:

1
[root@localhost ~]# ./backup_bash.sh

出现问题记录

1
2
[root@localhost ~]# ./backup_bash.sh 
-bash: ./backup_bash.sh: /bin/bash^M: bad interpreter: No such file or directory

解决办法
替换其中的\r

1
sed -i 's#\r$##g' backup_bash.sh

问题出现的原因

windows下,每一行的结尾是\n\r,而在linux下文件的结尾是\n,
那么你在windows下编辑过的文件在linux下打开看的时候每一行的结尾就会多出来一个字符\r。
用cat -A backup_bash.sh时你可以看到这个\r字符被显示为^M,这时候只需要删除这个字符就可以了。
可以使用命令sed -i ‘s#\r$##g’ backup_bash.sh 。

利用Jekyll编译自己的博客系统,并放入nginx中发布

发表于 2021-01-09
字数统计: 140 字 | 阅读时长 ≈ 1 min

首先下载

docker pull wangjikai/jekyll

之后进行编译

docker run –rm -v /home/Wjikai_blog:/srv/jekyll wangjikai/jekyll jekyll build

/home/Wjikai_blog 目录是你自己的jekyll博客目录

编译之后再 /home/Wjikai_blog 目录下生成_site 文件夹此文件夹下的文件就是你自己的博客进行编译之后的文件

将编译好的文件放入你自己的nginx目录下
mv /home/Wjikai_blog/_site/* /data/nginx/www

启动nginx

其他方式

docker run -d –name jekyll -p 9996:4000 -v /home/Wjikai_blog:/srv/jekyll nswebfrog/jekyll server –host=0.0.0.0

直接启动成服务

Centos8 忘记Root密码如何操作

发表于 2021-01-07
字数统计: 248 字 | 阅读时长 ≈ 1 min

登录命令

1
docker login

输入用户名密码之后,出现Login Succeeded登录成功,也可根据提示去官网注册,用邮箱注册就可以

1
2
3
4
5
6
7
8
9
[root@localhost /]# docker login
Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one.
Username: wangjikai
Password:
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded

将运行的容器打包成镜像,

1
docker commit -a "wangjikai" -m "oracle11g,数据库实例helowinXDB,用户sys,system,cim,test2,密码相同,暴露端口1521,数据库可建表空间路径/home/oracle/app/oracle/oradata/wjk/" 36b706be5766 wangjikai/oracle:11.2.0.1.0

注意:

-a 作者

-m 描述

36b706be5766 容器id

wangjikai/oracle 必须加自己在dockerhub 上的登录名/镜像名字

11.2.0.1.0 版本号

将镜像提交到dockerhub

1
docker push wangjikai/oracle:11.2.0.1.0

退出命令

1
docker logout

新闻记录 拼多多员工猝死事件

发表于 2021-01-06
字数统计: 749 字 | 阅读时长 ≈ 3 min

拼多多的回复很真实,底层人们这样的太多了,只不过这次被拼多多赶上了,但是拼多多的回复确实有点不近人情,有损自己公司的形象了。对标出现此类情况的华为,阿里,腾讯,一件事从来没有超过一天的发酵期,做好善后和家属的安抚工作才是首要的。

资本市场本来就是那么的不仅人情,资本家是为了利益,让员工加班也是利益,底层人民的生活基本来源又不得不和这些利益挂钩,通过出卖自己的劳动获得生活的来源,这本来就是一个互相利用的关系。还好我们生活的是和谐社会,没有人吃人的情况,也要讲究人性,在这样的环境下,作为底层的我们,还是应该有自己的意识,我们仅仅是为了活着,活着比什么都好。

以下来自网络

事件经过

拼多多公司女员工张某霏,2019年7月入职拼多多。北京时间2020年12月29日凌晨1:30,在与同事一起走路回家的路上突然捂腹,晕厥倒地。同事立即呼叫120送往乌鲁木齐本地医院,经近6个小时急救依然无效,不幸离世。

事件结果

张某霏于2021年1月3日火化,公司也不对外发公告。
2021年1月4日,张某霏一位高中小强(化名)同学说,2021年1月3日中午张某霏的男朋友通过她的微信发了一条朋友圈,她才知道张某霏已经过世。据张某霏男友在其朋友圈发布内容显示,“2020年12月29日凌晨一点半,张某霏下班路上突然晕倒,经抢救无效去世。”
2021年1月4日,从上海市长宁区劳动保障监察大队获悉,接到网络舆情后,劳动保障监察部门已对拼多多公司的劳动用工情况进行调查,会对该公司用人合同、用工时间等情况进行检查。

社会评论

我们都知道,幸福是奋斗出来的,但奋斗不只靠激情,也要讲效率,切不能演变成“拿命换钱”。让员工少熬夜、不透支,用人单位严格规范劳动保障、相关部门加强监管,保护好奋斗者同样重要!(央视评论)

后续

拼多多在知乎上的回复:

【你们看看底层的人民,哪一个不是用命换钱,我一直不以为是资本的问题,而是这个社会的问题,这是一个用命拼的时代,你可以选择安逸的日子,但你就要选择安逸带来的后果,人是可以控制自己的努力的,我们都可以】

之后进行了删除,并回复非拼多多官方发表的言论

Docker安装oracle

发表于 2020-12-12
字数统计: 992 字 | 阅读时长 ≈ 4 min

基于docker的oracle安装

拉取镜像:

1
2
3
docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g 
```
下载完成后 查看镜像:

docker images

1
创建容器:

docker run -d -p 1521:1521 –name oracle11g registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g

1
2
3
这里说一下,命令后面的地址一定要是你下载的镜像地址也就是你拉取镜像名字,否则会出现名字已存在等问题! 
如果空间不足可以清理数据:
删除所有dangling数据卷(即无用的Volume):

docker volume rm $(docker volume ls -qf dangling=true)

1
2
3
 
进入镜像进行配置
进入oracle的命令环境中。

docker exec -it oracle11g bash

1
2
切换到oracle数据库的root 
用户下

su root

1
密码:

helowin

1
编辑/etc/profile文件配置ORACLE环境变量

export ORACLE_HOME=/home/oracle/app/oracle/product/11.2.0/dbhome_2
export ORACLE_SID=helowin
export PATH=ORACLEHOME/bin:PATH

1
2
3
在最后加上  

让配置文件生效

source /etc/profile

1
2


在pycharm的terminal中输入ls,提示bash: ls: command not found,无法使用Linux命令
是因为环境变量PATH被修改了
只需在命令行执行
export PATH=/bin:/usr/bin:$PATH
即可

1
创建软连接

ln -sf $ORACLE_HOME/bin/sqlplus /usr/bin

1
2
3
4
这里还要说一下,一定要写中间的内条 - 必须要,否则软连接无效
-f 如果已经创建过不生效,重新创建需要覆盖,用-f参数

切换到oracle 用户

su oracle

1
2

登录sqlplus–修改sys、system用户密码–创建用户

sqlplus /nolog
conn /as sysdba

1
修改密码:

alter user system identified by system;
alter user sys identified by sys;
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;

1
创建用户

create user test2 identified by test2;

1
并给用户赋予权限

grant connect,resource,dba to test2;

1
过程中出现的报错需要输入以下内容:

输入:alter database mount;
输入:alter database open;

1
2
之后可进行退出用plsql进行链接,注意链接的实例为 helowinXDB
如果链接不上,可以再次进入容器中,修改listener.ora和tnsnames.ora文件,修改地址为docker 容器内部ip

LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = 172.17.0.2)(PORT = 1521))
)
)

ADR_BASE_LISTENER = /home/oracle/app/oracle

1
2
3
 ## 附录

docker安装 安装一些必要的系统工具:

sudo yum install -y yum-utils device-mapper-persistent-data lvm2

1
2

安装yum-config-manager命令对应工具

sudo yum -y install yum-utils

1
添加软件源信息:

sudo yum-config-manager –add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

1
更新 yum 缓存:

sudo yum makecache fast

1
安装 Docker-ce:

sudo yum -y install docker-ce

1
启动 Docker 后台服务

sudo systemctl start docker

1
测试运行

hello-world docker run hello-world

1
2
由于本地没有hello-world这个镜像,所以会下载一个hello-world的镜像,并在容器内运行。 
查看docker的镜像

docker images

1
2
在docker中安装与配置tomcat。
拉取镜像:

docker pull tomcat

1
2
3
使用tomcat镜像 
启动docker容器中的镜像:
例子:

docker run –name tomcat -p 5555:8080 -v /home/mengsheng/abc:/usr/local/tomcat/webapps/ -d tomcat

1
2
3
4
5
6
-d:表示以“守护模式”执行/root/run.sh脚本,此时 Tomcat 控制台不会出现在输出终端上。 -d跟镜像名 tomcat 
-p:表示宿主机与容器的端口映射,此时将容器内部的 8080 端口映射为宿主机的 5555 端口,这样就向外界暴露了 58080 端口,可通过 Docker 网桥来访问容器内部的 8080 端口了。
-v:表示需要将本地哪个目录挂载到容器中,格式:-v <宿主机目录>:<容器目录> /home/mengsheng/abc 把自己的项目资源放到这个目录下,就相当于放到了tomcat中的usr/local/tomcat/webapps/
–name:表示容器名称,用一个有意义的名称命名即可。

查看镜像软件的运行情况:

docker ps

1
停止/运行tomcat软件容器: 5421指代id的前四位

docker stop/start 5421

1
移除docker中的软件容器

#docker rm 5421

移除掉docker中下载的镜像:  


Docker安装配置nginx

发表于 2020-12-11
字数统计: 415 字 | 阅读时长 ≈ 2 min

docker安装配置nginx

拉取镜像:

1
docker pull nginx:1.19.5

创建映射文件夹

1
mkdir -p /data/nginx/www /data/nginx/logs /data/nginx/conf

创建一个默认的niginx 镜像,并复制出配置文件,此步的目的主要是把配置文件复制出来,如果,已经有配置文件,此步跳过

1
2
3
4
5
6
7
docker run --name nginx-test -p 10080:80 -d nginx:1.19.5

docker cp 865626ab7f68:/etc/nginx/nginx.conf /data/nginx/conf

docker stop 865626ab7f68

docker rm 865626ab7f68

启动nginx 镜像,并映射出文件

1
docker run -d -p 10080:80 --name nginx-web -v /data/nginx/www:/usr/share/nginx/html -v /data/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /data/nginx/logs:/var/log/nginx nginx:1.19.5

//查找需要映射的docker容器真实ip

1
docker inspect --format='{{.NetworkSettings.IPAddress}}' 70d927e27fa5

进入到/root/conf/nginx.conf 添加如下即可

1
2
3
4
5
6
7
8
9
10
11
server{
listen 80;
charset utf-8;
server_name 192.168.43.50;
#server_name 172.17.0.4;
location / {
proxy_pass http://192.168.43.50:3959;
#proxy_pass http://172.17.0.4:3959;
proxy_redirect default;
}
}

nginx.conf文件全文如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
user  nginx;
worker_processes 1;

error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;


events {
worker_connections 1024;
}


http {
include /etc/nginx/mime.types;
default_type application/octet-stream;

log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';

access_log /var/log/nginx/access.log main;

sendfile on;
#tcp_nopush on;

keepalive_timeout 65;

#gzip on;

include /etc/nginx/conf.d/*.conf;
server{
listen 80;
charset utf-8;
server_name 192.168.43.50;
#server_name 172.17.0.4;
location / {
proxy_pass http://192.168.43.50:3959;
#proxy_pass http://172.17.0.4:3959;
proxy_redirect default;
}
}

}

将index.html的文件放入/data/nginx/www

重启容器

1
2
docker stop nginx-web
docker start nginx-web

Ll命令不能使用

发表于 2020-11-19
字数统计: 50 字 | 阅读时长 ≈ 1 min

问题

1
2
wjk@wjk-PC:~$ ll
-bash: ll:未找到命令

解决办法

1
2
vim ~/.bashrc 
alias ll='ls -l' #加入此行

加入后肯能无法当场起作用, 执行该句:

1
source ~/.bashrc
1…252627…38

继开

一辈子很短,努力的做好两件事就好:第一件事是热爱生活,好好的去爱身边的人;第二件事是努力学习,在工作中取得不一样的成绩,实现自己的价值,而不是仅仅为了赚钱。

303 日志
171 标签
RSS
gitee E-Mail
0%
鲁ICP备18007712号
© 2025 继开 | 站点字数统计: 262.2k
博客使用 Hexo 搭建
|
主题 — NexT.Mist v5.1.4
人访问 次查看