首页 文章 精选 留言 我的

精选列表

搜索[自部署],共10008篇文章
优秀的个人博客,低调大师

docker 容器部署

Docker 容器 : 容器是Docker又一核心的概念,简单来说,容器是独立运行的一个或一组应用,以及它们的运行态环境。对应的,虚拟机可以理解为模拟运行的一整套操作系统(提供了运行态环境和其他系统环境)和跑在上面的应用。 接下来具体介绍如何管理一个容器,包括创建、启动和停止等。 启动容器有两种方式: (1.)第一种是基于镜像新建一个容器并启动。 所需要的命令主要为docker run 实例: -t:让docker分配一个为终端(paseudo-tty)并绑定到容器的标准输入上 -i:让容器的标准输入保持打开(即交互式),可以使用-name给容器起个形象的名称。 在交互模式下,用户可以通过所创建的终端来输入命令 例如: 容器的核心为所执行的应用程序,所需要的资源都是应用程序运行所必需的。除此之外,并没有其它的资源。可以在伪终端中利用ps或top来查看进程信息。 可见,容器中仅允许了指定的bash应用。这种特点使得Docker对资源利用率极高,是货真价实的轻量级虚拟化。 退出容器的方式: logout exit Ctrl+d Ctrl+c Ctrl -p + Ctrl -q 下面的命令是输出一个hello world 消息,终止容器。 当利用docker run 来创建容器时 ,Docker在后台运行的标准操作包括: 1.检查本地是否存在指定的镜像,不存在就从公有仓库下载 2.利用镜像创建并启动一个容器 3.分配一个文件系统,并在只读的镜像层外面挂载一层可读写层 4.从宿主主机配置的网桥接口中桥接一个虚拟接口到容器中去 5.从地址池配置一个IP地址给容器 6.执行用户指定的应用程序 7.执行完毕后容器被终止 查看容器: (2.)第二种是将在终止状态(stoped)的容器重新启动。 可以利用docker start 命令,直接将一个已经终止的容器启动运行 可以使用docker stop 来终止一个运行的容器。此外,当docker容器中指定的应用终结时,容器也自动 终止。终止状态的容器可以用docker ps -a 命令看到。 重启一个容器: 二、守护进程方式去运行docker 1.更多的时候,需要让docker容器在后台以守护态(Daemonized)形式运行。此时,可以通过添加 -d 参数来实现。 例如: 或者 容器启动后会返回一个唯一的ID值,也可以通过docker ps 命令来查看容器信息 1.docker卡 run -d 运行提个新的容器,我们通过-d 命令来查看容器信息。 2.centos:centos6 是一个我们想要在内部运行命令的镜像。 3./bin/sh -c 是我们想要在容器内部运行的命令 4.while true;do echo hello weibo;sleep 1; done这是一个简单的脚本,我们仅仅是每秒打印一 次 hello world 一直到我们结束它。 2.用 docker inspect查看容器的信息 用docker inspect 查看容器的IP地址 用docker inspect 查看容器执行的程序 3.进入容器: 在使用-d参数时,容器启动后会进入后台。某些时候需要进入容器进行操作,有很多种方法,包括使 用docker attach命令或nsenter命令。 (1.) 使用docker attach进入容器: 1.docker attache 允许我们进入后台进程 2.--sig-proxy=false 不使用容器转发信号,允许我们使用Ctrl -c来退出,执行docker ps查看在后台运行。 但是使用 attache 命令有时候并不方便。当多个窗口同时attach到同一个容器的时候,所有窗口都会 同步显示。当某个窗口因命令阻塞时,其他窗口也无法执行操作了。 3.也可以执行docker exec进入运行的容器 (2.)使用nsenter进入容器: 安装:nsenter工具在util-Linux包2.23版本后包含。如果系统中util-Linux包没有该命令,可以按照 下面的方法从源码安装 #wgethttps://www.kernel.org/pub/utils/util-linux/v2.24/util-linux-2.24.tar.gz #tar util-linux-2.24.tar.gz #cd util-linux-2.24 # ./configure --without-ncurses&& make nsenter # cp nsenter /usr/local/bin 注意:nsenter可以访问另一个进程的名字空间。nsenter要正常工作需要有root权限。 庆幸的是centos7使用的是util-linux-2.23,所以就直接使用系统提供的util-linux包了。 为了使用nsenter命令工具连接到容器,还需要找到容器的第一个进程的pid,可以通过下面的命令获取到。 附:更简单的,建议大家下载 .bashrc_docker,并将内容放到 .bashrc中 #wget ~https://github.com/yeasy/docker_practice/raw/master/_local/.bashrc_docker #echo "[-f ~/.bashrc_docker] && ~/.bashrc_docker">>~/.bashrc #source ~/.bashrc 这个文件中定义了很多方便使用Docker的命令,例如docker-pid可以获取某个容器的pid;而docker- enter 可以进入容器或直接在容器内执行命令。 echo $(docker-pid<container>) docker-enter<container>ls 三、容器的导入和导出以及删除容器 (1.)导出容器 如果要导出本地某个容器,可以 使用docker export命令。 (2.)导入容器 可以使用docker import 从容器快照文件中再导入为镜像 除此之外,也可以通过指定URL或者某个目录来导入。例如: #docker importhttp://example.com/exampleimage.tgzexample/imagerepo 注意: docker load 和 docker import 的区别: 用户既可以使用docker load 来导入镜像存储文件到本地镜像库,也可以使用docker import来导入一个 容器快照到本地镜像库。这两者的区别在于容器快照文件将丢弃所有的历史记录和元数据信息(即仅保 存容器当时的快照状态),而镜像存储文件将保存完整记录,体积也要大。此外,从容器快照文件导入 时可以重新指定标签等元数据信息。 删除容器: 可以使用 docker rm来删除一个处于终止状态的容器 如果要删除一个运行中的容器,可以添加 -f 参数。docker会发送SIGKILL信号给容器。 批量删除多个容器:

优秀的个人博客,低调大师

TensorFlow安装部署

1.环境依赖 Centos7 组件 版本 Python 2.7.5 TensorFlow 0.14.0 pyhton依赖库 Package Version -------------------- --------- absl-py 0.8.0 astor 0.8.0 backports.weakref 1.0.post1 enum34 1.1.6 funcsigs 1.0.2 futures 3.3.0 gast 0.2.2 google-pasta 0.1.7 grpcio 1.23.0 h5py 2.9.0 Keras-Applications 1.0.8 Keras-Preprocessing 1.1.0 Markdown 3.1.1 mock 3.0.5 numpy 1.16.5 pip 19.2.3 protobuf 3.9.1 setuptools 41.2.0 six 1.12.0 tensorboard 1.14.0 tensorflow 1.14.0 tensorflow-estimator 1.14.0 termcolor 1.1.0 Werkzeug 0.15.5 wheel 0.33.6 wrapt 1.11.2 2.资源准备 安装包下载 百度云盘链接:https://pan.baidu.com/s/1cm9mZpP1JRwyGpq945ffaQ 提取码:8bxj 3.安装 a).安装python-devel ## 在线安装 yum install python-devel ## 离线安装 rpm -ivh python-devel-2.7.5-80.el7_6.x86_64.rpm b).安装virtualenv ## 在线安装 pip install virtualenv ## 离线安装 c).安装tensorflow 进入虚拟机,安装tensorflow ## Step1: 创建虚拟机 virtualenv tensorflow ## Step2: 进入虚拟机 source ./tensorflow/bin/activate ## 在线安装 pip install tensorflow ## 离线安装 pip install --no-index --find-links=/path/to/tensorflow_1.14.0_package -r tensorflow_requirement.txt 4.测试 测试代码 import tensorflow as tf mnist = tf.keras.datasets.mnist (x_train, y_train),(x_test, y_test) = mnist.load_data() x_train, x_test = x_train / 255.0, x_test / 255.0 model = tf.keras.models.Sequential([ tf.keras.layers.Flatten(input_shape=(28, 28)), tf.keras.layers.Dense(128, activation='relu'), tf.keras.layers.Dropout(0.2), tf.keras.layers.Dense(10, activation='softmax') ]) model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy']) model.fit(x_train, y_train, epochs=5) model.evaluate(x_test, y_test) 执行测试 python test.py 测试结果 5.环境依赖下载 ## python-devel http://mirror.centos.org/centos/7/updates/x86_64/Packages/python-devel-2.7.5-80.el7_6.x86_64.rpm ## tensorflow-1.14.0 https://files.pythonhosted.org/packages/d3/59/d88fe8c58ffb66aca21d03c0e290cd68327cc133591130c674985e98a482/tensorflow-1.14.0-cp27-cp27mu-manylinux1_x86_64.whl ## pip-19.2.3 https://files.pythonhosted.org/packages/00/9e/4c83a0950d8bdec0b4ca72afd2f9cea92d08eb7c1a768363f2ea458d08b4/pip-19.2.3.tar.gz ## virtualenv https://files.pythonhosted.org/packages/f7/69/1ad2d17560c4fc60170056dcd0a568b83f3453a2ac91155af746bcdb9a07/virtualenv-16.7.4-py2.py3-none-any.whl

优秀的个人博客,低调大师

docker部署sonarqube

gitlab-ce + gitlab-runner + sonarqube,在提交代码时对代码质量进行检测,对不符合要求的代码不允许提交到gitlab 1、配置docker-compose.yml version: '3.1' services: gitlab-ce: image: 'gitlab/gitlab-ce:latest' container_name: gitlab-ce restart: always hostname: 'gitlab.localhost.com' environment: GITLAB_OMNIBUS_CONFIG: | external_url 'http://192.168.31.109' ports: - '80:80' - '443:443' - '10022:22' volumes: - '/root/gitlab-ce/home/config:/etc/gitlab' - '/root/gitlab-ce/home/logs:/var/log/gitlab' - '/root/gitlab-ce/home/data:/var/opt/gitlab' networks: - 'default' gitlab-runner: image: 'gitlab/gitlab-runner:latest' container_name: gitlab-runner depends_on: - 'gitlab-ce' restart: always volumes: - '/root/gitlab-ce/runnerconfig:/etc/gitlab-runner' - '/var/run/docker.sock:/var/run/docker.sock' networks: - 'default' links: - 'gitlab-ce:gitlab.localhost.com' mysql: image: mysql:5.7.27 container_name: mysql command: --default-authentication-plugin=mysql_native_password restart: always ports: - 3306:3306 volumes: - /root/gitlab-ce/mysql/data:/var/lib/mysql - /root/gitlab-ce/mysql/logs:/logs - /root/gitlab-ce/mysql/init:/docker-entrypoint-initdb.d environment: MYSQL_ROOT_PASSWORD: root@123456 MYSQL_USER: test #创建test用户 MYSQL_PASSWORD: test #设置test用户的密码 networks: - 'default' sonarqube: image: sonarqube:7.7-community # image: sonarqube:latest container_name: sonarqube ports: - "9000:9000" - "9002:9002" volumes: - "/root/gitlab-ce/sonarqube/conf:/opt/sonarqube/conf" - "/root/gitlab-ce/sonarqube/extensions:/opt/sonarqube/extensions" - "/root/gitlab-ce/sonarqube/logs:/opt/sonarqube/logs" - "/etc/sysctl.conf:/etc/sysctl.conf" # - "/root/gitlab-ce/sonarqube/data:/opt/sonarqube/data" environment: sonar.jdbc.username: root #root管理员用户密码 sonar.jdbc.password: root@123456 #创建test用户 sonar.jdbc.url: "jdbc:mysql://mysql:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false" restart: always depends_on: - mysql links: - mysql networks: - 'default' sysctls: - net.core.somaxconn=1024 ulimits: nproc: 65536 nofile: soft: 65536 hard: 65536 networks: default: driver: 'bridge'

优秀的个人博客,低调大师

Nginx 部署HTTPS

系统:Linux Centos 7.4 x64软件:Nginx 1.12.2注:需要阿里云申请本地域名与证书并添加下载到本地。 注:证书文件为 xxxx.pem 与 xxxx.key 两个文件。Nginx 配置文件内添加HTTPS vim /etc/nginx/nginx.conf http { server { listen 443 ssl; server_name xxx.xxx.com; ssl on; root /; index index.html index.htm; ssl_certificate /etc/nginx/cert/215058739960601.pem; ssl_certificate_key /etc/nginx/cert/215058739960601.key; ssl_session_timeout 5m; ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on; location / { root /; index index.html index.htm; } }}含注释http { server { # 启动443端口 listen 443 ssl; # 证书申请的域名 server_name xxx.xxx.com; # 开启SSL协议 ssl on; # 指定访问根目录 root /; # 指定索引 index index.html index.htm; # 指定xxx.pem证书文件 ssl_certificate /etc/nginx/cert/215058739960601.pem; # 指定xxx.key证书文件 ssl_certificate_key /etc/nginx/cert/215058739960601.key; ssl_session_timeout 5m; ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on; # 指定访问目录及索引 location / { root /; index index.html index.htm; } } }

优秀的个人博客,低调大师

redash部署使用

一、安装 从https://github.com/getredash/redash 拉取代码,运行docker-compose.production.yml 1,docker-compose文件调整 主要修改了两处: 1,增加了redis和postgres的db文件与宿主机的映射,不让docker容器停止后数据丢失。 官方默认的docker-compose.production.yml在docker-compose down 命令后,所有的配置信息都丢失了 2,增加了redis和postgres的端口映射,方便调试,线上环境也可以关掉。 3,修改REDASH_COOKIE_SECRET。 修改后的docker-compose.production.yml文件如下: # This is an example configuration for Docker Compose. Make sure to atleast update # the cookie secret & postgres database password. # # Some other recommendations: # 1. To persist Postgres data, assign it a volume host location. # 2. Split the worker service to adhoc workers and scheduled queries workers. version: '2' services: server: image: redash/redash:latest command: server depends_on: - postgres - redis ports: - "5000:5000" environment: PYTHONUNBUFFERED: 0 REDASH_LOG_LEVEL: "INFO" REDASH_REDIS_URL: "redis://redis:6379/0" REDASH_DATABASE_URL: "postgresql://postgres@postgres/postgres" REDASH_COOKIE_SECRET: "Q422k6vaXUk8" REDASH_WEB_WORKERS: 4 restart: always worker: image: redash/redash:latest command: scheduler environment: PYTHONUNBUFFERED: 0 REDASH_LOG_LEVEL: "INFO" REDASH_REDIS_URL: "redis://redis:6379/0" REDASH_DATABASE_URL: "postgresql://postgres@postgres/postgres" QUEUES: "queries,scheduled_queries,celery" WORKERS_COUNT: 2 restart: always redis: image: redis:3.0-alpine ports: - "6379:6379" volumes: - ./data/redis_data:/data restart: always postgres: image: postgres:9.5.6-alpine ports: - "5432:5432" volumes: - ./data/postgresql_data:/var/lib/postgresql/data restart: always nginx: image: redash/nginx:latest ports: - "88:80" depends_on: - server links: - server:redash restart: always 2,创建db [root@VM_38_115_centos redash]# docker-compose -f docker-compose.production.yml run --rm server create_db Starting redash_redis_1 Starting redash_postgres_1 [2018-09-11 09:02:39,580][PID:1][INFO][root] Generating grammar tables from /usr/lib/python2.7/lib2to3/Grammar.txt [2018-09-11 09:02:39,601][PID:1][INFO][root] Generating grammar tables from /usr/lib/python2.7/lib2to3/PatternGrammar.txt [2018-09-11 09:02:41,707][PID:1][INFO][alembic.runtime.migration] Context impl PostgresqlImpl. [2018-09-11 09:02:41,708][PID:1][INFO][alembic.runtime.migration] Will assume transactional DDL. [2018-09-11 09:02:41,724][PID:1][INFO][alembic.runtime.migration] Running stamp_revision -> 969126bd800f 3,运行 # docker-compose -f docker-compose.production.yml up 运行起来的容器如下: 4,邮件配置 For the system to be able to send emails (for example when alerts trigger), you need to set the mail server to use and the host name of your Redash server. If you’re using one of our images, you can do this by editing the .env file: # Note that not all values are required, as they have default values. export REDASH_MAIL_SERVER="" # default: localhost export REDASH_MAIL_PORT="" # default: 25 export REDASH_MAIL_USE_TLS="" # default: false export REDASH_MAIL_USE_SSL="" # default: false export REDASH_MAIL_USERNAME="" # default: None export REDASH_MAIL_PASSWORD="" # default: None export REDASH_MAIL_DEFAULT_SENDER="" # Email address to send from export REDASH_HOST="" # base address of your Redash instance, for example: "https://demo.redash.io" docker-compose文件中配置 server: image: redash/redash:latest environment: ... #邮箱 REDASH_MAIL_SERVER: "smtp.exmail.qq.com" REDASH_MAIL_PORT: 465 REDASH_MAIL_USE_TLS: "false" REDASH_MAIL_USE_SSL: "true" REDASH_MAIL_USERNAME: "no-reply@yoursite.com" REDASH_MAIL_PASSWORD: "111111" REDASH_MAIL_DEFAULT_SENDER: "no-reply@yoursite.com" REDASH_HOST: "http://redash.mysite.com" 测试是否配置成功: [root@VM_38_115_centos ~]# docker exec -it redash_server_1 python manage.py send_test_mail [2018-09-11 10:02:28,627][PID:37][INFO][root] Generating grammar tables from /usr/lib/python2.7/lib2to3/Grammar.txt [2018-09-11 10:02:28,649][PID:37][INFO][root] Generating grammar tables from /usr/lib/python2.7/lib2to3/PatternGrammar.txt 自己邮件会收到Test message。 PS:配置成功了,但在Alerts中触发了警告,设置的接受邮件没收到警告信息。还没找到原因... 二、使用 1,配置数据库 2,查询语句 获取表的更新时间 增加图表展示: 3,Dashboards 三、用户管理 添加用户 四、特性 1,支持iframe嵌入到其它网页 对于任何Query,表格和图形都支持embed点击Embed弹出: 这个功能可以实现自己系统中集成报表展示。 2,可视化图形支持的类型 箱型图 线形图、柱状图、面积图、饼图、散点图 队列图 计数器 漏斗图 地图 透视表 桑基图 桑基图用于表达流量分布于结构对比,最初的发明者使用它来呈现能量的流动与分布。 旭日图(Sunburst) 词云图 五,实践 根据scrapy log日志表,设计出一张bashboard监控面板: 参考 redash邮箱设置 redash环境变量 Visualization Types

优秀的个人博客,低调大师

Cassandra 安装部署

python版本:2.7 jdk版本:1.8 Cassandra版本:3.11.2 官网: http://cassandra.apache.org/ 下载: wget http://mirrors.tuna.tsinghua.edu.cn/apache/cassandra/3.11.2/apache-cassandra-3.11.2-bin.tar.gz 1.解压: tar xvzf apache-cassandra-3.11.2-bin.tar.gz -C ../app/ 2.修改目录名称: mv apache-cassandra-3.11.2/ cassandra-3.11.2/ 3.配置环境变量: vim ~/.bash_profile export CASSANDRA_HOME=/home/hadoop/app/cassandra-3.11.2 export PATH=$CASSANDRA_HOME/bin:$PATH source ~/.bash_profile 4.修改配置文件: vim $CASSANDRA_HOME/conf/cassandra.yaml 修改如下位置,为对应的主机名称: rpc_address: online101 listen_address: online101 - seeds: "online101" - cluster_name: 'online_01' # 可选项 修改 启动脚本.py文件 vim $CASSANDRA_HOME/bin/cqlsh.py DEFAULT_HOST = 'online101' cd $CASSANDRA_HOME/pylib python setup.py install 初始化类似: cassandra -f -R 进入cqlsh cqlsh 或者 cqlsh -ucassandra -pcassandra

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册