Bootstrap

Docker部署和配置MySQL,Redis,Nginx,Minio等镜像命令集合

目录

安装mysql

 连接服务器上的mysql​编辑

 安装Nginx

 Redis

 安装MongoDB

安装Tomcat

 安装minio


这里我使用的是腾讯云,linux是CentOS7.6 自带docker版本

安装mysql

拉取镜像

docker pull mysql:5.7

创建容器。

docker run -p 3306:3306 --name mysql -v /home/docker/mysql/conf:/etc/mysql/conf.d -v  /home/docker/mysql/logs:/var/log/mysql -v  /home/docker/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=mysql@123 -d mysql:5.7 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci

  • -p:代表端口映射,格式为 宿主机映射端口:容器运行端口。
  • -e:代表添加环境变量 MYSQL_ROOT_PASSWORD 是 root 用户的登陆密码。

 连接服务器上的mysql

 docker ps 查看容器

 安装Nginx

拉取镜像

 docker pull nginx

创建 Nginx 容器

 docker run -di --name nginx -p 80:80 nginx

将容器内的配置文件拷贝到指定目录(需要先提前创建好目录)

# 创建目录
mkdir -p /mydata/docker_nginx
# 将容器内的配置文件拷贝到指定目录
docker cp nginx:/etc/nginx /mydata/docker_nginx/

重命名宿主机 /mydata/docker_nginx/nginx 为 /mydata/docker_nginx/conf

mv /mydata/docker_nginx/nginx/ /mydata/docker_nginx/conf

终止并删除容器(目录挂载操作只能在创建容器时设置)

 docker stop nginx
 docker rm nginx

创建 Nginx 容器,并将容器中的 /etc/nginx 目录和宿主机的 /mydata/docker_nginx/conf 目录进行挂载

docker run -di --name nginx -p 80:80 -v /mydata/docker_nginx/conf:/etc/nginx nginx

访问宿主机:http://主机ip/ 结果如下:

 安装Redis

拉取镜像

docker pull redis

创建容器

##无密码模式
sudo docker run -d --privileged=true --restart=always -p 6379:6379 -v /mnt/data/redis/redis.conf:/etc/redis/redis.conf -v /mnt/data/redis/data:/data --name redis redis redis-server /etc/redis/redis.conf

## 开启redis AOF 模式,设置认证密码
sudo docker run -d --privileged=true --restart=always -p 6379:6379 -v /mnt/data/redis/redis.conf:/etc/redis/redis.conf -v /mnt/data/redis/data:/data --name redis redis redis-server /etc/redis/redis.conf --appendonly yes --requirepass "mypassword"

## 一般咋不开启AOF模式,使用默认的rdb
sudo docker run -d --privileged=true --restart=always -p 6379:6379 -v /mnt/data/redis/redis.conf:/etc/redis/redis.conf -v /mnt/data/redis/data:/data --name redis redis redis-server /etc/redis/redis.conf --requirepass "mypassword"

连接容器中的 Redis 时,只需要连接宿主机的 IP + 指定的映射端口即可。

 安装MongoDB

拉取镜像

docker pull mongo

创建容器

docker run -di --name mongo -p 27017:27017 mongo

连接容器中的 MongoDB 时,只需要连接宿主机的 IP + 指定的映射端口即可。

安装Tomcat

拉取镜像

 docker pull tomcat

创建容器

 docker run -di --name tomcat -p 8080:8080 tomcat

进入容器

 docker exec -it tomcat /bin/bash

 查看 webapps 目录下是否有 ROOT 项目,我们熟悉的 Tomcat 猫页面一般就在这个项目中。

可以通过命令进入到webapps中,可以看到该目录下空空如也,其实 Tomcat 在比较新的版本中将默认的 ROOT 项目放在了 webapps.dist 中了

 如果你真想访问 http://主机ip:8080/ 看到 Tomcat 猫,将其复制至 webapps 即可。

# 进入tomcat容器
[root@VM-4-10-centos ~]#  docker exec -it tomcat /bin/bash

root@c91f9b701476:/usr/local/tomcat# ls
bin  BUILDING.txt  conf  CONTRIBUTING.md  lib  LICENSE  logs  native-jni-lib  NOTICE  README.md  RELEASE-NOTES  RUNNING.txt  temp  webapps  webapps.dist  work
root@c91f9b701476:/usr/local/tomcat# cd webapps
root@c91f9b701476:/usr/local/tomcat/webapps# ls
root@c91f9b701476:/usr/local/tomcat/webapps# cd ..
root@c91f9b701476:/usr/local/tomcat# cd webapps.dist/
root@c91f9b701476:/usr/local/tomcat/webapps.dist# ls
docs  examples  host-manager  manager  ROOT

# 复制root到webapps文件夹命令行
root@c91f9b701476:/usr/local/tomcat/webapps.dist# cp -rf ROOT/ /usr/local/tomcat/webapps

 

 安装minio

拉取镜像

docker pull minio/minio

 创建目录:一个用来存放配置,一个用来存储上传文件的目录。

mkdir -p /home/minio/config
mkdir -p /home/minio/data

生成minio容器
使用默认生成账户与密码:默认账户与密码:minioadmin     minioadmin 

9090端口指的是minio的客户端端口

MINIO_ACCESS_KEY :账号

MINIO_SECRET_KEY :密码(账号长度必须大于等于5,密码长度必须大于等于8位)

docker run -p 9000:9000 -p 9090:9090 \
     --net=host \
     --name minio \
     -d --restart=always \
     -e "MINIO_ACCESS_KEY=minioadmin" \
     -e "MINIO_SECRET_KEY=minioadmin" \
     -v /home/minio/data:/data \
     -v /home/minio/config:/root/.minio \
     minio/minio server \
     /data --console-address ":9090" -address ":9000"

访问http://ip:9090就可以进入控制面板了

一些linux 和 docker的常用命令:

退出容器 CTRL+D 

linux修改配置文件vim xxx.conf

保存并退出shift+zz

查看所有docker下载的镜像docker images

删除docker镜像docker rmi 镜像名或镜像id

删除容器docker rm -f 容器id

重启所有docker容器docker restart $(docker ps -a -q)

重启所有运行中的容器 docker restart $(docker ps -q)

查看运行中的docker容器docker ps

 先这么多,之后再补充。。。。。

;