安装docker
- 首先卸载已经安装的docker(CenteOS)
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
- 安装yum工具包
sudo yum install -y yum-utils
3.配置仓库源
# 1. 默认使用国外源,非常非常非常慢!
$ sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
# 2. 推荐用国内源,丝滑!
$ sudo yum-config-manager \
--add-repo \
https://mirrors.ustc.edu.cn/docker-ce/linux/centos/docker-ce.repo
- 安装Docker Engine
sudo yum install docker-ce docker-ce-cli containerd.io
- 启动Docker
- 非root权限
#设置Docker守护进程在系统启动时自动启动
sudo systemctl enable docker
#启动Docker
sudo systemctl start docker
- root权限
#设置Docker守护进程在系统启动时自动启动
systemctl enable docker
#启动Docker
systemctl start docker
- 验证安装是否成功
docker --version
部署MySQL
新建宿主机映射文件夹
mkdir -p /home/mysql/init # Mysql初始化数据
mkdir -p /home/mysql/log # Mysql日志
mkdir -p /home/mysql/conf # MySQL配置
新建MySQL配置文件mysqld.cnf
[client]
default_character_set=utf8mb4
[mysql]
default_character_set=utf8mb4
[mysqld]
character_set_server=utf8mb4
collation_server=utf8mb4_unicode_ci
init_connect='SET NAMES utf8mb4'
拉取MySQL镜像
docker pull mysql:5.7
运行MySQL镜像
docker run --name mysql \
-p 3306:3306 \
-e TZ=Asia/Shanghai \
-e MYSQL_ROOT_PASSWORD=root \
-v /home/mysql/log:/var/log/mysql \
-v /home/mysql/conf/mysqld.cnf:/etc/mysql/mysql.conf.d/mysqld.cnf \
-v /home/mysql/init:/docker-entrypoint-initdb.d \
-d mysql:5.7
当前MySQL镜像启动不能初始化数据文件,所以手动执行MySQL初始化文件
#进入镜像内部
docker exec -it 镜像名称 /bin/bash
#输入MySQL账户和密码
mysql -u root -p
#手动运行init.sql文件
source /docker-entrypoint-initdb.d/自己的sql文件名称.sql;
部署nginx
新建宿主机映射文件夹
mkdir -p /home/nginx/conf # nginx配置
mkdir -p /home/nginx/log # nginx日志
mkdir -p /home/nginx/html # nginx html页面
运行一个nginx镜像
docker run --name nginx -p 9001:80 -d nginx
拷贝nginx容器内的文件到宿主机
# 将容器nginx.conf文件复制到宿主机
docker cp nginx:/etc/nginx/nginx.conf /home/nginx/conf/nginx.conf
# 将容器conf.d文件夹下内容复制到宿主机
docker cp nginx:/etc/nginx/conf.d /home/nginx/conf/conf.d
# 将容器中的html文件夹复制到宿主机
docker cp nginx:/usr/share/nginx/html /home/nginx/
运行nginx镜像
docker run --name nginx \
-p 9001:90 \
-v /home/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /home/nginx//conf/conf.d:/etc/nginx/conf.d \
-v /home/nginx/log:/var/log/nginx \
-v /home/nginx/html:/usr/share/nginx/html \
d nginx:latest
部署redis
直接执行docker rm nginx或者以容器id方式关闭容器
找到nginx对应的容器id
docker ps -a
关闭该容器
docker stop nginx
删除该容器
docker rm nginx
删除正在运行的nginx容器
docker rm -f nginx
docker run \
-p 18080:18080 \
--name nginx \
-v /root/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /root/nginx/conf/conf.d:/etc/nginx/conf.d \
-v /root/nginx/log:/var/log/nginx \
-v /root/nginx/html:/usr/share/nginx/html \
--network myNet \
-d nginx:latest
redis 本次执行命令:
docker run --name redis -p 6379:6379 \
-v /root/redis/data:/data \
-v /root/redis/conf/redis.conf:/etc/redis/redis.conf \
--network myNet \
-d redis:bullseye redis-server /etc/redis/redis.conf
docker cp redis:/etc/redis/redis.conf /root/redis/conf/redis.conf
#文件打包 docker build -t sky-server . #文件创建并运行 docker run -d --name sky-server --network myNet -p 8080:8080 sky-server:latest
开启日志查看
docker logs -f sky-server