目录
一、安装Docker
- 参照官方参考文档安装Docker,安装教程在此目录下
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
sudo yum install -y yum-utils
不装yum-utils貌似也行
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
只安装docker-ce就可以
- 启动docker
sudo systemctl start docker
- 判断docker安装是否成功
不加sudo会报无权限
sudo docker images
- 设置docker开机自启
sudo systemctl enable docker
- 配置镜像加速:登录阿里云账号,搜索
容器镜像服务ACR
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://1cm7d4hw.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
1.1 docker常用命令
一、服务相关
systemctl start docker
stop、restart、status
二、镜像相关
docker images 查看本地镜像
docker search redis 搜索dokerhub上的镜像,这里以redis为例
docker pull redis 拉取远程最新版本镜像 hub.docker.com
docker pull redis:5.0 拉取指定版本镜像
docker rmi 【imageId】 删除指定id的镜像
docker images -q 查看所有镜像ID
docker rmi `docker images -q` 删除所有镜像
三、容器相关
docker run -it --name=【容器名称】 【镜像】:【版本】 /bin/bash 创建容器并进入到容器内部
docker ps 查看正在运行的容器
docker ps -a 查看所有容器
docker exec -it 【容器名称】 /bin/bash 进入容器
docker start 【容器名称】 启动容器
docker stop 【容器名称】 停止容器
docker rm 【容器ID/容器名称】 删除容器
docker ps -aq 查看所有容器ID
docker rm `docker ps -aq` 删除所有容器
docker inspect 【容器名称】 查看容器信息
1.2 自定义安装docker版本
1.2.1 官方文档对安装指定版本的描述不太对
查看docker版本列表
yum list docker-ce --showduplicates | sort -r
安装示例
sudo yum install docker-ce-24.0.0 docker-ce-cli-24.0.0 containerd.io docker-buildx-plugin docker-compose-plugin
1.2.2 docker-ce-cli与docker-buildx-plugin冲突问题
docker-buildx-plugin是在19.03版本才引入的,20.10前,它属于docker-ce-cli的一部分,20.10及以后,docker-buildx-plugin从docker-ce-cli中分离出来
当Docker < 20.10,不能包含docker-buildx-plugin
sudo yum install docker-ce-19.03.9 docker-ce-cli-19.03.9 containerd.io docker-compose-plugin
当Docker >= 20.10,可以包含docker-buildx-plugin
sudo yum install docker-ce-24.0.0 docker-ce-cli-24.0.0 containerd.io docker-buildx-plugin docker-compose-plugin
1.3 Docker卸载
sudo yum remove docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd
二、安装mysql5.7
- 拉取镜像
sudo docker pull mysql:5.7
- 创建容器及完成挂载
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
- 判断是否安装完成
docker ps -a
- 安装成功,修改mysql配置文件
vi /mydata/mysql/conf/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
- 使用工具如
navicat
测试连接mysql,连接前需要先在安全组开放端口,开放为仅自己可连接!
- 若开放为大家都可以访问可能数据库会被黑,刚接触服务器的时候不懂,我的数据库就被黑过一次😂
- 进入mysql容器控制台
docker exec -it mysql /bin/bash
- 如果mysql启动失败可以查看日记检查错误
docker logs mysql
- 删除容器
docker rm mysql
- 设置mysql自动启动
sudo docker update mysql --restart=always
三、安装redis
- 拉取最新版redis镜像
docker pull redis
- 预先创建redis配置文件,避免挂载的时候
/etc/redis/redis.conf
被识别成创建文件夹
mkdir -p /mydata/redis/conf
touch /mydata/redis/conf/redis.conf
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
- 检查是否安装成功
docker ps
- 此命令为进入redis命令行,不是进入控制台
docker exec -it redis redis-cli
- 老版redis默认没配置持久化,重启redis的时候,数据会消失;2023.6.11我安装的redis默认是有持久化的
cd /mydata/redis/conf
开启aof持久化
vi redis.conf
appendonly=yes
持久化及更多相关配置可以参考redis官方配置文档
- 重启redis
docker restart redis
- 设置开机自启与mysql的设置一样
sudo docker update redis --restart=always