【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. suseoj 1210: 会场安排问题 (贪心)

    1210: 会场安排问题 时间限制: 1 Sec  内存限制: 128 MB提交: 1  解决: 1[提交][状态][讨论版][命题人:liyuansong] 题目描述 假设要在足够多的会场里安排一批 ...

  2. 配置k8s集群context-rbac实践

    说明 在openshift环境中,可以通过oc project {project_name}命令来切换project,那么在k8s中式如何切换namespace的呢?(ocp的project即相当于k ...

  3. Vue 指令总结大全

    1.v-text v-text主要用来更新textContent. <p>{{msg}}</p>与<p v-text="msg2"></p ...

  4. webpack-dev-middleware 和 webpack-hot-middleware 配置开发环境和生产环境;webpack脚手架;仿vue-cli

    webpack-dev-server更新后自带express服务器,已经不需要自己搭建.vue-cli从17年底左右也换成了最新的webpack-dev-server,而不是用webpack-dev- ...

  5. Redis系列(三):Redis集群的水平扩展与伸缩

    一.Redis集群的水平扩展 Redis3.0版本以后,有了集群的功能,提供了比之前版本的哨兵模式更高的性能与可用性,但是集群的水平扩展却比较麻烦,接下来介绍下Redis高可用集群如何做水平扩展,在原 ...

  6. python接口自动化测试——简单的文件上传代码实现,人人网登陆后上传图片举例

    import requests '''人人网登陆,图片上传 '''def loginData(): '''登录请求参数''' data = { 'email': '13484545195', 'ico ...

  7. C#笔记01——注释、进制、基本数据类型、量和输入输出函数

    一.注释 1.单行注释 使用方法:行首加 ” //“: VS2019中的快捷键(以后如果不特加说明都是VS2019): 注释(CTRL+E,C): 取消注释(CTRL+E,U): 2.多行注释 使用方 ...

  8. 什么鬼,面试官竟然让我用Redis实现一个消息队列!!?

    GitHub 9.4k Star 的Java工程师成神之路 ,不来了解一下吗? GitHub 9.4k Star 的Java工程师成神之路 ,真的不来了解一下吗? GitHub 9.4k Star 的 ...

  9. 程序员的算法课(14)-Hash算法-对海量url判重

    版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/m0_37609579/article/de ...

  10. jenkins System error

    背景 在使用WAR包安装jenkins后,启动tomcat,显示启动成功,但最后提示信息如下: 04-Dec-2018 03:28:21.563 WARNING [Computer.threadPoo ...