官方文档地址:https://docs.docker.com/engine/install/centos/
镜像安装包地址:https://hub.docker.com/
安装环境:VM ,CentOS/7 ,桥接模式 (桥接模式搭建)
介绍:虚拟化容器技术。Docker基于镜像,可以秒级启动各种容器。每一种容器都是一个完整的运行 环境,容器之间互相隔离。
较旧的Docker版本称为docker
或docker-engine
。如果已安装这些程序,请卸载它们以及相关的依赖项
$ sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
提示信息:admin is not in the sudoers file. This incident will be reported
原因:装系统或者买服务器的时候没有将admin账号加入用户组,使用sudo命令的时候,出现这个情况。
1.切换到root用户下
$ su
接着输入root用户的密码:密码默认是不可见的,注意不要输错
2.添加sudo文件的写权限,命令是:
$ chmod u+w /etc/sudoers
3.编辑sudoers文件
$ vi /etc/sudoers
找到这行 root ALL=(ALL) ALL,在他下面添加xxx ALL=(ALL) ALL (这里的xxx是你的用户名)
ps:这里说下你可以sudoers添加下面四行中任意一条
you-user ALL=(ALL) ALL
%you-user ALL=(ALL) ALL
you-user ALL=(ALL) NOPASSWD: ALL
%you-user ALL=(ALL) NOPASSWD: ALL
第一行:允许用户you-user执行sudo命令(需要输入密码).
第二行:允许用户组you-user里面的用户执行sudo命令(需要输入密码).
第三行:允许用户you-user执行sudo命令,并且在执行的时候不输入密码.
第四行:允许用户组you-user里面的用户执行sudo命令,并且在执行的时候不输入密码.
添加完成后:按esc
键推出 按:
然后输入wq
保存退出
4.撤销sudoers文件写权限,命令:
chmod u-w /etc/sudoers
安装yum-utils
软件包(提供yum-config-manager
实用程序)并设置稳定的存储库。
$ sudo yum install -y yum-utils
# 官方yum源
$ sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
# 阿里云yum源
$ sudo yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
将软件包信息提前在本地缓存一份,用来提高搜索安装软件的速度
yum makecache fast
安装最新版本的Docker Engine和容器
$ sudo yum install docker-ce docker-ce-cli containerd.io
$ sudo systemctl start docker
通过运行hello-world
映像来验证是否正确安装了Docker Engine 。
$ sudo docker run hello-world
$ sudo systemctl enable 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://7z4jy2c8.mirror.aliyuncs.com"]
}
EOF
$ sudo systemctl daemon-reload
$ sudo systemctl restart docker
查看版本号
$ docker -v
查看镜像文件
$ docker images
启动docker
$ sudo systemctl start docker
查看启动进程
$ docker ps
设置开机自启
$ sudo systemctl enable docker
重启镜像文件
$ docker restart mysql
$ docker restart redis
设置docker镜像自动启动
$ docker update redis --restart=always
$ docker update mysql --restart=always
进入镜像内部控制台
$ docker exec -it mysql /bin/bash
启动docker
$ systemctl start docker
守护进程重启
$ sudo systemctl daemon-reload
重启docker服务
$ systemctl restart docker
重启docker服务
$ sudo service docker restart
关闭docker
$ service docker stop
关闭docker
$ systemctl stop docker
安装了官方提供的5.7版本的MySQL数据库
$ 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
参数说明:
--name mysql:设置名字为mysql
-p 3306:3306:将容器的3306端口映射到主机的3306端口
-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用户的密码为root
-d mysql:5.7:后台方式运行镜像
提示信息: [Warning] IPv4 forwarding is disabled. Networking will not work.
在docker的宿主机中更改以下
$ vi /usr/lib/sysctl.d/00-system.conf
添加如下信息:
net.ipv4.ip_forward=1
重启network服务
$ systemctl restart network
# 查看镜像文件
$ docker images
# 查看启动进程
$ docker ps
# 查看对应镜像内部
$ docker exec -it mysql /bin/bash
# 进入镜像内部查看相关的文件夹
$ whereis mysql
# 退出镜像内部
$ exit
# 第一次创建配置文件
$ vi /mydata/mysql/conf/my.conf
添加如下配置信息
[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
collection-server=utf8_unicode_ci
skip-character-set-client-handshake
skip-name-resolve
修改配置后需要重启MySQL
$ docker restart mysql
$ docker pull redis
# 默认没有这如下文件夹和文件,需要创建
$ mkdir -p /mydata/redis/conf
$ touch /mydata/redis/conf/redis.conf
#启动redis服务
$ 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
参数说明:
-p 6379:6379:端口映射
-v /mydata/redis/data:/data:将数据文件夹挂载到主机
-v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf:将配置文件挂载到主机
-d redis redis-server /etc/redis/redis.conf:启动的时候redis-server 加载redis.conf配置文件
$ docker ps
$ docker images
# 进入redis镜像控制台
$ docker exec -it redis/bash
# 启动redis客户端
$ docker exec -it redis redis-cli
redis默认是没有持久化的,数据都存在内存中,一旦重启数据就会丢失
详细配置地址:https://redis.io/topics/config
详细配置我已经上传:redis.conf
$ vi /mydata/redis/conf/redis.conf
配置AOF持久化策略,添加如下信息:
appendonly yes