1.CentOS7.X下的Docker安装
1.1查看内核版本
Docker要求内核版本在3.10以上。
uname -a
# Linux iZrek5rpbgrl7jZ 3.10.0-1062.18.1.el7.x86_64 #1 SMP Tue Mar 17 23:49:17 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
# 俺这里是3.10.0版本
1.2安装Docker
yum install docker
# 通过docker -v查看docker的版本。
docker -v
# Docker version 1.13.1, build cccb291/1.13.1
# 设置docker开机自启动
systemctl enable docker
1.3Docker镜像加速器
国内从DockerHub拉取镜像的速度会比较慢,此时可以配置镜像加速器。
网易:https://hub-mirror.c.163.com/
阿里云:https://<你的ID>.mirror.aliyuncs.com
七牛云加速器:https://reg-mirror.qiniu.com
# 编辑daemon.json配置镜像
vim /etc/docker/daemon.json
# 可配置多个镜像
# 按i进入编辑模式,编写完成后,按ESC退出编辑模式,输入 :wq 保存并退出
{
"registry-mirrors": ["https://hub-mirror.c.163.com"]
}
# 设置完成后,重新启动服务
[root@iZrek5rpbgrl7jZ /]# systemctl daemon-reload
[root@iZrek5rpbgrl7jZ /]# systemctl restart docker
2.安装MySQL镜像
2.1获取镜像
2.1.1可以到Docker Hub网站搜索镜像。
进入官网即可搜索你想要的镜像
Tags为该镜像的所有可下载的版本,右边是下载镜像对应版本的命令
若要下载最新版本,可将:latest省略
2.1.2通过命令搜索镜像
[root@iZrek5rpbgrl7jZ ~]# docker search mysql
INDEX NAME DESCRIPTION STARS OFFICIAL AUTOMATED
docker.io docker.io/mysql MySQL is a widely used, open-source relati... 9429 [OK]
docker.io docker.io/mariadb MariaDB is a community-developed fork of M... 3396 [OK]
docker.io docker.io/mysql/mysql-server Optimized MySQL Server Docker images. Crea... 690 [OK]
docker.io docker.io/centos/mysql-57-centos7 MySQL 5.7 SQL database server 74
docker.io docker.io/mysql/mysql-cluster Experimental MySQL Cluster Docker images. ... 66
docker.io docker.io/centurylink/mysql Image containing mysql. Optimized to be li... 61 [OK]
docker.io docker.io/deitch/mysql-backup REPLACED! Please use http://hub.docker.com... 41 [OK]
docker.io docker.io/bitnami/mysql Bitnami MySQL Docker Image 39 [OK]
# NAME:镜像名称
# DESCRIPTION:镜像的描述信息
# STARS:类似 Github 里面的 star,表示点赞、喜欢的意思
# OFFICIAL:[OK]代表官方
# AUTOMATED:自动构建
下载MySQL镜像
# 省略版本号时,表示下载最新版本
[root@iZrek5rpbgrl7jZ ~]# docker pull mysql
# 下载MySQL5.7
[root@iZrek5rpbgrl7jZ ~]# docker pull mysql:5.7
2.2查看已经下载好的镜像
[root@iZrek5rpbgrl7jZ ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/rabbitmq latest c1a845de8052 34 hours ago 151 MB
docker.io/mysql 5.7 f965319e89de 35 hours ago 448 MB
docker.io/redis latest a4d3716dbb72 5 days ago 98.3 MB
# 我这里已经提前下载好了rabbitmq、mysql以及redis镜像
2.3容器使用
2.3.1启动容器
[root@iZrek5rpbgrl7jZ ~]# docker run -p 3306:3306 --name test-mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
# 参数说明
# -p:端口映射,如果没有做端口映射,宿主机是访问不了的
# --name:容器名称,随便起
# -e:设置的参数,MYSQL_ROOT_PASSWORD设置MySQL的密码(必须!!!)
# -d:后台运行
# mysql:5.7 所使用的镜像以及版本
# 使用docker ps -a查看拥有的所有容器
[root@iZrek5rpbgrl7jZ ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
ddb603ad7541 mysql:5.7 "docker-entrypoint..." 4 minutes ago Up 4 minutes 0.0.0.0:3306->3306/tcp, 33060/tcp test-mysql
c9e3ed91eb21 redis "docker-entrypoint..." 3 hours ago Exited (0) 3 hours ago miaosha-redis
75954f6b1911 rabbitmq "docker-entrypoint..." 4 hours ago Exited (0) 3 hours ago miaosha-rabbitmq
60cb70ce1644 mysql:5.7 "docker-entrypoint..." 4 hours ago Exited (0) 3 hours ago miaosha-mysql
# 此时通过 STATUS 可以发现,test-mysql已经上线
# 使用docker ps查看已经启动的容器
[root@iZrek5rpbgrl7jZ ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
ddb603ad7541 mysql:5.7 "docker-entrypoint..." 4 minutes ago Up 4 minutes 0.0.0.0:3306->3306/tcp, 33060/tcp test-mysql
2.3.2停止已经启动的容器
# 两种方式
# 1.容器名称
[root@iZrek5rpbgrl7jZ ~]# docker stop test-mysql
# 2.容器的ID
[root@iZrek5rpbgrl7jZ ~]# docker stop ddb603ad7541
2.3.3启动已经停止的容器
# 同上,启动容器也有两种方式
[root@iZrek5rpbgrl7jZ ~]# docker start test-mysql
[root@iZrek5rpbgrl7jZ ~]# docker start ddb603ad7541
2.3.4删除容器
# 删除前必须将运行中的容器停止
[root@iZrek5rpbgrl7jZ ~]# docker rm test-mysql
2.3.5删除镜像
[root@iZrek5rpbgrl7jZ ~]# docker rmi mysql:5.7
3.安装Redis镜像
3.1查询Redis镜像
[root@iZrek5rpbgrl7jZ ~]# docker search redis
INDEX NAME DESCRIPTION STARS OFFICIAL AUTOMATED
docker.io docker.io/redis Redis is an open source key-value store th... 8085 [OK]
docker.io docker.io/bitnami/redis Bitnami Redis Docker Image 143 [OK]
docker.io docker.io/sameersbn/redis 79 [OK]
docker.io docker.io/grokzen/redis-cluster Redis cluster 3.0, 3.2, 4.0 & 5.0 67
docker.io docker.io/rediscommander/redis-commander Alpine image for redis-commander - Redis m... 38 [OK]
3.2拉取镜像
# 这里默认最新版本
[root@iZrek5rpbgrl7jZ ~]# docker pull redis
3.3启动Redis容器
3.1下载Redis配置文件
老铁们,把泪目刷在公屏上!!!:redis.conf
3.2修改配置文件
可先在本机修改
bind 127.0.0.1改为 bind 0.0.0.0 或者 在前面加个#注释掉即可(# bind 127.0.0.1)
protected-mode no //关闭保护模式
appendonly yes //持久化
3.3启动
[root@iZrek5rpbgrl7jZ]# docker run -p 6379:6379 --name test-redis -v /usr/local/docker/redis/redis.conf -d redis redis-server /usr/local/docker/redis/redis.conf
# 参数说明:
# 1.-v /usr/local/docker/redis/redis.conf : docker的redis镜像默认无配置文件。我将配置文件redis.conf放在了/usr/local/docker/redis中,然后该操作会将宿主机的配置文件复制到docker中
# 2.redis-server /usr/local/docker/redis/redis.conf : redis将以该路径下的配置文件启动
4.安装RabbitMQ镜像
4.1搜索RabbitMQ镜像
[root@iZrek5rpbgrl7jZ ~]# docker search rabbitmq
4.2拉取镜像
[root@iZrek5rpbgrl7jZ ~]# docker pull rabbitmq
4.3启动
# 默认用户名为guest,密码也是guest
[root@iZrek5rpbgrl7jZ ~]# docker run -p 15672:15672 -p 5672:5672 --name test-rabbitmq -d rabbitmq
# 设置用户名、密码
[root@iZrek5rpbgrl7jZ ~]# docker run -p 15672:15672 -p 5672:5672 --name test-rabbitmq -e RABBITMQ_DEFAULT_USER=user -e RABBITMQ_DEFAULT_PASS=password -d rabbitmq
这时候你就可以…还没呢~
# 安装rabbitmq管理界面插件
[root@iZrek5rpbgrl7jZ ~]# rabbitmq-plugins enable rabbitmq_management
现在你可以随便玩了
啊~ 大脑里的知识一直在溢出~
得再说点什么
怎么进入MySQL容器的命令行呢???
[root@iZrek5rpbgrl7jZ ~]# docker exec -it test-mysql bash
root@60cb70ce1644:/# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.30 MySQL Community Server (GPL)
Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
进入redis同理,先进入redis容器的bash
docker exec -it test-redis bash
然后键入命令 redis-cli 进入客户端,就可以随便玩了。
完了!!!怎么退出bash。。。难受~
没事,身为一个一直被饭堂阿姨喊靓仔的我,有办法!!!
1.Ctrl+p+q # 退出并在后台运行容器
2.Ctrl+d # 退出并停止容器
我使用的是阿里云的服务器,如果想要在宿主机访问到对应的容器,
一定要配置安全组,打开端口!!!
一定要配置安全组,打开端口!!!
一定要配置安全组,打开端口!!!