Docker安装mysql,redis,mongodb数据库,docker常用命令,以及更换阿里镜像地址
1.安装docker
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum list docker-ce --showduplicates | sort -r
sudo yum install docker-ce
service docker start
docker version
sudo systemctl start docker
sudo systemctl enable docker
解释:
首先安装需要的软件包,然后设置设置yum源,查看所有仓库中所有docker版本。安装docker之后启动docker,查看docker版本是否安装成功。最后设置开机自启
2.更换镜像地址
找到你的镜像地址,编辑daemon.json就行
sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["你的地址"] } EOF sudo systemctl daemon-reload sudo systemctl restart docker
3.安装mysql
docker search mysql docker pull mysql docker images |grep mysql docker run -p 3306:3306 --name mymysql -v $PWD/conf:/etc/mysql/conf.d -v $PWD/logs:/logs -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:latest
解释: docker 搜索mysql,拉取mysql,查看下载的mysql镜像,建立内网外网的端口和文件映射并且运行mysql
具体参数解释
-p 3306:3306:将容器的 3306 端口映射到主机的 3306 端口。 --name : 镜像的名称 -v $PWD/conf:/etc/mysql/conf.d:将主机当前目录下的 conf/my.cnf 挂载到容器的 /etc/mysql/my.cnf。 -v $PWD/logs:/logs:将主机当前目录下的 logs 目录挂载到容器的 /logs。 -v $PWD/data:/var/lib/mysql :将主机当前目录下的data目录挂载到容器的 /var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456:初始化 root 用户的密码。 -d 后台运行容器,并返回容器ID;
进入容器
docker exec -it mymysql /bin/bash
使用docker exec命令来进入正在运行的容器执行容器里的命令,或通过"-it"参数进入正在运行的容器
这个外网时候还访问不了,需要更改权限
GRANT ALL ON *.* TO 'root'@'%'; flush privileges; ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER; ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456'; flush privileges;
完成,这个时候就配置完成了,可以使用客户端登录了
4.安装mogodb
docker search mongodb docker pull mongo docker run --name mongodb -p 27017:27017 -v $PWD:/data/db -d mongo
完成,和之前的一样都是搜索 拉取运行。--auth则访问mongo需要登录账密。我这里不需要 我就没加。
5.安装redis(两种)
(1),直接拉取安装
docker run --name myredis -p 6379:6379 -d redis docker exec -it myredis /bin/bash
(2),自建配置文件
http://download.redis.io/redis-stable/redis.conf
先从这里下载redis.conf 然后改一些参数
bind 127.0.0.1 #注释掉这部分,这是限制redis只能本地访问 protected-mode no #默认yes,开启保护模式,限制为本地访问
运行
docker run --name myredis -p 6379:6379 -v $PWD/redis.conf:/etc/redis/redis.conf -v $PWD/data:/data -d redis redis-server /etc/redis/redis.conf --appendonly yes
完成了,解释一下
redis-server /etc/redis/redis.conf 以配置文件启动redis,加载容器内的conf文件,最终找到的是挂载的目录/usr/local/docker/redis.conf
appendonly yes #redis持久化,自个选择加不加
6.基础都安装完成了。现在总结一下常用命令
- 搜索镜像
docker search 镜像名
- 下载
docker pull 镜像名
- 查看已经下载的镜像
docker images
- 删除镜像
docker image rm 镜像名
- 查看正在运行的容器
docker ps
- 查看全部容器
docker ps -a
- 删除容器
docker rm 容器id或者别名
- 运行容器
docker run --name 别名 -p外网ip:docker内网ip -v外网路径:内网路径 -d 镜像名字(以后台的方式运行)
- 例子 : docker run --name mongodb -p 27017:27017 -v $PWD:/data/db -d mongo
- 进入容器
docker exec -it 容器名 /bin/bash
exec:在运行的容器中执行命令
i和-t这两个参数的作用是,为该docker创建一个伪终端,这样就可以进入到容器的交互模式也就 是进入到容器内
bin/bash的作用是因为docker后台必须运行一个进程,否则容器就会退出,在这里表示启动容器后启动bash。bash也就是可以直接shell这种的 ls pwd的这些命令
- 设置容器随着docker重启自动重启
docker container update --restart=always 容器名字