CentOS安装Docker
Docker安装
Docker简介
虚拟化容器技术,Docker基于镜像,可以秒级启动各种容器,每一种容器都是一个完整的运行环境,容器之间互相隔离。
Docker镜像仓库:Docker Hub Container Image Library | App Containerization
安装docker
Docker安装文档:Install Docker Engine on CentOS | Docker Docs
-
卸载系统中已存在docker
sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine
-
安装Docker-CE
-
安装必须的依赖
sudo yum install -y yum-utils \ device-mapper-persistent-data \ lvm2
-
设置docker repo的yum位置
sudo yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo
-
安装docker,以及docker-cli
sudo yum install docker-ce docker-ce-cli containerd.io
-
启动docker
sudo systemctl start docker
-
设置docker开机自启
sudo systemctl enable docker
-
测试docker常用命令,注意切换到root用户
https://docs.docker.com/engine/reference/commandline/docker/
-
配置docker镜像加速
阿里云,容器镜像服务
针对Docker客户端版本大于1.10.0的用户
您可以通过修改daemon 配置文件/etc/docker/daemon.json 来使用加速器
sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://82m9ar63.mirror.aliyuncs.com"] } EOF sudo systemctl daemon-reload sudo systemctl restart docker
-
docker安装mysql
-
下载镜像文件
docker pull mysql:5.7 docker images # 查看当前已存在镜像文件
-
创建实例并启动
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端口
- –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:初始化root用户密码
- -d mysql:5.7:-d后台运行,指定采用哪个镜像运行
docker ps # 查看当前docker容器 docker exec -it mysql /bin/bash # 进入容器文件系统(或者docker exec -it 容器id /bin/bash 其中容器id可由docker ps展示获得,同时id不必写全),-it表示以交互模式 whereis mysql # 查看mysql安装目录位置 exit # 退出容器
docker容器文件挂载与端口映射
-
修改msyql配置文件
vi /mydata/mysql/conf/my.cnf
文件内容,mysql默认使用拉丁编码,改为utf-8
[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
-
重启msyql容器
docker restart mysql
注意:解决MySQL连接慢问题
在配置文件中加入如下内容,并重启mysql
[mysqld]
skip-name-resolve
解释:skip-name-resolve:跳过域名解析
-
常用命令
-
通过容器的mysql命令行工具连接
docker exec -it mysql mysql -uroot -proot
-
设置root远程访问
grant all privileges on *.* to 'root'@'%' identified by 'root' with grant option; flush privileges;
-
进入容器文件系统
docker exec -it mysql /bin/bash
-
docker安装redis
-
下载镜像文件
docker pull redis # 此处视频采用版本为5.0.5,docker pull redis:5.0.5
-
创建实例并启动
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
-
redis 自描述文件:https://raw.githubusercontent.com/antirez/redis/4.0/redis.conf
-
使用redis镜像执行redis-cli命令连接
docker exec -it redis redis-cli
-
测试redis缓存
set a b get a # 获取到值为b exit # 退出redis docker restart redis # 重启redis容器 docker exec -it redis redis-cli # 连接redis客户端 get a # 谷粒学院视频采用redis5.0.5版本,获取不到值b,显示nil,而redis6以上版本默认持久化,可以正常显示
redis5.0.5配置持久化
vi /mydata/redis/conf/redis.conf
添加如下内容
appendonly yes
虚拟机关闭之后,docker容器也会随之关闭,下次重启虚拟机后,mysql和redis容器实际还存在,只是未运行
docker ps -a # 查看所有容器
docker start mysql # 启动mysql容器
docker start redis # 启动redis容器
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!