https://github.com/javthon/serviceinstallation
https://github.com/javthon/serviceinstallation
docker
Last synced: 3 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/javthon/serviceinstallation
- Owner: javthon
- Created: 2019-06-14T08:34:07.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2020-06-03T11:07:03.000Z (almost 5 years ago)
- Last Synced: 2025-01-09T10:32:33.504Z (5 months ago)
- Topics: docker
- Language: Batchfile
- Size: 12.7 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# centos7常用服务安装Docker版
## 安装 Docker
安装一些必要的系统工具:sudo yum install -y yum-utils device-mapper-persistent-data lvm2
添加软件源信息:
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
更新 yum 缓存:sudo yum makecache fast
安装 Docker-ce:sudo yum -y install docker-ce
启动 Docker 后台服务:sudo systemctl start docker
查看 Docker 版本号:docker --version
使用docker命令时如果有Cannot connect to the Docker daemon at tcp://0.0.0.0:2375. Is the docker daemon running?这种情况,可能是没有启动Docker服务成功或者是需要在所有`docker`命令前加`sudo `,例如 `sudo docker images`,不用sudo使用docker方法:
```
unset DOCKER_HOST
unset DOCKER_TLS_VERIFY
unset DOCKER_TLS_PATH
docker ps
```
***
## JDK(非Docker)
**安装步骤**
JDK下载地址
链接:https://pan.baidu.com/s/1eLLSPceIEPf9aSW6TMI63Q
提取码:lki5
```
tar zxvf jdk-8u181-linux-x64.tar.gz
vim /etc/profile
```
输入以下
```
export JAVA_HOME=/root/java/jdk/jdk1.8.0_181
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
```
执行命令:
```
source /etc/profile
java -version
```
**说明**
JDK不用docker安装
需要修改JAVA_HOME路径***
## Kafka
**命令**
安装docker-compose
```
sudo curl -L "https://github.com/docker/compose/releases/download/1.24.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
docker-compose -f docker-compose-single-broker.yml up
```
**说明**
下载 https://github.com/wurstmeister/kafka-docker 上传到Linux服务器,
把docker-compose-single-broker.yml中的KAFKA_ADVERTISED_HOST_NAME换成服务器公网IP,修改KAFKA_CREATE_TOPICS
单机版启动方式:
`docker-compose -f docker-compose-single-broker.yml up`
如果提示内存不够,在[docker-compose-single-broker.yml](https://github.com/javthon/ServiceInstallation/blob/master/kafka/docker-compose-single-broker.yml)添加`KAFKA_JVM_PERFORMANCE_OPTS: " -Xmx256m -Xms256m"`**所需资源**
[docker-compose-single-broker.yml](https://github.com/javthon/ServiceInstallation/blob/master/kafka/docker-compose-single-broker.yml)
***
## Redis
**命令**
```
docker pull redis
docker run -d -p 6380:6379 -v /root/redis.conf:/usr/local/etc/redis/redis.conf --name myredis redis redis-server /usr/local/etc/redis/redis.conf
```
**说明**
-p 6380:6379:将主机的6380端口映射到容器的6379端口。:6379要和redis.conf中的对应
-v /root/redis.conf:/usr/local/etc/redis/redis.conf:挂载redis.conf。
密码和集群等在redis.conf中配置**所需资源**
[redis.conf](https://github.com/javthon/ServiceInstallation/blob/master/redis/redis.conf)**补充**
配置集群方式
1.修改主redis的配置文件
bind 0.0.0.0
requirepass 123456
2.修改从redis的配置文件
bind 0.0.0.0
slaveof 192.168.1.225 6379
masterauth 123456
requirepass 123456
3.启动redis服务
先启动主redis,在启动从redis***
## MongoDB
**命令**
```
docker pull mongo
docker run --name mongodb -v /root/mongo:/data/db -p 27017:27017 -d mongo --auth
docker exec -it mongodb mongo adminuse admin
db.createUser({
user:"admin",
pwd:"admin",
roles:[{
role:"root",
db:"admin"
}]
})db.auth("admin", "admin")
use testdb
db.createUser({
user:"developer",
pwd:"developer2020",
roles:[{
role:"dbAdmin",
db:"testdb"
},{
role:"readWrite",
db:"testdb"
}]
})db.auth("developer", "developer2020")
按ctrl+D退出
```
**说明**
-v /root/mongo:/data/db 将主机文件夹mongo挂载到容器db文件夹,mongo文件夹用来存放数据
-p 27017:27017 将主机端口27017映射到容器端口27017
--auth 开启权限验证
连接:mongodb://developer:[email protected]:27017/testdb
创建了管理员用户admin并用admin创建了用户developer,赋予developer对数据库testdb的管理和读写权限**补充**
MongoDB用户权限
内建的角色数据库用户角色:read、readWrite;
数据库管理角色:dbAdmin、dbOwner、userAdmin;
集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
备份恢复角色:backup、restore;
所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
超级用户角色:root // 这里还有几个角色间接或直接提供了系统超级用户的访问(dbOwner 、userAdmin、userAdminAnyDatabase)
内部角色:__system角色说明:
Read:允许用户读取指定数据库
readWrite:允许用户读写指定数据库
dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
userAdmin:允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户
clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。
readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限
readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限
userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限
dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。
root:只在admin数据库中可用。超级账号,超级权限***
## MySQL
**命令**
```
docker pull mysql:5.7
docker run -p 3318:3306 --name mysql -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7
```
**说明**
-p 3318:3306:将主机的3318端口映射到容器的3306端口。
-e MYSQL_ROOT_PASSWORD=root:初始化 root 用户的密码。***
## Nginx
**命令**
```
docker pull nginx
docker run -p 8085:80 --name mynginx -v /root/nginx/nginx.conf:/etc/nginx/nginx.conf -v /root/nginx/default.conf:/etc/nginx/conf.d/default.conf -v /usr/dist:/usr/dist nginx
```
**说明**
-p 8085:80 将主机8085端口挂载到容器80端口,80端口要和default.conf的端口对应
-v /root/nginx/nginx.conf:/etc/nginx/nginx.conf 挂载nginx.conf
-v /root/nginx/default.conf:/etc/nginx/conf.d/default.conf 挂载default.conf
-v /usr/dist:/usr/dist 挂载映射目录,:后面的/usr/dist要和default.conf里的root路径对应**所需资源**
[default.conf](https://github.com/javthon/ServiceInstallation/blob/master/nginx/default.conf)
[nginx.conf](https://github.com/javthon/ServiceInstallation/blob/master/nginx/nginx.conf)***
## ElasticSearch
**命令**
```
mkdir /opt/esdata
chown -R 1000:1000 /opt/esdata
docker pull elasticsearch:6.8.0
docker run --name=myes -d -p 9200:9200 -p 9300:9300 -v /root/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v /opt/esdata:/usr/share/elasticsearch/data -e "discovery.type=single-node" -e ES_JAVA_OPTS='-Xms100m -Xmx100m' elasticsearch:6.8.0
```
**说明**
-p 9200:9200 将主机9200的http端口挂载到容器9200的http端口
-p 9300:9300 将主机9300的tcp端口挂载到容器9300的tcp端口
-v /root/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml 挂载配置文件
-v /opt/data:/usr/share/elasticsearch/data 挂载数据目录
-e "discovery.type=single-node" 单节点启动
-e ES_JAVA_OPTS='-Xms100m -Xmx100m' 根据情况跳转Java内存大小如果出现maxvirtual memory areas vm.max_map_count [65530] istoo low, increase to at least [262144]
解决方式:
```
vim /etc/sysctl.conf
vm.max_map_count=655300
sysctl -p
```**所需资源**
[elasticsearch.yml](https://github.com/javthon/ServiceInstallation/blob/master/elasticsearch/elasticsearch.yml)***
## 常用命令
* 查看所有镜像
`docker images`
* 查看正在运行的容器
`docker ps`
* 查看所有的容器
`docker ps -a`* 容器镜像删除
1. 停止所有的container,这样才能够删除其中的images:
`docker stop $(docker ps -a -q)`
`docker rm $(docker ps -a -q)`2. 查看当前有些什么images
`docker images`3. 删除images,通过image的id来指定删除谁
`docker rmi `4. 想要删除untagged images,也就是那些id为的image的话可以用
`docker rmi $(docker images | grep "^" | awk "{print $3}")`
5. 要删除全部image的话
`docker rmi $(docker images -q)`* 进入容器
`docker exec -it <容器ID> /bin/bash`***
## 卸载docker
```
sudo yum remove docker-ce
sudo rm -rf /var/lib/docker
```
如若没有完全卸载干净尝试以下方法:
1.查询安装过的包
```
yum list installed | grep docker
```
docker-engine.x86_64 17.03.0.ce-1.el7.centos @dockerrepo2.删除安装的软件包
```
yum -y remove docker-engine.x86_64
```## 官方镜像库
https://hub.docker.com/## 学习资源
https://www.runoob.com/docker/docker-tutorial.html
https://github.com/veggiemonk/awesome-docker
http://www.docker.org.cn/
https://docs.docker.com/get-started/
https://www.qikqiak.com/k8s-book/docs/13.Dockerfile%E6%9C%80%E4%BD%B3%E5%AE%9E%E8%B7%B5.html
https://www.cnblogs.com/dazhoushuoceshi/p/7066041.html