一、环境准备
Docker支持以下的CentOS版本:
1.Docker运行在CentOS 7(64-bit)上,要求系统为64位,系统内核版本为3.10以上
2.Docker运行在Centos 6.5或者更高的版本上,要求系统为64位,系统内核版本为2.6.32-431或者更高版本
centos7操作系统,带GUI和开发工具包,(个人安装习惯)
1核 1U 4G内存 40G内存
(亲测环境)其他配置也可以尝试,更高肯定没问题,配置低点的话,需要自行验证。
二、docker安装
1.需要开通外网权限,(使用yum源和拉取镜像)
2.关闭防火墙和selinux
setenforce 0
sed -i "s/^SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
getenforce
systemctl stop firewalld
systemctl disable firewalld
3.安装依赖工具
[root@docker ~]# yum install -y yum-utils device-mapper-persistent-data lvm2
4.添加docker yum源地址
[root@docker ~]# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
#更新yum缓存
[root@docker ~]# yum makecache fast
5.查看仓库中的所以docker版本
[root@docker ~]# yum list docker-ce --showduplicates | sort -r
6.安装最新版本的docker
[root@docker ~]# yum install docker-ce -y
7.启动docker,并添加自启动服务
[root@docker ~]# systemctl start docker
[root@docker ~]# systemctl enable docker
Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/srvice.
8.查看docker版本
[root@docker ~]# docker version
Client: Docker Engine - Community
Version: 24.0.2
API version: 1.43
Go version: go1.20.4
Git commit: cb74dfc
Built: Thu May 25 21:55:21 2023
OS/Arch: linux/amd64
Context: default
Server: Docker Engine - Community
Engine:
Version: 24.0.2
API version: 1.43 (minimum version 1.12)
Go version: go1.20.4
Git commit: 659604f
Built: Thu May 25 21:54:24 2023
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.6.21
GitCommit: 3dce8eb055cbb6872793272b4f20ed16117344f8
runc:
Version: 1.1.7
GitCommit: v1.1.7-0-g860f061
docker-init:
Version: 0.19.0
GitCommit: de40ad0
9.配置镜像加速
[root@docker ~]# cat <<EOF > /etc/docker/daemon.json
{
"registry-mirrors": ["https://mltfzuzk.mirror.aliyuncs.com"],
"dns": ["8.8.8.8","8.8.4.4"]
}
EOF
[root@docker ]# systemctl daemon-reload #重启服务生效
[root@docker ]# systemctl restart docker
到这来docker就安装完成了。配置国内镜像加速,可以更加方便的拉取镜像,创建容器。
三、mysql容器部署
1.拉取镜像
[root@docker ]# docker pull mysql:5.7.24
[root@docker ]# docker pull mysql:8.0.27
2.创建并启动容器,并映射端口挂载目录,设置root密码
mysql5.7
[root@docker ]# docker run --restart always \
--name mysql.5.7.24 -p 3306:3306 \
--privileged=true \
-v /usr/soft/mysql-3306/data:/var/lib/mysql \
-v /usr/soft/mysql-3306/conf.d:/etc/mysql/conf.d \
-v /usr/soft/mysql-3306/etc.mysql:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:5.7.24
mysql8.0
[root@docker ]# docker run --restart always \
--name mysql.8.0.27 -p 3306:3306 \
--privileged=true \
-v /usr/soft/mysql-3306/conf:/etc/mysql \
-v /usr/soft/mysql-3306/logs:/var/log/mysql \
-v /usr/soft/mysql-3306/data:/var/lib/mysql \
-v /usr/soft/mysql-3306/mysql-files:/var/lib/mysql-files \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:8.0.27
参数解释:
-p # 映射端口
--restart always # 自启动
--privileged=true # 容器内部赋予root权限
-v # 挂载目录
-e MYSQL_ROOT_PASSWORD # 设置密码
-d # 后台运行
3.docker基础操作命令
docker ps -a #查看docker中软件的进程
docker exec -it 容器ID /bin/bash #进入到容器中
docker restart 容器ID #重启容器
docker images #查看所有镜像
docker rmi 镜像ID #删除镜像
docker container stop 容器名称或ID #停止容器
docker container rm 容器名称或ID #删除容器
docker update 应用镜像名称 --restart=always #设置自动启动
eg: