安装docker
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
systemctl start docker #启动
systemctl enable docker #开机自启
安装docker-compose
sudo curl -L https://github.com/docker/compose/releases/download/1.16.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose #执行权限
docker-compose --version #查看版本
安装容器管理器portainer
docker pull portainer/portainer-ce
docker run -d --name=Portainer -p 9000:9000 -v /root/docker/portainer-ce:/data -v /var/run/docker.sock:/var/run/docker.sock portainer/portainer-ce:latest
安装postgresql
docker run --name postgres --restart=always -e POSTGRES_PASSWORD=myPassw0rd -p 5432:5432 -v /data/postgresql:/var/lib/postgresql/data -d postgres
安装redis
mkdir -p /home/redis/conf #创建目录
touch /home/redis/conf/redis.conf #创建文件
docker pull redis:bullseye
docker run -d --name redis -p 6379:6379 --restart unless-stopped -v /home/redis/data:/data -v /home/redis/conf/redis.conf:/etc/redis/redis.conf redis:bullseye redis-server /etc/redis/redis.conf
安装rabbitMQ
docker run -d --hostname my-rabbit --name rabbit -p 15672:15672 -p 5673:5672 rabbitmq
安装MSSSQL
docker run --name SQLServer -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=Abc12345" -p 1433:1433 -d mcr.microsoft.com/mssql/server
安装mongoDB
docker run -d -p 27017:27017 -v /home/mongo/config:/data/configdb -v /home/mongo/db:/data/db --name mongoDB mongo --auth
#进入容器
docker exec -it mongodb mongosh admin #低版本使用的是mongo 高版本使用的是mongosh
#创建admin管理员账号
db.createUser({ user: 'admin', pwd: 'admin123456', roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] });
#验证
db.auth("admin","admin123456");
安装mysql
docker run -p 3306:3306 --name mysql --restart=always --privileged=true
-v /home/mysql/log:/var/log/mysql
-v /home/mysql/data:/var/lib/mysql
-v /home/mysql/conf:/etc/mysql
-v /etc/localtime:/etc/localtime:ro
-e MYSQL_ROOT_PASSWORD=123456 -d mysql:latest
安装gogs
docker run -id --name=gogs -p 10022:22 -p 13000:3000 -v /home/gogs:/data gogs/gogs
gogs安装参考链接:https://blog.csdn.net/bbj12345678/article/details/122713883
安装jenkins
docker run -d --name jenkins
-u root #防止jenkins里没有执行docker的权限
-p 8081:8080 -p 50000:50000
-v /home/jenkins:/var/jenkins_home
-v /var/run/docker.sock:/var/run/docker.sock #映射jenkins里的docker和宿主机的docker
-v /etc/localtime:/etc/localtime #时间
--privileged=true #防止jenkins里没有执行docker的权限
jenkins/jenkins:lts
#宿主机执行
echo $PATH
#输出
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
#配置到jenkins系统配置-全局属性 键值对 PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
#然后在jenkins里安装docker,不然在kenkins里执行shell脚本(含docker指令时)会报错:docker not found
#解决jenkins里时间跟宿主机差8小时的问题
docker exec -it -u root jenkins /bin/bash #进入容器
echo Asia/Shanghai >/etc/timezone #创建Asia时区文件
date -R #打印看看时间
exit #退出容器
docker cp /usr/share/zoneinfo/Asia/Shanghai jenkins:etc/localtime #宿将宿主机的日期复制到容器内
docker restart jenkins #重启容器
#shell脚本例子
container="auth-server"
image=${container}
echo "清理容器"
if docker ps -aqf "name=${container}"; then
docker stop ${container}
docker rm ${container}
fi
echo "清理镜像资源"
if docker images ${image}; then
docker rmi ${image}
fi
echo "镜像制作"
docker build -t ${image} .
echo "容器运行"
docker run -d -p 64999:80 --name=${container} ${image}
jenkins参考链接:https://www.cnblogs.com/william-xu/p/11497108.html
docker-compose方式安装elasticsearch
version: '3.6'
services:
Elasticsearch:
image: elasticsearch:7.16.2
container_name: elasticsearch
restart: always
volumes:
- elastic_data:/usr/share/elasticsearch/data/
environment:
ES_JAVA_OPTS: "-Xmx256m -Xms256m"
discovery.type: single-node
ports:
- '9200:9200'
- '9300:9300'
networks:
- elk
Logstash:
image: logstash:7.16.2
container_name: logstash
restart: always
volumes:
- ./logstash/:/logstash_dir
command: logstash -f /logstash_dir/logstash.conf
depends_on:
- Elasticsearch
ports:
- '9600:9600'
environment:
LS_JAVA_OPTS: "-Xmx256m -Xms256m"
networks:
- elk
Kibana:
image: kibana:7.16.2
container_name: kibana
restart: always
ports:
- '5601:5601'
environment:
- ELASTICSEARCH_URL=http://elasticsearch:9200
depends_on:
- Elasticsearch
networks:
- elk
volumes:
elastic_data: {}
networks:
elk:
docker run -v 映射文件时,需要在宿主机上先新建该文件,否则会被识别为目录
docker ps -a 打印全部容器 -a表示全部
docker restart 123 重启id为123的容器