官方脚本自动安装

操作系统CentOS 7.x最新版本,Linux内核版本必须是3.10以上

1
2
3
4
5
6
yum -y update
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

#开机启动docker
systemctl start docker
systemctl enable docker

版本校验

docker version

修改镜像地址(非必需,国内加速)

修改 /etc/docker/daemon.json 文件,如果没有就创建

文件内容如下:

1
2
3
4
5
6
7
8
{

"registry-mirrors": ["https://xuachqgw.mirror.aliyuncs.com"],
"insecure-registries": ["10.98.239.102:5000"],
"bip":"172.17.0.1/16",
"log-driver":"json-file",
"log-opts":{"max-size":"10m"}
}

阿里云的地址可以到阿里云开发者中心自己申请
https://xuachqgw.mirror.aliyuncs.com

下载redis镜像

https://store.docker.com/ 中搜索 redis 镜像

打开redis镜像页面 https://store.docker.com/images/redis

docker pull redis:4.0

4.0是标签,不带标签默认是latest最新版本,执行之后镜像文件就下载到docker本地了

查看镜像

查看所有镜像,重点关注IMAGE ID,后面操作都会用到

docker image ls -a

只查看redis镜像,重点关注IMAGE ID,后面操作都会用到

docker images redis

查看所有的容器和镜像状态

docker ps -a

安装redis镜像

1
docker run -d --name myredis --restart=always -p 6379:6379 -v $PWD/data:/data redis:4.0 redis-server --appendonly yes

另一种方式,指定配置文件,完全控制,更加灵活,建议使用

1
docker run -d --name myredis --restart=always -p 6379:6379 -v /redis/6379/redis.conf:/usr/local/etc/redis/redis.conf redis:4.0 redis-server /usr/local/etc/redis/redis.conf

命令说明:

-d :后台运行

–name myredis:容器的名称,可忽略

-m 1g:容器运行的最大内存,可忽略

–privileged=true:特权模式,容器具有最大权限,可忽略

–network代替 –link,用于多个容器网络联通.network需要先创建,然后使用,例如

docker network create -d bridge –subnet=192.168.0.0/24 –gateway=192.168.0.100 –ip-range=192.168.0.0/24 my-docker-network

docker run –network=my-docker-network –ip=192.168.0.5 -itd

–restart=always 是一直尝试重启.实现开机重启容器,–restart=on-failure:10 默认重启10次

-p 6379:6379 : 将主机的6379端口映射到容器的6379端口,redis容器默认就是6379,第一个是主机端口

-v $PWD/data:/data : 将主机中当前目录下的data挂载到容器的/data,可以同时使用多个 -v 参数

另一种方式

-v /redis/6379/redis.conf:/usr/local/etc/redis/redis.conf 指定配置文件

redis-server –appendonly yes : 在容器执行redis-server启动命令,并打开redis持久化配置

常用命令

通过Image镜像产生容器,一个镜像可以产生多个容器实例.image镜像雷同软件一键安装包,例如redis的一键安装包

执行了run命令,会自动启动,这里是单独启动

启动容器:docker start 539ffc1ce3b3

关闭容器:docker stop 539ffc1ce3b3

更新容器配置 例如设置开机重启:

docker update –restart=always xxx

删除镜像:docker rmi 镜像Id

删除镜像前需要停止引用的镜像的容器.

删除容器:docker rm 容器Id

跟踪日志输出:docker logs -f 容器Id

建议大家看一些docker常用命令的文章.

执行容器内命令

docker exec -it 容器Id 命令

例如执行redis的 redis-cli命令:

docker exec -it 539ffc1ce3b3 redis-cli

或者执行容器内shell原始命令

docker exec -it 539ffc1ce3b3 /bin/bash