docker的使用越来越广泛,我们在日常开发中也经常会用到,使用docker安装一些常用的软件是比较方便的,在安装这些软件的过程中,我们很难记住那些命令及配置,因此我把常用的一些软件安装命令记录下来,在需要的时候方便使用,后续持续更新。
注意: -v挂载目录在linux/mac与windows下有所不同,请自行修改。
1.安装mysql
docker run -d \
-p 3306:3306 \
--name mysql \
--restart=always \
-e TZ=Asia/Shanghai \
-e MYSQL_ROOT_PASSWORD=123456 \
-v /opt/docker/mysql/log:/var/log/mysql \
-v /opt/docker/mysql/data:/var/lib/mysql \
-v /opt/docker/mysql/conf:/etc/mysql/conf.d \
mysql
- 命令解释:
-d 后台运行
-p 3306:3306 端口映射,宿主机端口:容器端口。
--name mysql 指定该容器名称,查看和进行操作都比较方便。
--restart=always 随docker的启动而启动
-e MYSQL_ROOT_PASSWORD 设置数据库密码
-v 挂载目录(宿主机目录:容器目录),规则与端口映射相同(注意:映射路径需要根据自己的情况修改)。
2.安装redis
docker run -d \
-p 6379:6379 \
--name redis \
--restart=always \
-v /data/redis/redis.conf:/etc/redis/redis.conf \
-v /data/redis/data:/data \
redis redis-server /etc/redis/redis.conf --requirepass 123456 --appendonly yes
-
命令解释
-d 后台运行
-p 6379:6379 端口映射,宿主机端口:容器端口。
--name redis 指定该容器名称,查看和进行操作都比较方便。
--restart=always 随docker的启动而启动
-v 挂载目录,规则与端口映射相同。(注意redis需要先在宿主机目录中新建一个redis.conf文件才能映射,配置内容请参考下方)
--requirepass 设置密码(如果不需要密码可以去掉此项,也可以在配置文件中设置密码)
redis 表示启动redis镜像
redis-server /etc/redis/redis.conf 以配置文件启动redis,
appendonly yes 开启redis 持久化 redis.conf
#允许远程连接
#bind 127.0.0.1
# 注意在docker中运行此项一定要为no,否则会失败
daemonize no
protected-mode no
appendonly yes
# 密码
# requirepass 123456
3.安装mongodb
docker run -itd \
--name mongo \
--restart=always \
-p 27017:27017 \
mongo --auth
- 命令解释
-itd 以交互容器方式后台运行
-p 27017:27017 端口映射,宿主机端口:容器端口。
--name mongo 指定该容器名称,查看和进行操作都比较方便。
--restart=always 随docker的启动而启动 - 接着使用以下命令进入容器,添加用户和设置密码,并且尝试连接。
docker exec -it mongo mongo admin
# 创建一个名为 admin,密码为 123456 的用户。
> db.createUser({ user:'admin',pwd:'123456',roles:[ { role:'userAdminAnyDatabase', db: 'admin'},"readWriteAnyDatabase"]});
# 尝试使用上面创建的用户信息进行连接。
> db.auth('admin', '123456')
4.安装nginx
docker run -d \
--name nignx \
--restart=always \
-p 80:80 \
-v /docker/nginx/html:/usr/share/nginx/html \
-v /docker/nginx/nginx.conf:/etc/nginx/nginx.conf \
-v /docker/nginx/conf.d:/etc/nginx/conf.d \
-v /docker/nginx/logs:/var/log/nginx \
nginx
- 命令解释:
-d 后台运行
-p 80:80 端口映射,宿主机端口:容器端口。
--name nginx 指定该容器名称,查看和进行操作都比较方便。
--restart=always 随docker的启动而启动
-v 挂载目录(宿主机目录:容器目录),规则与端口映射相同(注意:映射路径需要根据自己的情况修改)。
5.安装minio
docker run -d \
-p 9000:9000 \
--name minio \
--restart=always \
-v /mnt/data:/data \
-e "MINIO_ROOT_USER=minio" \
-e "MINIO_ROOT_PASSWORD=minio" \
minio/minio server /data
新版
docker run \
-p 9000:9000 \
-p 9001:9001 \
--name minio1 \
-e "MINIO_ROOT_USER=AKIAIOSFODNN7EXAMPLE" \
-e "MINIO_ROOT_PASSWORD=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY" \
-v /mnt/data:/data \
quay.io/minio/minio server /data --console-address ":9001"
- 命令解释:
-d 后台运行
-p 9000:9000 端口映射,宿主机端口:容器端口。
--name nginx 指定该容器名称,查看和进行操作都比较方便。
--restart=always 随docker的启动而启动
-v 挂载目录(宿主机目录:容器目录),规则与端口映射相同(注意:映射路径需要根据自己的情况修改)。
-e "MINIO_ROOT_USER 用户名
-e "MINIO_ROOT_PASSWORD 密码
6.安装skywalking(使用默认h2数据库)
- 安装server(8.3.0-es6版本根据实际情况修改)
docker run -d \
--name skywalking-oap \
-p 1234:1234 \
-p 11800:11800 \
-p 12800:12800 \
-e TZ=Asia/Shanghai \
--restart always \
apache/skywalking-oap-server:8.3.0-es6
- 安装ui(8.3.0和server版本要一致)
docker run -d --name skywalking-ui \
--restart=always \
-e TZ=Asia/Shanghai \
-p 5000:8080 \
--link skywalking-oap:skywalking-oap \
-e SW_OAP_ADDRESS=skywalking-oap:12800 \
apache/skywalking-ui:8.3.0
7.安装rabbitMQ
docker run -d --name rabbitmq1
-e RABBITMQ_DEFAULT_USER=用户名
-e RABBITMQ_DEFAULT_PASS=密码
-p 15672:15672 -p 5672:5672 rabbitmq:management
8.安装ranchar-server
docker run --name rancher-server
-d --privileged --restart=unless-stopped \
-p 8080:80 -p 446:443 \
rancher/rancher:latest
9.安装nacos/mysql(单机版)
docker run -d \
-e MODE=standalone \
-e SPRING_DATASOURCE_PLATFORM=mysql \
-e MYSQL_SERVICE_HOST=ip \
-e MYSQL_SERVICE_PORT=3306 \
-e MYSQL_SERVICE_USER=数据库用户名 \
-e MYSQL_SERVICE_PASSWORD=数据库密码 \
-e MYSQL_SERVICE_DB_NAME=数据库名称 \
-p 8848:8848 \
--restart=always \
--name nacos \
nacos/nacos-server
10. nacos集群(自行修改配置即可至少三个节点才能组成集群)
7848 端口用于节点选举来确定集群领袖(Leader)
9848 1000 客户端gRPC请求服务端端口,用于客户端向服务端发起连接和请求
9849 1001 服务端gRPC请求服务端端口,用于服务间同步等
docker run -d \
--restart=always \
--name nacos1 \
-e MODE=cluster \
-e NACOS_SERVERS="172.27.1.x:8848 172.27.2.x:8848 172.27.3.x:8848" \
-e NACOS_SERVER_IP=172.27.1.x \
-e SPRING_DATASOURCE_PLATFORM=mysql \
-e MYSQL_SERVICE_HOST=数据库ip \
-e MYSQL_SERVICE_PORT=3306 \
-e MYSQL_SERVICE_USER=用户名 \
-e MYSQL_SERVICE_PASSWORD=密码 \
-e MYSQL_SERVICE_DB_NAME=数据库名称\
-p 8848:8848 \
-p 7848:7848 \
-p 9848:9848 \
-p 9849:9849 \
nacos/nacos-server