需要的安装包
1
| yum install -y yum-utils
|
使用阿里云的镜像仓库
1 2 3
| yum-config-manager \ --add-repo \ http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
|
安装docker相关的组件
1
| yum install -y docker-ce docker-ce-cli containerd.io
|
启动docker
停止docker
查看已安装的镜像
下载镜像
删除镜像
1 2
| docker rmi xxx,xxx... #删除 docker rmi -f xxx,xxx... #强制删除
|
新建容器并重启
1 2 3 4 5 6 7 8
| docker run [可选参数] image
参数说明: --name="Name" 容器名称 -d 后台方式运行 -it 使用交互方式运行,进入容器查看内容 -p 指定容器的端口 -p 主机端口:容器端口 -P 随机指定端口
|
查看所有运行的容器
1 2 3 4 5 6
| docker ps
参数: -a # 列出当前正在运行的容器+历史运行过的容器 -n=? # 最近运行的容器,只列出n个,例如 -n=1 -q # 只显示容器的编号
|
删除容器
1 2
| docker rm 容器id #删除 docker rm -f 容器id #强制删除
|
启动和停止容器的操作
1 2 3 4
| docker start 容器id # 启动容器 docker restart 容器id # 重启容器 docker stop 容器id # 停止当前正在运行的容器 docker kill 容器id # 强制停止当前容器
|
查看日志
1 2 3 4 5 6
| docker logs -f -t -n 10 容器id或者容器名称
参数: --follow,-f 关注日志输出 --timestamps,-t 显示时间戳 --tail,-n 从日志末尾显示的行数
|
进入容器
1
| docker exec -it 容器id bash
|
复制容器文件到主机中
1
| docker cp 容器id:容器文件地址 主机文件地址
|
用docker安装5.7.17版本的mysql
指定版本号下载
1
| docker pull mysql:5.7.17
|
运行镜像
1 2 3 4 5 6 7 8 9 10
| docker run -p 3306:3306 --name mysql --restart=always --privileged=true \ -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7.17
参数: -p 3306:3306:指定宿主机端口与容器端口映射关系 --name mysql:创建的容器名称 --restart=always:总是跟随docker启动 --privileged=true:获取宿主机root权限 -e MYSQL_ROOT_PASSWORD=123456:指定mysql环境变量,root用户的密码为123456 -d mysql:5.7.17:后台运行mysql容器,版本是5.7.17。
|
打开navicat测试连接
解决mysql中文乱码的问题
安装vim
- 默认下载地址由于是海外地址,下载速度异常慢而且可能中断更新流程,所以做下面配置:
1 2 3 4
| echo "deb http://mirrors.tuna.tsinghua.edu.cn/debian/ buster main contrib non-free" >/etc/apt/sources.list echo "deb http://mirrors.tuna.tsinghua.edu.cn/debian/ buster-updates main contrib non-free" >>/etc/apt/sources.list echo "deb http://mirrors.tuna.tsinghua.edu.cn/debian/ buster-backports main contrib non-free" >>/etc/apt/sources.list echo "deb http://mirrors.tuna.tsinghua.edu.cn/debian-security buster/updates main contrib non-free" >>/etc/apt/sources.list
|
- 然后才安装vim
修改mysql编码格式
- docker安装mysql,没有什么问题,导入sql文件,也没有什么问题。使用sql语句查询,没有什么问题。但是,在我以前启动springboot项目中,查询出来的数据却是中文乱码,所以得修改mysql编码格式,使用utf8
- 在容器里进入 /etc/mysql/mysql.conf.d目录中
1
| cd /etc/mysql/mysql.conf.d
|
- 修改mysqld.cnf
原文件长这个样子
按i进入编辑模式,加入这几行代码1 2 3 4 5 6 7 8
| [client] default-character-set=utf8 [mysql] default-character-set=utf8
[mysqld] character_set_server = utf8
|
修改完 esc + :wq + enter保存并退出
- 重启mysql容器
然后执行sql,就可以看到我们的编码全部改为utf8了。1
| show variables like 'character%'
|
这样一来,我们再创建数据库,操作数据库,基本上就不会出现中文乱码了。
docker安装nginx
下载nginx镜像
创建挂载在主机的文件夹目录
1 2 3
| mkdir -p /home/nginx/conf mkdir -p /home/nginx/log mkdir -p /home/nginx/html
|
创建一个临时nginx容器,把文件复制到主机
1
| docker run --name tempnginx -p 80:80 -d nginx
|
把文件复制到主机的目的是下一步创建并运行nginx容器时,容器有相对应的主机挂载文件
1 2 3
| docker cp tempnginx:/etc/nginx/nginx.conf /home/nginx/conf/nginx.conf docker cp tempnginx:/etc/nginx/conf.d /home/nginx/conf/conf.d docker cp tempnginx:/usr/share/nginx/html /home/nginx/
|
然后删除临时nginx容器
以挂载文件方式创建并运行nginx容器
1 2 3 4 5 6
| docker run -p 80:80 \ -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
|
用docker安装redis
下载redis镜像
创建挂载在主机的文件夹目录
1 2
| mkdir -p /home/redis/conf mkdir -p /home/redis/data
|
其实步骤和docker安装nginx差不多,不过这边有一点区别,我们这边直接创建redis.conf,目的是下一步创建并运行redis容器时,容器有相对应的主机挂载文件
1
| touch /home/redis/conf/redis.conf
|
以挂载文件方式创建并运行redis容器
1 2 3 4 5 6 7
| docker run --restart=always --log-opt max-size=100m --log-opt max-file=2 -p 6379:6379 --name redis \ -v /home/redis/conf/redis.conf:/etc/redis/redis.conf \ -v /home/redis/data:/data \ --privileged=true \ -d redis redis-server /etc/redis/redis.conf --privileged=true设置redis启动不会自动退出,因为redis.conf文件中的daemonize为yes,意思是redis服务在后台运行,与docker中的-d参数冲突了。
|
使用redis镜像执行redis-cli命令连接
1
| docker exec -it redis redis-cli
|
敲几个命令试一下