【docker】使用学习
【docker】使用学习
目录
===========================================================
9、Alpine Linux 3.9 安装 GraphicsMagick
10、consul 安装
===========================================================
# yum -y update 需要知更新内核;
# yum -y upgrade 更新系统时,软件和内核保持原样
# yum clean all
# yum makecache
#此命令也适用于所有的Linux发行版
# cat /etc/issue # uname -a 或者 uname -r # cat /proc/version #只适合Redhat系
# cat /etc/redhat-release
安装 rz sz
yum install -y lrzsz
后台运行程序
方式一:命令前加 nohup
方式二:命令前加 setsid
方式三:命令前后 &
以上三种方式,都是提交命令时才能使用。但是如果我们未加任何处理就已经提交了命令,Ctrl-z补救
nohup java -Duser.timezone=GMT+08 -Xms512m -Xmx1g -jar greenhome-1.0.0.jar > /dev/null &
0、centos7 配置
备份源
# mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
下载对应版本 repo 文件, 放入 /etc/yum.repos.d/
# curl -o CentOS-Base.repo http://mirrors.163.com/.help/CentOS7-Base-163.repo
清理
# yum clean all
# yum makecache
1、docker 安装
备份源
# mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
下载163的源,这是centos7的
# curl -o CentOS-Base.repo http://mirrors.163.com/.help/CentOS7-Base-163.repo
其他的源地址
CentOS5 :http://mirrors.163.com/.help/CentOS5-Base-163.repo
CentOS6 :http://mirrors.163.com/.help/CentOS6-Base-163.repo
缓存
# yum clean all
# yum makecache
看内核,3.10以上
# uname -r
安装docker
# yum -y install docker
启动docker
# systemctl start docker
开机启动docker
# systemctl enable docker
docker 默认工作目录是 /var/lib/docker
查看当前 docker 运行的工作目录
docker info | grep "Docker Root Dir"
配置文件 /etc/docker/daemon.json 默认没有
通过修改daemon配置文件/etc/docker/daemon.json来使用加速器
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["自己去阿里云申请一个"]
}
EOF
重启 docker https://t8pxpmlw.mirror.aliyuncs.com
systemctl daemon-reload
systemctl restart docker
修改 docker 参数,例如追加 --restart=always 参数
docker container update --restart=always mysql荣启铭
2、mysql 安装
https://hub.docker.com/_/mysql
下载 mysql 容器 debian:buster-slim
# docker pull mysql:8.0.20
启动 mysql 容器
# docker run -d --restart=always --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -e TZ=Asia/Shanghai mysql:8.0.20
进入容器,容器系统 Debian GNU/Linux 9
# docker exec -it mysql bash
登录 mysql
mysql -u root -p
修改密码
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '';
mysql> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '';
创建用户
mysql> CREATE USER 'ycx'@'%' IDENTIFIED WITH mysql_native_password BY '';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'ycx'@'%';
查找Docker内,MySQL配置文件my.cnf的位置
# mysql --help | grep my.cnf
官方镜像在
/etc/mysql/my.cnf
/etc/mysql/conf.d/mysql.cnf 推荐在此修改
配置修改参考
[mysqld]
# 设置3306端口
port=3306 # 自定义设置mysql的安装目录,即解压mysql压缩包的目录
basedir=C:\env\mysql-8.0.16-winx64 # 自定义设置mysql数据库的数据存放目录
datadir=C:\env\mysql-8.0.16-winx64\data # 允许最大连接数
max_connections=1000 # 允许连接失败的次数,这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=10 # 服务端使用的字符集默认为utf8mb4
character-set-server=utf8mb4
collation-server=utf8mb4_general_ci # 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB # 默认使用“mysql_native_password”插件认证
default_authentication_plugin=mysql_native_password # 时区
default-time-zone='+8:00' [mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8mb4 [client]
# 设置mysql客户端连接服务端时默认使用的端口和默认字符集
port=3306
default-character-set=utf8mb4
必要配置
# 在 /etc/mysql/my.cnf 中追加
mysqld]
max_connections =
max_user_connection=9000
# 修改时区
default-time-zone = '+08:00'
设置时区 参考博文 https://www.cnblogs.com/zhi-leaf/p/10608134.html
1. 修改 MySQL 时区
可以通过 mysql 语句修改
show variables like '%time_zone%';
set global time_zone = '+8:00'; 但是推荐配置文件修改,因为自己 MySql 修改后不行
# vi /etc/mysql/my.cnf
[mysqld]
default-time-zone = '+08:00'
2. 修改容器系统时区 (Debian GNU/Linux 9 debian系)
宿主机时区
# date -R
2020年 01月 19日 星期日 16:03:12 CST
进入容器
mkdir -p /usr/share/zoneinfo/Asia
宿主机
docker cp /usr/share/zoneinfo/Asia/Shanghai mysql:/usr/share/zoneinfo/Asia
进入容器
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
# date -R
mysql工具断开重连,select now();
重启 docker
# docker restart mysql
退出不关闭容器
先按 ctrl p 再按 ctrl q
要关闭容器 exit
mysql 8 使用了新加密方式:caching_sha2_password,久加密方式:mysql_native_password
没有升级的客户端工具是无法登陆的,故要修改 为久的加密方式
常用命令行
3、rabbitmq 安装
拉取镜像
可以在 https://hub.docker.com/_/rabbitmq 看可用的镜像
官方镜像 ubuntu:18.04
# docker pull rabbitmq:3.8.3-management
# docker run -d --restart=always -p 5672:5672 -p 15672:15672 -p 25672:25672 --name rabbitmq rabbitmq:3.8.3-management
alpine镜像
# docker pull rabbitmq:3.8.2-management-alpine
启动镜像,默认账号密码 guest
# docker run -d -p : -p : -p : --name rabbitmq rabbitmq:3.8.-management-alpine
# docker run -d --name rabbitmq -p 5672:5672 -p 15672:15672 -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=123456 rabbitmq:3.8.2-management-alpine
其他方式
# docker run -d --name rabbitmq -p : -p : -v /root/ycx/rabbitmq:/var/lib/rabbitmq --hostname myRabbitmq -e RABBITMQ_DEFAULT_VHOST=my_vhost -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS= rabbitmq:3.7.-management
参数说明:
-d 后台运行容器;
--name 指定容器名;
-p 指定服务运行的端口(5672:应用访问端口;15672:控制台Web端口号);
-v 映射目录或文件;
--hostname 主机名(RabbitMQ的一个重要注意事项是它根据所谓的 “节点名称” 存储数据,默认为主机名);
-e 指定环境变量;(RABBITMQ_DEFAULT_VHOST:默认虚拟机名;RABBITMQ_DEFAULT_USER:默认的用户名;RABBITMQ_DEFAULT_PASS:默认用户名的密码)
添加日志队列
docker exec -d rabbitmq rabbitmqadmin -u guest -p guest declare exchange name=logs-exchange type=direct durable=true
docker exec -d rabbitmq rabbitmqadmin -u guest -p guest declare queue name=logs-queue
docker exec -d rabbitmq rabbitmqadmin -u guest -p guest declare binding source=logs-exchange destination=logs-queue routing_key=logs-queue
配置
# docker exec -it rabbitmq bash
# vi /etc/rabbitmq/rabbitmq.conf
通过设置 loopback_users 为 none 可以使 guest 用户进行远程连接
例子
添加admin用户并授权
rabbitmqctl list_users
rabbitmqctl add_user admin admin
rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"
rabbitmqctl list_permissions -p /
常用命令行
服务端后台方式启动
rabbitmq-server start & 查看端口占用情况,确认启动成功
lsof -i:5672 查看所有队列
rabbitmqctl list_queues 查看所有虚拟主机
rabbitmqctl list_vhosts 启动应用
rabbitmqctl start_app 停止应用
rabbitmqctl stop_app 节点状态
rabbitmqctl status 添加用户
rabbitmqctl add_user ycx password 列出所有用户
rabbitmqctl list_users 删除用户
rabbitmqctl delete_user ycx 清除用户权限
rabbitmqctl clear_permissions -p vhostpath v 列出用户权限
rabbitmqctl list_user_permissions ycx 修改密码
rabbitmqctl change_password v newpassword 设置用户权限
rabbitmqctl set_permissions -p vhostpath ycx ".*" ".*" ".*" 创建虚拟主机
rabbitmqctl add_vhost vhostpath 列出所以虚拟主机
rabbitmqctl list_vhosts 列出虚拟主机上的所有权限
rabbitmqctl list_permissions -p vhostpath 删除虚拟主机
rabbitmqctl delete_vhost vhost vhostpath 移除所有数据,要在 rabbitmqctl stop_app 之后使用
rabbitmqctl reset 组成集群命令
rabbitmqctl join_cluster <clusternode> [--ram] 查看集群状态
rabbitmqctl cluster_status 修改集群节点的存储形式
rabbitmqctl change_cluster_node_type disc | ram 摘除节点
rabbitmqctl forget_cluster_node [--offline] 修改节点名称
rabbitmqctl rename_cluster_node oldnode1 newnode1 [oldnode2 newnode2] [oldnode3 newnode3...]
4、radis 安装
查看镜像 https://hub.docker.com/_/redis
官方镜像 debian:buster-slim
# docker pull redis:6.0.3
# docker run -d --restart=always -p 6379:6379 --name redis redis:6.0.3
alpine
# docker pull redis:5.0.7-alpine
启动,默认没有密码
# docker run -d -p 6379:6379 --name redis redis:5.0.7-alpine
设置密码启动
# docker run -d -p 6379:6379 --name redis redis:5.0.7-alpine --requirepass "123456"
进入docker
# docker exec -it redis bash
# cd /usr/local/bin/
# vi /etc/redis/redis.conf
配置文件下载地址:https://redis.io/topics/config
docker run -d --restart=always -m=512m --name redis --privileged=true -p 6379:6379 -v /home/app/redis/conf/redis.conf:/etc/redis/redis.conf -v /home/app/redis/data:/data redis:5.0.7 redis-server /etc/redis/redis.conf --appendonly yes --requirepass "123456" --restart=always -> 开机启动容器,容器异常自动重启
-d -> 以守护进程的方式启动容器
--privileged=true -> 提升容器内权限
-p 6379:6379 -> 绑定宿主机端口
-v /home/app/redis/conf/redis.conf:/etc/redis/redis.conf -> 映射配置文件
-v /home/app/redis/data:/data -> 映射数据目录
--name redis -> 指定容器名称
--appendonly yes -> 开启数据持久化
redis 问题总结
exception is io.lettuce.core.RedisCommandExecutionException: MISCONF Redis is configured to save RDB snapshots, but it is currently not able to persist on disk.
Commands that may modify the data set are disabled, because this instance is configured to report errors during writes if RDB snapshotting fails (stop-writes-on-bgsave-error option).
Please check the Redis logs for details about the RDB error.] with root cause
io.lettuce.core.RedisCommandExecutionException: MISCONF Redis is configured to save RDB snapshots, but it is currently not able to persist on disk. Commands that may modify the data set are disabled,
because this instance is configured to report errors during writes if RDB snapshotting fails (stop-writes-on-bgsave-error option). Please check the Redis logs for details about the RDB error. 127.0.0.1:6379> config set stop-writes-on-bgsave-error no
常用命令
# redis-cli
查看所有key
>keys *
清空所有的key
>flushall
5、jdk 安装
docker search jdk
docker pull primetoninc/jdk:1.8
或
docker pull primetoninc/jdk:1.7
官方地址 https://hub.docker.com/r/primetoninc/jdk
docker create -it --name jdk1. primetoninc/jdk:1.8
docker start jdk1.
docker exec -it jdk1. /bin/bash
搜索java
docker search java
docker pull java:
6、nginx 安装
https://hub.docker.com/_/nginx?tab=tags
docker pull nginx:stable
docker run -d --name nginx -p 80:80 -v /ycx/data/nginx/conf/nginx.conf:/etc/nginx/nginx.conf:ro -v /ycx/data/nginx/conf.d:/etc/nginx/conf.d:ro -v /ycx/data/nginx/html:/usr/share/nginx/html:ro -v /ycx/data/nginx/log:/var/log/nginx nginx:stable
7、elasticsearch 安装
最新版
版本 6.2.4
# docker pull docker.elastic.co/elasticsearch/elasticsearch:6.2.
# docker run -d --name elasticsearch624 -p : -p : -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:6.2.
安装分词插件 https://github.com/medcl/elasticsearch-analysis-ik
# docker exec -it elasticsearch624 bash
# cd /usr/share/elasticsearch/bin
# elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.2.4/elasticsearch-analysis-ik-6.2.4.zip
-> Downloading https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.2.4/elasticsearch-analysis-ik-6.2.4.zip
[=================================================] %??
-> Installed analysis-ik
重启
停止容器
# docker stop elasticsearch624
启动容器
# docker start elasticsearch624
测试
# curl -XPUT http://192.168.226.128:9200/index
安装拼音插件 https://github.com/medcl/elasticsearch-analysis-pinyin
# docker exec -it elasticsearch624 bash
# cd /usr/share/elasticsearch/bin
# elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-pinyin/releases/download/v6.2.4/elasticsearch-analysis-pinyin-6.2.4.zip
重启
停止容器
# docker stop elasticsearch624
启动容器
# docker start elasticsearch624
配置
进入docker 6.2.4
# docker exec -it elasticsearch624 bash
查看版本
# cat /etc/redhat-release
查找安装目录
# which elasticsearch
/usr/share/elasticsearch/bin/elasticsearch
查找配置文件
# find / -name elasticsearch.yml
/usr/share/elasticsearch/config/elasticsearch.yml
安装目录 /usr/share/elasticsearch
宿主机测试
# curl 127.0.0.1:9200
修改配置
# vi /usr/share/elasticsearch/config/elasticsearch.yml
追加如下
http.cors.enabled: true
http.cors.allow-origin: "*"
node.master: true
node.data: true
elasticsearch集群中每个节点都有成为主节点的资格,也都存储数据,还可以提供查询服务。
这些功能是由两个属性控制的。node.master和node.data
https://blog.csdn.net/a19860903/article/details/72467996
完整配置文件内容
cluster.name: "docker-cluster"
network.host: 0.0.0.0
http.cors.enabled: true
http.cors.allow-origin: "*"
node.master: true
node.data: true
# minimum_master_nodes need to be explicitly set when bound on a public IP
# set to 1 to allow single node clusters
# Details: https://github.com/elastic/elasticsearch/pull/17288
discovery.zen.minimum_master_nodes: 1
xpack.license.self_generated.type: basic
外网可以访问 network.host: 0.0.0.0
8、vim 安装
同步 /etc/apt/sources.list 和 /etc/apt/sources.list.d 中列出的源的索引
# apt-get update
# apt-get install vim
#此命令也适用于所有的Linux发行版# cat /etc/issue
# uname -a 或者 uname -r
# cat /proc/version
#只适合Redhat系# cat /etc/redhat-release
# yum -y install vim 自动选择y
# yum install vim 手动选择y
# yum remove vim
9、Alpine Linux 3.9 安装 GraphicsMagick
查看容器Linux系统位数(32 64)
# getconf LONG_BIT
a.在线安装
添加域名
# vi /etc/hosts
151.101.0.249 dl-cdn.alpinelinux.org
更新安装
# apk update
# apk add freetype graphicsmagick
b.编译安装
下载准备
# wget http://ftp.icm.edu.pl/pub/unix/graphics/GraphicsMagick/1.3/GraphicsMagick-1.3.33.tar.gz
# wget http://www.imagemagick.org/download/delegates/jpegsrc.v9b.tar.gz
# wget http://www.imagemagick.org/download/delegates/libpng-1.6.31.tar.gz
把下载好的包复制到待安装的Alpine Linux 3.9容器中
# docker cp GraphicsMagick-1.3..tar.gz station-service:/
# docker cp jpegsrc.v9b.tar.gz station-service:/
# docker cp libpng-1.6..tar.gz station-service:/
进入容器解压
# docker exec -it station-service /bin/sh
# tar zxvf GraphicsMagick-1.3..tar.gz
# tar zxvf jpegsrc.v9b.tar.gz
# tar zxvf libpng-1.6..tar.gz
添加IP域名地址,自己ping最新的IP
# vi /etc/hosts
151.101.0.249 dl-cdn.alpinelinux.org
安装需要的编译环境
# apk update
# 下面的命令可以追加 --no-cache,例如 apk add --no-cache musl-dev gcc make
# apk add musl-dev gcc make
编译安装jpegsrc
# cd /jpeg-9b
# ./configure
# make
# make install
编译安装libpng
# cd /libpng-1.6.
# ./configure
# make
# make install
编译安装GraphicsMagick
# cd /GraphicsMagick-1.3.
# ./configure
# make
# make install
测试
# gm version
# gm convert -resize 50x50 -sharpen 1.0 -quality /input.jpg /output.jpg
查看自己是否有缺失的格式,若有缺失安装对应格式,重装 GraphicsMagick。下载地址 http://www.imagemagick.org/download/delegates/
# gm convert -list format
10、consul 安装
导入导出配置
consul kv import --http-addr=http://192.168.0.180:8500 @consul_kv0304.json
consul kv export --http-addr=http://192.168.0.180:8500 > consul_kv0304.json
[mysqld]
【docker】使用学习的更多相关文章
- 在Windows环境中开始Docker的学习和体验
研究docker有一段时间了,当然我主要的使用环境还是在Linux中,确实很方便. 但也有不少朋友希望使用Windows来工作学习,这里介绍一下在Windows中如何快速开始Docker的学习和体验吧 ...
- Docker容器学习梳理 - 应用程序容器环境部署
关于国内Docker镜像,可以参考:Docker容器学习梳理--基础知识(2) 的Docker镜像使用. 如果我们需要在Docker环境下部署tomcat.redis.mysql.nginx.php等 ...
- Docker容器学习梳理 - 日常操作总结
使用Docker已有一段时间了,今天正好有空梳理下自己平时操作Docker时的一些命令和注意细节: Docker 命令帮助 $ sudo docker Commands: attach Attach ...
- docker深入学习
docker深入学习 一.容器的介绍和容器的发展史 为什么要学习容器? 在openstack之后,目前互联网最火热的技术莫过于docker容器了,早在2015年,京东技术备战双11就是使用了10万+D ...
- 服务器搭建远程docker深度学习环境
服务器搭建远程docker深度学习环境 本文大部分内容参考知乎文章 Docker+PyCharm快速搭建机器学习开发环境 搭建过程中出现ssh连接问题可以查看最后的注意事项 Docker Docker ...
- Docker命令学习
今天更换腾讯云系统的时候发现了多了个CoreOS,据说是专门运行docker的轻量系统,顺便学习一下docker命令. 1. docker version 显示 Docker 版本信息. 2. doc ...
- 有关docker的学习链接
本文是自己搜索的比较好的网上资源,便于有兴趣者查阅. 英文官网 https://docs.docker.com/engine/getstarted/ 中文入门手册 http://www.docker. ...
- Docker个人学习总结
最近一段时间学习了下Docker,关于Docker的安装,运用什么的在这里我不会过多的说明,我只说我对于Docker的一些理解,附加我用于记录的少量代码. 刚开始学习Docker的时候,找资料在网上看 ...
- Docker技术学习
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://sofar.blog.51cto.com/353572/1598249 貌似Doc ...
- Docker入门学习
Python爬虫 最近断断续续的写了几篇Python的学习心得,由于有开发经验的同学来说上手还是比较容易,而且Python提供了强大的第三方库,做一个小的示例程序还是比较简单,这不我之前就是针对Pyt ...
随机推荐
- Go 语言优秀资源整理,为项目落地加速🏃
最后更新于2019.11.22 Go 语言优秀资源整理,为项目落地加速
- django_5:表单1
CSRF( Cross Site Request Forgery)跨站点请求欺骗 方法一. {% csrf_token %} 方法二.在setting.py中注释掉MIDDLEWARE中的'djang ...
- python--debug神器pysnooper
使用它你可以获得什么优势: (1)无需用print就可以获得变量的值: (2)以日志地形式进行保存,方便随时查看: (3)可以根据需要,设置调用函数的深度: (4)多个函数的日志,可以设置前缀进行标识 ...
- 2019-9-23:渗透测试,基础学习,http协议数据包的认识,html css的认识,笔记
Burp suite功能模块Dashboard:扫描Proxy:拦截包,代理 drop:放弃Intruder:爆破Decoder:编码,解码repeater:重放comparer:比较 BP,prox ...
- tcpip协议
几个概念 1.分层(我们使用四层模型更为贴合我们的实际网络) 分层是为什么,其实和公司中职位是一样的,不同职位的人做不同的事情,然后不同职位的人合起来,一起完成了数据传输的事情. 链路层 在这个层面 ...
- [题解]洛谷P1094——纪念品分组
原题链接: https://www.luogu.org/problem/P1094 题目简述: 有NNN件纪念品,每个纪念品都有特定的价格,要求将他们分组,每组纪念品之和不得超过MMM,并且每组最多只 ...
- Java中父类和子类代码执行顺序
执行顺序:父类静态块-->子类静态块-->父类非静态块-->父类构造方法-->子类非静态块-->子类构造方法 当父类或子类中有多个静态方法时按在代码中的顺序执行 pack ...
- 100天搞定机器学习|Day57 Adaboost知识手册(理论篇)
Boosting算法 Boosting是一种用来提高弱分类器准确度的算法,是将"弱学习算法"提升为"强学习算法"的过程,主要思想是"三个臭皮匠顶个诸葛 ...
- 以传参的方式执行shell(模板)
以传参的方式执行shell(模板) #!bin/bash # USE: Template # author : xiaowei # -- # state : -name 选项必选,,, -v -m 选 ...
- django框架简介及自定义简易版框架
web应用与web框架本质 概念 什么是web应用程序呢? Web应用程序就一种可以通过互联网来访问资源的应用程序, 用户可以只需要用一个浏览器而不需要安装其他程序就可以访问自己需要的资源. 应用软件 ...