侧边栏壁纸
博主头像
春潮带雨晚来急博主等级

行动起来,活在当下

  • 累计撰写 32 篇文章
  • 累计创建 1 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

docker-install-soft

Administrator
2023-12-09 / 0 评论 / 0 点赞 / 62 阅读 / 9582 字

```math

docker安装个别软件的教程

```

#### mysql

- 1.查询官方镜像库里面的mysql可选安装项

```

docker search mysql

```

- 2.拉取并安装

```

docker pull mysql

```

- 3.查看刚刚拉下的

```

docker images

```

- 4.一系列的操作

```

cd /opt/

mkdir mysql_docker

cd mysql_docker/

echo $PWD

```

- 5.启动mysql容器,在var/lib/docker/containers/下查看容器

```

docker run --name mysqlserver -v $PWD/conf:/etc/mysql/conf.d -v $PWD/logs:/logs -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=war3sxkcs -d -i -p 3306:3306 --restart always mysql:latest

```

```

cd /var/lib/docker/containers/

```

- 6.查看mysql进程

```

docker ps -a

```

- 7.进入mysql容器,并登陆mysql

```

docker exec -it mysqlserver bash

```

```

mysql -uroot -p

```

- 8.开启远程访问权限

```

use mysql;

select host,user from user;

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'war3sxkcs';

flush privileges;

```

- 9.查看日志

```

docker logs -f --tail 10 containerId

```

- 番外:重启策略

- --restart:重启策略

```

always:始终重启

no:不重启 [默认]

on-failure:容器由于错误而退出,则重新启动容器,该错误表现为非零退出代码

unless-stopped:类似于always,除了当容器停止(手动或其他方式)时,即使在Docker守护程序重新启动后也不会重新启动容器

eg:

docker run -dit --restart always

```

- 授权

```

创建其他用户,并授权:

CREATE USER 'song'@'%' IDENTIFIED BY 'song123456'; [指定该用户在哪个主机上可以登陆,如果是本地用户可用localhost,如果想让该用户可以从任意远程主机登陆,可以使用通配符%]

GRANT SELECT,INSERT,UPDATE,CREATE ON . TO 'song'@'%'; (此处的两个*分别表示数据库和表)

flush privileges;

show grants for 'song'; (查看改用户的权限)

--- [权限列表]

all privileges:所有权限。

select:读取权限。

delete:删除权限。

update:更新权限。

create:创建权限。

drop:删除数据库、数据表权限。

修改密码:

update mysql.user set password = password('zhangsannew') where user = 'zhangsan' and host = '%';

删除用户:

drop user zhangsan@'%';

```

#### redis

- 搜索镜像

```

docker search redis

```

- 拉取镜像

```

docker pull redis

```

- 创建redis容器

```

docker run -d --name redis --restart always -p 6379:6379 -v /usr/local/redis/data:/data redis --requirepass "war3sxkcs" --appendonly yes

```

- 创建redis容器(指定配置文件)

```

docker run -d --name redis --restart always -p 6379:6379 -v /usr/local/redis/config:/etc/redis -v /usr/local/redis/data:/data redis redis-server /etc/redis/redis.conf --requirepass "war3sxkcs" --appendonly yes

```

参数说明:

```

-p 6379:6379  //容器redis端口6379映射宿主主机6379

--name redis  //容器名字为redis

-v /usr/local/redis/conf:/etc/redis //docker镜像redis默认无配置文件,在宿主主机/usr/local/redis/conf下创建redis.conf配置文件,会将宿主机的配置文件复制到docker中

-v /root/redis/redis01/data:/data  //容器/data映射到宿主机 /usr/local/redis/data下

-d redis   //后台模式启动redis

redis-server /etc/redis/redis.conf //redis将以/etc/redis/redis.conf为配置文件启动

--appendonly yes  //开启redis的AOF持久化,默认为false,不持久化

```

#### rabbitMQ

- 查看

```

docker search rabbitmq:management

```

- 拉取

```

docker pull rabbitmq:management

```

```

如果docker pull rabbitmq 后面不带management,启动rabbitmq后是无法打开管理界面的,所以我们要下载带management插件的rabbitmq

```

- 启动

```

docker run -d -p 5672:5672 -p 15672:15672 --name rabbitmq rabbitmq:management

```

```

docker run -d --name rabbitmq3.7.7 -p 5672:5672 -p 15672:15672 -v pwd/data:/var/lib/rabbitmq --hostname myRabbit -e RABBITMQ_DEFAULT_VHOST=my_vhost -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=admin df80af9ca0c9

-v 映射目录或文件;

--hostname 主机名(RabbitMQ的一个重要注意事项是它根据所谓的 “节点名称” 存储数据,默认为主机名);

-e 指定环境变量;(RABBITMQ_DEFAULT_VHOST:默认虚拟机名;RABBITMQ_DEFAULT_USER:默认的用户名;RABBITMQ_DEFAULT_PASS:默认用户名的密码)

```

#### Minio

- 拉取

```

docker pull minio/minio

```

- 启动

```

docker run -d -p 9100:9000 --name minio \

--restart always \

-e "MINIO_ACCESS_KEY=root" \

-e "MINIO_SECRET_KEY=war3sxkcs" \

-v /mnt/data:/data \

-v /mnt/config:/root/.minio \

minio/minio server /data

```

- Minio更新后

```

docker run -d -p 9000:9000 -p 9001:9001 --name minio \

--restart always \

-e "MINIO_ROOT_USER=root" \

-e "MINIO_ROOT_PASSWORD=war3sxkcs" \

-v $PWD/data:/data \

-v $pwd/config:/root/.minio \

minio/minio:RELEASE.2021-08-25T00-41-18Z.fips server /data --console-address ":9001"

```

```

-v 表示目录挂载 /mnt/data 是宿主机的位置; :/data 表示容器内部的地址

```

- 客户端地址

```

https://dl.minio.io/client/mc/release/linux-amd64/mc

```

- 配置远程/本地的用户名或密码

```

mc config host add <ALIAS><YOUR-S3-ENDPOINT><YOUR-ACCESS-KEY><YOUR-SECRET-KEY><API-SIGNATURE>

eg:

mc config host add song http://127.0.0.1:9100 root war3sxkcs

./mc ls song [查看当前文件服务下的桶]

```

- 设置策略

```

查看策略:mc policy

mc policy set download song/pigx

设置song这个文件服务别名下的pigx文件下面的所有文件都可以下载

```

#### MongoDB

- 1.拉取

```

docker pull mongo:latest

```

- 2.启动

```

docker run -itd --name mongo -p 27017:27017 --restart always mongo --auth

--auth:需要密码才能访问容器服务

```

- 3.设置用户之类的

```

$ docker exec -it ContainerId mongo admin

# 创建一个名为 root,密码为 war3sxkcs 的用户。

> db.createUser({ user:'root',pwd:'war3sxkcs',roles:[ { role:'userAdminAnyDatabase', db: 'admin'}]});

# 尝试使用上面创建的用户信息进行连接

> db.auth('root', 'war3sxkcs')

```

#### zookeeper

```

docker pull zookeeper

```

```

docker run --privileged=true -d --name zookeeper --publish 2181:2181 -d zookeeper:latest

```

- docker导出image,在另一个地方导入

```

1. 导出

docker save -o /root/images/jenkins_image.tar jenkins/jenkins:latest

2.导入

docker load < /root/images/jenkins_image.tar

```

#### nacos

- 获取

```

docker pull nacos/nacos-server

```

- 简单启动方式/单例启动

```

docker run --env MODE=standalone --name nacos -d -p 8848:8848 --restart always nacos/nacos-server

```

- 配置mysql的启动方式/集群启动

```

docker run -d \

-e PREFER_HOST_MODE=ip \

-e MODE=standalone \

-e SPRING_DATASOURCE_PLATFORM=mysql \

-e MYSQL_MASTER_SERVICE_HOST=192.168.1.150 \

-e MYSQL_MASTER_SERVICE_PORT=3306 \

-e MYSQL_MASTER_SERVICE_USER=root \

-e MYSQL_MASTER_SERVICE_PASSWORD=war3sxkcs \

-e MYSQL_MASTER_SERVICE_DB_NAME=nacos \

-e MYSQL_SLAVE_SERVICE_HOST=192.168.1.150 \

-e MYSQL_SLAVE_SERVICE_PORT=3306 \

-v /home/dockerdata/nacos/logs:/home/nacos/logs \

-p 8848:8848 \

--name nacos \

--restart=always \

nacos/nacos-server

```

0

评论区