0x00前言
最近服务器在做迁移,有的服务需要重新安装,有些命令太久没使用也忘掉些许,每次迁移都得重新查百度,这样比较麻烦,所以还是花点时间把平时常见的服务安装的流程总结一下,本次总结的是Docker版本的服务安装过
0x01Docker安装及配置
1、安装Docker
在Windows上可直接访问Dockerhub下载,一般不使用Windows环境
在Linux上,以Centos7为例
先更新下yum
1 | yum -y update //这里要注意,在生产环境下慎重,用于学习可随意 |
移除曾经安装过的Docker版本
1 | yum remove docker docker-common docker-selinux docker-engine |
安装Docker所需依赖
1 | yum install -y yum-utils device-mapper-persistent-data lvm2 |
查看可安装的Docker版本
1 | yum list docker-ce --showduplicates | sort -r |
安装Docker所选版本
1 | yum -y install docker-ce-18.03.1.ce |
启动Docker设置开机自启
1 | systemctl start docker |
2、镜像源
一般来说,docker的镜像源是国外的,使用国内网络下载镜像速度会比较慢,所以首先要更改下镜像源,这里有国内的比较常用的镜像源
1 | 网易:http://hub-mirror.c.163.com |
修改镜像源
vi /etc/docker/daemon.json文件,若没有则创建该文件,添加以下内容:
1 | { |
3、重启Docker
1 | sudo systemctl daemon-reload |
4、查看Docker服务状态
1 | systyemctl status docker |
5、Docker-compose的配置
1 | sudo curl -L "https://github.com/docker/compose/releases/download/v2.2.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose |
1 | sudo chmod +x /usr/local/bin/docker-compose |
1 | sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose |
1 | docker-compose version |
0x02Mysql
1、拉取mysql镜像
1 | docker pull mysql |
或者查询可安装的Mysql版本
1 | docker search mysql |
2、查看mysql镜像
1 | docker images -a |
3、启动mysql容器
1 | docker run -p 3306:3306 --name mysql --restart=always --network common-network -v /mydata/mysql/log:/var/log/mysql -v /mydata/mysql/data:/var/lib/mysql -v /mydata/mysql/conf:/etc/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7 |
说明:
-p 指定在容器内部的端口 以及对外暴露的端口
–name 设置服务器名称
–restart 是否运行跟随docker一起启动
–network 容器之间内部通信网络
-v 挂载命令 将容器中的配置挂载在外部来方便修改
-d 指定版本
-e 修改配置
-e 指定root的密码
4、进入到mysql容器中
1 | docker exec -it mysql /bin/bash //mysql可以改成容器id |
5、修改mysql配置
1 | cd /mydata/mysql/conf |
6、创建my.cnf文件
1 | [client] |
7.重启mysql服务 使其配置生效
1 | docker restart mysql |
8、授权远程访问
进入mysql
1 | mysql -u root -p |
进入mysql库中
1 | use mysql; |
查询库中的账号和允许连接的host
1 | select user,host from user; |
给root 用户授权所有的权限以及能访问的ip
1 | grant all privileges on *.* to root@"ip" identified by "root"; |
刷新权限生效
1 | flush privileges; |
0x03Jdk
1、查看可用jdk版本
1 | docker search jdk |
2、拉取jdk镜像
1 | docker pull jdk |
3、查看jdk镜像是否下载
1 | docker images |
4、启动java容器
1 | docker run -d -it --name java java |
说明:
run:启动一个镜像容器
-d:指定容器运行于后台
-it:-i 和 -t 的缩写;
- -i:以交互模式运行容器,通常与 -t 同时使用
- -t:为容器重新分配一个伪输入终端,通常与 -i 同时使用
–name:指定容器名字,后续可以通过名字进行容器管理
0x04Python3
Linux默认安装了Python2,若需要Python3则另外单独安装
1、拉取python3镜像
1 | docker pull python:3.7 |
2、挂载目录
其作用是可借容器环境运行宿主机的脚本
-v /opt/python_home:/home/python_home
就是将主机上的/opt/python_home目录挂载到容器内/home/python_home目录里
3、运行python容器
1 | docker run -itd --name python37 -v /opt/python_home:/home/python_home python:3.7 |
4、进入python容器
1 | docker exec -it python37 /bin/bash |
0x05Redis
1、拉取最新redis镜像
1 | docker pull redis:latest |
2、准备redis.conf文件
可以到redis的官网下载压缩包,拿出里面的redis.conf文件
3、配置文件
bind 127.0.0.1
注释掉这部分,使redis可以外部访问
daemonize no
用守护线程的方式启动
requirepass 你的密码
给redis设置密码
appendonly yes
redis持久化 默认是no
tcp-keepalive 300
防止出现远程主机强迫关闭了一个现有的连接的错误 默认是300
4、选择从本地挂载到redis容器内的路径
在本地某个位置创建文件夹,把配置文件存放到文件夹里
我这里选择/usr/local/redis
5、启动容器
1 | docker run -itd -p 6379:6379 --name redis -v /usr/local/redis/redis.conf:/etc/redis/redis.conf -v /usr/local/redis/data:/data -d redis redis-server /etc/redis/redis.conf --appendonly yes |
说明:
-p 6379:6379 把容器内的6379端口映射到宿主机6379端口
-v /data/redis/redis.conf:/etc/redis/redis.conf 把宿主机配置好的redis.conf放到容器内的这个位置中
-v /data/redis/data:/data 把redis持久化的数据在宿主机内显示,做数据备份
redis-server /etc/redis/redis.conf 这个是关键配置,让redis不是无配置启动,而是按照这个redis.conf的配置启动
–appendonly yes redis启动后数据持久化
0x06Node
1、拉取最新镜像
1 | docker pull node |
2、运行容器
1 | docker run -it --name node node |
3、其他
其中npm命令也会跟随镜像一起安装,命令行npm -version查询npm版本,若返回版本号则安装成功
0x07补充
以后有其余常见服务会持续记录到本文章,对学习服务的一个总结,还有一份Windows和Linux的主机版的有空再写一下