前言:
第一部分多数转载:https://www.cnblogs.com/lylsr/p/11173012.html
一、安装与配置
1. 安装依赖包
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
2. 设置阿里云镜像源
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
3. 安装 Docker-CE
- 重建 Yum 缓存。
- 安装 Docker-CE ,请执行一下命令进行安装:
sudo yum install docker-ce docker-ce-cli containerd.io
4. 启动 Docker-CE
sudo systemctl start docker
5. 设置Docker开启自启动
sudo systemctl enable docker
6. 检查安装是否成功
docker -v 查看版本
sudo docker images --检查是否有镜像
7.[可选] 为 Docker 建立用户组
docker 命令与 Docker 引擎通讯之间通过 UnixSocket ,但是能够有权限访问 UnixSocket 的用户只有 root 和 docker 用户组的用户才能够进行访问,所以我们需要建立一个 docker 用户组,并且将需要访问 docker 的用户添加到这一个用户组当中来。
- 建立 Docker 用户组
sudo groupadd docker
- 添加当前用户到 docker 组
sudo usermod -aG docker $USER
8.镜像加速配置
这里使用的是 阿里云提供的镜像加速 ,登录并且设置密码之后在左侧的 Docker Hub 镜像站点 可以找到专属加速器地址,复制下来。
然后分开执行以下命令:
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["你的加速器地址"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
之后重新加载配置,并且重启 Docker 服务
systemctl daemon-reload
systemctl restart docker
9. 常用命令
- 拉取镜像:docker pull <镜像名:tag> #docker pull sameersbn/redmine:latest 不指定就是默认版本
- 查看所有镜像:docker images
- 删除容器:docker rm <容器名 or ID>
- 删除所有容器:docker rm $(docker ps -a -q)
- 查看容器日志:docker logs -f <容器名 or ID>
- 查看正在运行的容器:docker ps
- 查看全部容器:docker ps -a # 包括已经停止的
- 停止、启动、杀死指定容器
docker start <容器名 or ID> # 启动容器
docker stop <容器名 or ID> # 启动容器
docker kill <容器名 or ID> # 杀死容器
- 后台运行
docker run -d <Other Parameters>
# 例如
docker run -d -p 127.0.0.1:33301:22 centos6-ssh
- 暴露接口
# 一共有三种形式进行端口映射
docker -p ip:hostPort:containerPort # 映射指定地址的主机端口到容器端口
# 例如:docker -p 127.0.0.1:3306:3306 映射本机3306端口到容器的3306端口
docker -p ip::containerPort # 映射指定地址的任意可用端口到容器端口
# 例如:docker -p 127.0.0.1::3306 映射本机的随机可用端口到容器3306端口
docer -p hostPort:containerPort # 映射本机的指定端口到容器的指定端口
# 例如:docker -p 3306:3306 # 映射本机的3306端口到容器的3306端口
- 映射数据卷
docker -v /home/data:/opt/data # 这里/home/data 指的是宿主机的目录地址,后者则是容器的目录地址
10. GUI 管理配置
这里推荐使用 Portainer 作为容器的 GUI 管理方案。官方地址:https://portainer.io/install.html
安装命令:
docker volume create portainer_data
docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer
访问你的 IP:9000 即可进入容器管理页面。
二、Docker安装Mysql
1. 下载镜像文件
名字为镜像库中的镜像名,若出现权限问题报错,前面加上sudo即可。
docker pull mysql:5.7
2. 检查下载的镜像
sudo docker images
![](https://img.haomeiwen.com/i24819094/9ecf085a16179149.png)
3. 创建实例并启动
docker run -p 3306:3306 --name mysql \
-v /mydata/mysql/log:/var/log/mysql \
-v /mydata/mysql/data:/var/lib/mysql \
-v /mydata/mysql/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:5.7
参数说明:
-p 3306:3306 :将容器的3306端口映射到主机的3306端口
-v /mydata/mysql/log:/var/log/mysql :将配置文件夹挂载到主机
-v /mydata/mysql/data:/var/lib/mysql :将日志文件夹挂载到主机
-v /mydata/mysql/conf:/etc/mysql :将配置文件夹挂载到主机
-e MYSQL_ROOT_PASSWORD=root :初始化root用户的密码
验证,查看docker下的所有进程:docker ps
4. 扩展
docker安装的mysql,相当于linux系统中单开了一个linux专门用来安装mysql。
-p 3306:3306 :将容器的3306端口映射到主机(vagrant开启的虚拟机)的3306端口。
日志也是将经常变动数据挂载到外部linux文件夹下。
![](https://img.haomeiwen.com/i24819094/9d20fbece841471f.png)
5. 修改Mysql配置
上面已经说到,将mysql容器中的配置文件挂载到本机中,所以直接修改本机目录下的配置文件即可。
- 切换到 /mydata/mysql/conf目录下
- 新建: vi my.cnf
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
skip-name-resolve
- 保存退出
- 重启mysql容器:docker restart msql
- 进入Mysql容器:/etc/mysql ,存在my.cnf配置文件
三、Docker安装Redis
1. 下载Redis镜像文件
docker pull redis
2. 创建本机文件夹及配置文件
防止挂载时 redis.conf找不到而在conf文件夹下再次创建名为redis.conf的文件夹,所以预先创建。
mkdir -p /mydata/redis/conf
touch /mydata/redis/conf/redis.conf
3. 创建实例并启动
docker run -p 6379:6379 --name redis \
-v /mydata/redis/data:/data \
-v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf \
-d redis redis-server /etc/redis/redis.conf
4. 启动成功进行登录验证
mysql之前是进入容器,现在我们直接进入客户端进行操作redis
docker exec -it redis redis-cli
贼好用啊,还有提示。
![](https://img.haomeiwen.com/i24819094/7d8c14c06d010099.png)
5. 配置持久化
docker restart redis 重启redis容器后,发现之前的数据都丢失了,因为保存在内存中。所以我们需要配置持久化。
因为之前已经将容器配置文件挂载到本机目录下,所以直接修改本机redis.conf即可。
vi /mydata/redis/conf/redis.conf
配置文件中增加(启用AOF的持久化方式,还有RDB方式,可后续了解):
appendonly yes
重启验证,OK。
网友评论