作者: houlijiang

  • docker 常用服务启动

    创建网络:

    docker network create --driver=bridge --subnet=172.18.0.0/16 --gateway 172.18.0.1 mynet

    启动PHP-NGINX:

    docker run -d -p 2345:2345 -p80:80 -v e:/web:/app --net mynet --name php-nginx houlijiang/php-nginx php /web/mwj/es/start.php start

    启动ES:

    docker run -d --name es.server -p 9200:9200 -p 9300:9300 --ip 172.18.0.2 --net mynet -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -v /etc/elasticsearch/config/es:/usr/share/elasticsearch/config -v /etc/elasticsearch/config/ik:/usr/share/elasticsearch/plugins/ik/config -v /data/elasticsearch/data/nodes:/usr/share/elasticsearch/data/nodes registry.cn-beijing.aliyuncs.com/houlijiang/es-ik:6.8.14

    启动mysql:

    docker run -v /data/mysql-master/conf.d:/etc/mysql/conf.d -v /data/mysql-master/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root -d -p 33060:3306 --net mynet --ip 172.18.0.3 --name mysql.master mysql:5.7

    启动rabbitmq:

    here is a second set of tags provided with the management plugin installed and enabled by default, which is available on the standard management port of 15672, with the default username and password of guest / guest:
    docker run -d --hostname my-rabbit --net mynet --name mq.server -p 15672:15672 -p 5672:5672 rabbitmq:3-management

    启动ftp:

    docker run -d -v /wwwroot/wordpress/:/home/vsftpd/user01 \
    -p 20:20 \
    -p 21:21 \
    -p 21100-21110:21100-21110 \
    -e FTP_USER=user01 \
    -e FTP_PASS=123456 \
    -e PASV_ADDRESS=0.0.0.0 \
    -e PASV_MIN_PORT=21100 \
    -e PASV_MAX_PORT=21110 \
    -e pasv_promiscuous=YES \
    --name vsftpd \
    --restart=always \
    fauria/vsftpd

  • git 常用命令

    删除远程分支:

    git push origin --delete [branch_name]
    

    删除最后一次提交:

    git reset --hard HEAD^

    强制提交本地代码

    git push origin master -f

    记录密码

    git config –global credential.helper store

    导出日志文件路径

    git log –pretty=format:”” –name-only  -1

    忽略文件权限的检查

    git config core.fileMode false

    忽略ssl

     git config http.sslVerify “false”  

    换行符自动转换

     #提交时转换为LF,检出时转换为CRLF    git config –global core.autocrlf true        #提交时转换为LF,检出时不转换    git config –global core.autocrlf input        #提交检出均不转换    git config –global core.autocrlf false        #拒绝提交包含混合换行符的文件    git config –global core.safecrlf true        #允许提交包含混合换行符的文件    git config –global core.safecrlf false        #提交包含混合换行符的文件时给出警告    git config –global core.safecrlf warn #设置行结束符的类型为lf    git config –global core.eol lf #设置行结束符的类型为crlf git config –global core.eol crlf #设置行结束符的类型为native, native是指平台默认的行结束符。默认的类型是native git config –global core.eol native ———————————————— 版权声明:本文为CSDN博主「梆子井欢喜坨」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/qq_39610915/article/details/90904857

    设置git push和pull的默认远程分支

    git branch –set-upstream-to=origin/master master

    git pull

    Git 常用操作命令:

    1) 远程仓库相关命令

    检出仓库:$ git clone git://github.com/jQuery/jquery.git

    查看远程仓库:$ git remote -v

    添加远程仓库:$ git remote add [name] [url]

    删除远程仓库:$ git remote rm [name]

    修改远程仓库:$ git remote set-url –push [name] [newUrl]

    拉取远程仓库:$ git pull [remoteName] [localBranchName]

    推送远程仓库:$ git push [remoteName] [localBranchName]

    *如果想把本地的某个分支test提交到远程仓库,并作为远程仓库的master分支,或者作为另外一个名叫test的分支,如下:

    $git push origin test:master         // 提交本地test分支作为远程的master分支

    $git push origin test:test              // 提交本地test分支作为远程的test分支

    2)分支(branch)操作相关命令

    查看本地分支:$ git branch

    查看远程分支:$ git branch -r

    创建本地分支:$ git branch [name] —-注意新分支创建后不会自动切换为当前分支

    切换分支:$ git checkout [name]

    创建新分支并立即切换到新分支:$ git checkout -b [name]

    删除分支:$ git branch -d [name] —- -d选项只能删除已经参与了合并的分支,对于未有合并的分支是无法删除的。如果想强制删除一个分支,可以使用-D选项

    合并分支:$ git merge [name] —-将名称为[name]的分支与当前分支合并

    创建远程分支(本地分支push到远程):$ git push origin [name]

    删除远程分支:$ git push origin :heads/[name] 或 $ gitpush origin :[name] 

    *创建空的分支:(执行命令之前记得先提交你当前分支的修改,否则会被强制删干净没得后悔)

    $git symbolic-ref HEAD refs/heads/[name]

    $rm .git/index

    $git clean -fdx

    3)版本(tag)操作相关命令

    查看版本:$ git tag

    创建版本:$ git tag [name]

    删除版本:$ git tag -d [name]

    查看远程版本:$ git tag -r

    创建远程版本(本地版本push到远程):$ git push origin [name]

    删除远程版本:$ git push origin :refs/tags/[name]

    合并远程仓库的tag到本地:$ git pull origin –tags

    上传本地tag到远程仓库:$ git push origin –tags

    创建带注释的tag:$ git tag -a [name] -m ‘yourMessage’

    4) 子模块(submodule)相关操作命令

    添加子模块:$ git submodule add [url] [path]

       如:$git submodule add git://github.com/soberh/ui-libs.git src/main/webapp/ui-libs

    初始化子模块:$ git submodule init  —-只在首次检出仓库时运行一次就行

    更新子模块:$ git submodule update —-每次更新或切换分支后都需要运行一下

    删除子模块:(分4步走哦)

     1) $ git rm –cached [path]

     2) 编辑“.gitmodules”文件,将子模块的相关配置节点删除掉

     3) 编辑“ .git/config”文件,将子模块的相关配置节点删除掉

     4) 手动删除子模块残留的目录

    5)忽略一些文件、文件夹不提交

    在仓库根目录下创建名称为“.gitignore”的文件,写入不需要的文件夹名或文件,每个元素占一行即可,如

    target

    bin

    *.db

    =====================

    Git 常用命令

    git branch 查看本地所有分支

    git status 查看当前状态 

    git commit 提交 

    git branch -a 查看所有的分支

    git branch -r 查看本地所有分支

    git commit -am “init” 提交并且加注释 

    git remote add origin git@192.168.1.119:ndshow

    git push origin master 将文件给推到服务器上 

    git remote show origin 显示远程库origin里的资源 

    git push origin master:develop

    git push origin master:hb-dev 将本地库与服务器上的库进行关联 

    git checkout –track origin/dev 切换到远程dev分支

    git branch -D master develop 删除本地库develop

    git checkout -b dev 建立一个新的本地分支dev

    git merge origin/dev 将分支dev与当前分支进行合并

    git checkout dev 切换到本地dev分支

    git remote show 查看远程库

    git add .

    git rm 文件名(包括路径) 从git中删除指定文件

    git clone git://github.com/schacon/grit.git 从服务器上将代码给拉下来

    git config –list 看所有用户

    git ls-files 看已经被提交的

    git rm [file name] 删除一个文件

    git commit -a 提交当前repos的所有的改变

    git add [file name] 添加一个文件到git index

    git commit -v 当你用-v参数的时候可以看commit的差异

    git commit -m “This is the message describing the commit” 添加commit信息

    git commit -a -a是代表add,把所有的change加到git index里然后再commit

    git commit -a -v 一般提交命令

    git log 看你commit的日志

    git diff 查看尚未暂存的更新

    git rm a.a 移除文件(从暂存区和工作区中删除)

    git rm –cached a.a 移除文件(只从暂存区中删除)

    git commit -m “remove” 移除文件(从Git中删除)

    git rm -f a.a 强行移除修改后文件(从暂存区和工作区中删除)

    git diff –cached 或 $ git diff –staged 查看尚未提交的更新

    git stash push 将文件给push到一个临时空间中

    git stash pop 将文件从临时空间pop下来

    ———————————————————

    git remote add origin git@github.com:username/Hello-World.git

    git push origin master 将本地项目给提交到服务器中

    ———————————————————–

    git pull 本地与服务器端同步

    —————————————————————–

    git push (远程仓库名) (分支名) 将本地分支推送到服务器上去。

    git push origin serverfix:awesomebranch

    ——————————————————————

    git fetch 相当于是从远程获取最新版本到本地,不会自动merge

    git commit -a -m “log_message” (-a是提交所有改动,-m是加入log信息) 本地修改同步至服务器端 :

    git branch branch_0.1 master 从主分支master创建branch_0.1分支

    git branch -m branch_0.1 branch_1.0 将branch_0.1重命名为branch_1.0

    git checkout branch_1.0/master 切换到branch_1.0/master分支

    du -hs

    ———————————————————–

    mkdir WebApp

    cd WebApp

    git init

    touch README

    git add README

    git commit -m ‘first commit’

    git remote add origin git@github.com:daixu/WebApp.git

    git push -u origin master

    git记录密码

    git config –global credential.helper cache

    强制还原

    git reset –hard origin/master

    //////////////////强制提交 push///////////////////////

    1,强推,即利用强覆盖方式用你本地的代码替代git仓库内的内容

    git push -f

    2,先把git的东西fetch到你本地然后merge后再push

    $ git fetch

    $ git merge

    这2句命令等价于

    [plain] view plain copy print?

    •  $ git pull  

    有如下几种解决方法:

    1.使用强制push的方法:

    $ git push -u origin master -f 

    这样会使远程修改丢失,一般是不可取的,尤其是多人协作开发的时候。

    2.push前先将远程repository修改pull下来

    $ git pull origin master

    $ git push -u origin master

    3.若不想merge远程和本地修改,可以先创建新的分支:

    $ git branch [name]

    然后push

    $ git push -u origin [name]

    •  忽略换行符差异

    由于Windows用CRLF来定义换行,Linux用LF。CR全称是Carriage Return ,或者表示为\r, 意思是回车。 LF全称是Line Feed,它才是真正意义上的换行表示符。换行符的差异导致

    copy

    1 LF will be replaced by CRLF in

    所以我们需要忽略换行符差异

    copy

    12 git config core.autocrlf falsegit config core.safecrlf true

    或(—global为全局)

    copy

    12 git config –global core.autocrlf falsegit config –global core.safecrlf true
    •  忽略文件权限

    有时只是改了文件权限,而非内容,不需要提交变更

    copy

    1 git config core.filemode false

    或(—global为全局)

    copy

    指定目录操作:

    git -C path pull
  • 为docker容器提供域名解析服务

    yum方式部署DNS服务 [物理部署] 具体安装过程如下: 使用下面的命令yum install -y dnsmasq打开/etc/hosts文件 ,添加要解析的域名,如echo “172.16.91.165 lb.guxin.com” >> /etc/hosts启动dnsmasq服务service dnsmasq restart查看dnsmasq服务的状态service dnsmasq status注意:    每次更新/etc/hosts都要重启dnsmasq服务,重新加载/etc/hosts文件,其他节点(166,167)上的docker,如何访问dns呢?    需要更新/etc/docker/daemon.json,添加dns键值对 , 如

    1. {
    2. "registry-mirrors": ["https://registry.docker-cn.com"],
    3. "insecure-registries":["172.16.91.222:80"],
    4. "dns":["172.16.91.222"]
    5. }

    客户端节点,需要重新启动docker服务,从而加载配置文件systemctl docker restart

  • MySQL创建用户与授权

    一. 创建用户

    命令:CREATE USER ‘username’@’host’ IDENTIFIED BY ‘password’;

    说明:
    username:你将创建的用户名
    host:指定该用户在哪个主机上可以登陆,如果是本地用户可用localhost,如果想让该用户可以从任意远程主机登陆,可以使用通配符%
    password:该用户的登陆密码,密码可以为空,如果为空则该用户可以不需要密码登陆服务器
    例子:

    CREATE USER 'dog'@'localhost' IDENTIFIED BY '123456';
    CREATE USER 'pig'@'192.168.1.101_' IDENDIFIED BY '123456';
    CREATE USER 'pig'@'%' IDENTIFIED BY '123456';
    CREATE USER 'pig'@'%' IDENTIFIED BY '';
    CREATE USER 'pig'@'%';


    二. 授权:

    命令:GRANT privileges ON databasename.tablename TO ‘username’@’host’

    说明:
    privileges:用户的操作权限,如SELECT,INSERT,UPDATE等,如果要授予所的权限则使用ALL
    databasename:数据库名
    tablename:表名,如果要授予该用户对所有数据库和表的相应操作权限则可用*表示,如*.*
    例子:

    注意:
    用以上命令授权的用户不能给其它用户授权,如果想让该用户可以授权,用以下命令:
    GRANT privileges ON databasename.tablename TO ‘username’@’host’ WITH GRANT OPTION;

    GRANT SELECT, INSERT ON test.user TO 'pig'@'%';
    GRANT ALL ON *.* TO 'pig'@'%';
    GRANT ALL ON maindataplus.* TO 'pig'@'%';

  • Windows Docker 安装

    Docker 并非是一个通用的容器工具,它依赖于已存在并运行的 Linux 内核环境。

    Docker 实质上是在已经运行的 Linux 下制造了一个隔离的文件环境,因此它执行的效率几乎等同于所部署的 Linux 主机。

    因此,Docker 必须部署在 Linux 内核的系统上。如果其他系统想部署 Docker 就必须安装一个虚拟 Linux 环境。

    在 Windows 上部署 Docker 的方法都是先安装一个虚拟机,并在安装 Linux 系统的的虚拟机中运行 Docker。

    Win10 系统

    Docker Desktop 是 Docker 在 Windows 10 和 macOS 操作系统上的官方安装方式,这个方法依然属于先在虚拟机中安装 Linux 然后再安装 Docker 的方法。

    Docker Desktop 官方下载地址: https://hub.docker.com/editions/community/docker-ce-desktop-windows

    注意:此方法仅适用于 Windows 10 操作系统专业版、企业版、教育版和部分家庭版!

    安装 Hyper-V

    Hyper-V 是微软开发的虚拟机,类似于 VMWare 或 VirtualBox,仅适用于 Windows 10。这是 Docker Desktop for Windows 所使用的虚拟机。

    但是,这个虚拟机一旦启用,QEMU、VirtualBox 或 VMWare Workstation 15 及以下版本将无法使用!如果你必须在电脑上使用其他虚拟机(例如开发 Android 应用必须使用的模拟器),请不要使用 Hyper-V!

    开启 Hyper-V

    程序和功能

    启用或关闭Windows功能

    选中Hyper-V

    也可以通过命令来启用 Hyper-V ,请右键开始菜单并以管理员身份运行 PowerShell,执行以下命令:

    Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All

    安装 Docker Desktop for Windows

    点击 Get started with Docker Desktop,并下载 Windows 的版本,如果你还没有登录,会要求注册登录:

    运行安装文件

    双击下载的 Docker for Windows Installer 安装文件,一路 Next,点击 Finish 完成安装。

    安装完成后,Docker 会自动启动。通知栏上会出现个小鲸鱼的图标,这表示 Docker 正在运行。

    桌边也会出现三个图标,如下图所示:

    我们可以在命令行执行 docker version 来查看版本号,docker run hello-world 来载入测试镜像测试。

    如果没启动,你可以在 Windows 搜索 Docker 来启动:

    启动后,也可以在通知栏上看到小鲸鱼图标:

    如果启动中遇到因 WSL 2 导致地错误,请安装 WSL 2

    安装之后,可以打开 PowerShell 并运行以下命令检测是否运行成功:

    docker run hello-world

    在成功运行之后应该会出现以下信息:


    win7、win8 系统

    win7、win8 等需要利用 docker toolbox 来安装,国内可以使用阿里云的镜像来下载,下载地址:http://mirrors.aliyun.com/docker-toolbox/windows/docker-toolbox/

    安装比较简单,双击运行,点下一步即可,可以勾选自己需要的组件:

    docker toolbox 是一个工具集,它主要包含以下一些内容:

    • Docker CLI – 客户端,用来运行 docker 引擎创建镜像和容器。
    • Docker Machine – 可以让你在 Windows 的命令行中运行 docker 引擎命令。
    • Docker Compose – 用来运行 docker-compose 命令。
    • Kitematic – 这是 Docker 的 GUI 版本。
    • Docker QuickStart shell – 这是一个已经配置好Docker的命令行环境。
    • Oracle VM Virtualbox – 虚拟机。

    下载完成之后直接点击安装,安装成功后,桌边会出现三个图标,如下图所示:

    点击 Docker QuickStart 图标来启动 Docker Toolbox 终端。

    如果系统显示 User Account Control 窗口来运行 VirtualBox 修改你的电脑,选择 Yes。

    $ 符号那你可以输入以下命令来执行。

    $ docker run hello-world
     Unable to find image 'hello-world:latest' locally
     Pulling repository hello-world
     91c95931e552: Download complete
     a8219747be10: Download complete
     Status: Downloaded newer image for hello-world:latest
     Hello from Docker.
     This message shows that your installation appears to be working correctly.
    
     To generate this message, Docker took the following steps:
      1. The Docker Engine CLI client contacted the Docker Engine daemon.
      2. The Docker Engine daemon pulled the "hello-world" image from the Docker Hub.
         (Assuming it was not already locally available.)
      3. The Docker Engine daemon created a new container from that image which runs the
         executable that produces the output you are currently reading.
      4. The Docker Engine daemon streamed that output to the Docker Engine CLI client, which sent it
         to your terminal.
    
     To try something more ambitious, you can run an Ubuntu container with:
      $ docker run -it ubuntu bash
    
     For more examples and ideas, visit:
      https://docs.docker.com/userguide/