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 容器名字
posted @ 2020-05-21 13:09  Nuti  阅读(389)  评论(0编辑  收藏  举报