【docker】使用学习

目录

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

1、docker 安装

2、mysql 安装

3、rabbitmq 安装

4、radis 安装

5、jdk 安装

6、nginx 安装

7、elasticsearch 安装

8、vim 安装

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】使用学习的更多相关文章

  1. 在Windows环境中开始Docker的学习和体验

    研究docker有一段时间了,当然我主要的使用环境还是在Linux中,确实很方便. 但也有不少朋友希望使用Windows来工作学习,这里介绍一下在Windows中如何快速开始Docker的学习和体验吧 ...

  2. Docker容器学习梳理 - 应用程序容器环境部署

    关于国内Docker镜像,可以参考:Docker容器学习梳理--基础知识(2) 的Docker镜像使用. 如果我们需要在Docker环境下部署tomcat.redis.mysql.nginx.php等 ...

  3. Docker容器学习梳理 - 日常操作总结

    使用Docker已有一段时间了,今天正好有空梳理下自己平时操作Docker时的一些命令和注意细节: Docker 命令帮助 $ sudo docker Commands: attach Attach ...

  4. docker深入学习

    docker深入学习 一.容器的介绍和容器的发展史 为什么要学习容器? 在openstack之后,目前互联网最火热的技术莫过于docker容器了,早在2015年,京东技术备战双11就是使用了10万+D ...

  5. 服务器搭建远程docker深度学习环境

    服务器搭建远程docker深度学习环境 本文大部分内容参考知乎文章 Docker+PyCharm快速搭建机器学习开发环境 搭建过程中出现ssh连接问题可以查看最后的注意事项 Docker Docker ...

  6. Docker命令学习

    今天更换腾讯云系统的时候发现了多了个CoreOS,据说是专门运行docker的轻量系统,顺便学习一下docker命令. 1. docker version 显示 Docker 版本信息. 2. doc ...

  7. 有关docker的学习链接

    本文是自己搜索的比较好的网上资源,便于有兴趣者查阅. 英文官网 https://docs.docker.com/engine/getstarted/ 中文入门手册 http://www.docker. ...

  8. Docker个人学习总结

    最近一段时间学习了下Docker,关于Docker的安装,运用什么的在这里我不会过多的说明,我只说我对于Docker的一些理解,附加我用于记录的少量代码. 刚开始学习Docker的时候,找资料在网上看 ...

  9. Docker技术学习

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://sofar.blog.51cto.com/353572/1598249 貌似Doc ...

  10. Docker入门学习

    Python爬虫 最近断断续续的写了几篇Python的学习心得,由于有开发经验的同学来说上手还是比较容易,而且Python提供了强大的第三方库,做一个小的示例程序还是比较简单,这不我之前就是针对Pyt ...

随机推荐

  1. 十二、powerManager

    PowerManger模块主要负责电池工作状态,电量监测,充放电管理. 1.1     初始化 在PowerInit()接口中完成了powerManager模块的初始化,在初始化的末端,进行了多个AD ...

  2. css未知高度垂直居中

    <!doctype html> <html lang="en"> <head> <meta charset="utf-8&quo ...

  3. 红帽学习记录[RHCE] 防火墙与网络合作

    目录 防火墙 基本介绍 firewalld 区域zone 管理firewalld 关于富规则 定义 firewalld操作富规则的命令 语法 常用的示例 网络合作 链路聚合 网络组的文件 网络组命令 ...

  4. Spring与Shiro整合 登陆操作

    Spring与Shiro整合 登陆操作 作者 : Stanley 罗昊 [转载请注明出处和署名,谢谢!] 编写登陆Controller方法  讲解: 首先,如果你登陆失败的时候,它会把你的异常信息丢到 ...

  5. 图解 Spring:HTTP 请求的处理流程与机制【1】

    2003 年,老兵哥初到中兴开始研究生实习,Spring 就是那年诞生的,2004 年 3 月发布了 1.0 版本,到现在已经超过 15 年了.从单体式分层架构到云原生微服务架构,它稳坐在 JAVA ...

  6. vue学习笔记(九)vue-cli中的组件通信

    前言 在上一篇博客vue学习笔记(八)组件校验&通信中,我们学会了vue中组件的校验和父组件向子组件传递信息以及子组件通知父组件(父子组件通信),上一篇博客也提到那是对组件内容的刚刚开始,而本 ...

  7. linux 进程简介

    进程相关知识简介 进程定义: 一个运行中的程序即一个process task struct: 内核存储进程信息的固定格式称为task struct,task struct记录了例如该进程内存下一跳位置 ...

  8. Theano 更多示例

    Logistic函数 logistic函数的图,其中x在x轴上,s(x)在y轴上. 如果你想对双精度矩阵上的每个元素计算这个函数,这表示你想将这个函数应用到矩阵的每个元素上. 嗯,你是这样做的: x= ...

  9. 【JavaEE】之MyBatis逆向工程的使用

    MyBatis逆向工程可以方便的从数据库中将表自动映射到JAVA POJO类,并同时生成Mapper.xml和Mapper接口,方便实用.下面介绍一下逆向工程的使用方法. 使用逆向工程,我们最好是新建 ...

  10. 小白学 Python 爬虫(12):urllib 基础使用(二)

    人生苦短,我用 Python 前文传送门: 小白学 Python 爬虫(1):开篇 小白学 Python 爬虫(2):前置准备(一)基本类库的安装 小白学 Python 爬虫(3):前置准备(二)Li ...