mariadb, redis, jar 发布到docker
1.拉取镜像:
https://hub.docker.com/search?q=&type=image
找到对应得镜像,拉取到本地,如果是离线,自己上传上去
2. 查看镜像 docker images:
3. 启动一个mariadb 实例
mkdir -p /data/mariadb/data 建一个目录作为和容器的映射目录
启动MariaDB实例很简单:
docker run --name mariadb -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -v /data/mariadb/data:/var/lib/mysql -d mariadb
... wheresome-mariadb
是要分配给容器的名称,123456
是要为MySQL根用户设置的密码,请参阅上面的列表以获取相关标签。
4. 进入容器
docker exec -it XXX /bin/bash XXX 为 container id
mysql -uroot -p123456 登录到命令行
5. 设置权限,这里参考windows上MySQL的处理 https://www.cnblogs.com/leolzi/p/11497925.html
GRANT ALL PRIVILEGES ON *.* TO 'root'@'172.10.0.123' IDENTIFIED BY '123456' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
FLUSH PRIVILEGES;
6.配置文件修改
-
从容器中拷贝一份mariadb配置文件(或者是直接创建文件)
sudo docker cp mariadb:/etc/mysql/conf.d/docker.cnf /data/mariadb/my.cnf
-
修改my.cnf,在 [mysqld] 节点下添加
[mysqld]
skip-host-cache
skip-name-resolve
server-id=1log_bin=logs-bin
expire-logs-days = 14
max-binlog-size = 50000M
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
thread_cache_size=200
max_connections=2000
wait_timeout = 300
interactive_timeout = 500
# use cache
query_cache_size=2048M
query_cache_type=1
-
复制master_my.cnf并覆盖master中的my.cnf
docker cp /data/mariadb/my.cnf mariadb:/etc/mysql/conf.d/docker.cnf
-
重启master容器
docker restart mariadb
-
09 Redis 镜像安装
9.1 下载配置文件
从官网获取 redis.conf 配置文件,安装要求修改 放到对应的位置 ,并创建目录:mkdir -p /data/redis/data
/data/redis/redis.conf
修改文件
配置远程访问:
protected-mode yes
注释掉
#bind 127.0.0.1
9.2 docker 启动 redis 命令
docker run -p 6379:6379 --name redis -v /data/redis/redis.conf:/etc/redis/redis.conf -v /data/redis/data:/data -d redis redis-server /etc/redis/redis.conf --appendonly yes
命令解释说明:
- -p 6379:6379 端口映射:前表示主机部分,:后表示容器部分。
- --name myredis 指定该容器名称,查看和进行操作都比较方便。
- -v 挂载目录,规则与端口映射相同。
- -d redis 表示后台启动redis
- redis-server /etc/redis/redis.conf 以配置文件启动redis,加载容器内的conf文件,最终找到的是挂载的目录/usr/local/docker/redis.conf
- appendonly yes 开启redis 持久化
9.3 使用 docker exec -it redis /bin/bash进入redis9.3
10. jar 镜像的安装
10.1 拉取镜像:
docker pull java:8u111
10.2 启动容器:
将test.jar放在虚拟机的/usr目录下,然后执行命令启动jar
docker run -d -p 9090:9090 -v /usr/springboot-1.jar:/usr/springboot-1.jar --name springboot java:8u111 java -jar /usr/springboot-1.jar
-d 表示在后台启动
-p 9090:9090 表示将容器的端口 映射成宿主主机的端口,否则9090端口访问不到
-v /usr/springboot-1.jar:/usr/springboot-1.jar 表示将宿主主机的jar文件,映射到容器中(分号前为宿主主机的路径,分号后为容器中的路径)
--name springboot 表示为该容器取一个全局唯一的名称,这里我取的名称为springboot
java:8u111 表示镜像文件的名称和tag
java -jar /usr/springboot-1.jar 表示运行jar包,注意:这里的jar包为容器中的位置,是通过前面的-v属性映射的
实例:
docker run -d -p 8133:8133 -v /usr/local/mic/quality/dataquality-service-1.0-SNAPSHOT.jar:/mic/dataquality-service-1.0-SNAPSHOT.jar --name quality java:8u111 java -jar /mic/dataquality-service-1.0-SNAPSHOT.jar
11. 启动后忘记命令怎么办:
如:mariadbdocker inspect
mariadb