文章目录
本文的运行环境位 centos 7(64 bit),内核 3.10.0-862.9.1.el7.x86_64。
docker要求内核版本需不低于 3.10 。
docker的安装在此不再赘述。
启动docker
启动docker服务,以及查询服务的运行状态
service docker start #启动docker服务
#systemctl start docker 效果相同
service docker status #查看运行状态
运行效果如下,active(running) 表明服务已经正常运行,也可以用hello-world验证docker服务是否正常
docker run hello-world
查看redis镜像
查看本地镜像是否有redis
如果是新安装的docker自然是不会有redis镜像,我这里已经安装过,所以能看到存在redis镜像。
docker images#列出本地所有的镜像
拉取redis镜像
- 查看docker hub上镜像的状态
docker search redis
这里会有各redis的名字,简短描述以及是否是官方的
- 拉取redis镜像
docker pull redis:3.2 #拉取标签为3.2的redis镜像 docker pull name[:TAG]
具体的标签名,需要到 docker hub 上查询。
启动redis容器
docker run -p 6379:6379 -d redis:3.2 redis-server
其中 -p 6379:6379 意为 将容器中的6379映射到本地的6379端口 ,-d 后台启动
docker run的部分参数:
-a stdin: 指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项;
-d: 后台运行容器,并返回容器ID;
-i: 以交互模式运行容器,通常与 -t 同时使用; //相当于在本地添加了一个系统
-t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
–name=“nginx-lb”: 为容器指定一个名称;
–dns 8.8.8.8: 指定容器使用的DNS服务器,默认和宿主一致;
–dns-search example.com: 指定容器DNS搜索域名,默认和宿主一致;
-h “mars”: 指定容器的hostname;
-e username=“ritchie”: 设置环境变量;
–env-file=[]: 从指定文件读入环境变量;
–cpuset=“0-2” or --cpuset=“0,1,2”: 绑定容器到指定CPU运行;
-m :设置容器使用内存最大值;
–net=“bridge”: 指定容器的网络连接类型,支持 bridge/host/none/container: 四种类型;
–link=[]: 添加链接到另一个容器;
–expose=[]: 开放一个端口或一组端口;
-p port of continer:port of host: 把容器的端口映射到本地的某端口
-P: 把所有端口随即映射到本地
查看redis server是否正常启动运行
docker ps #会返回CONTAINER ID
用redis-cli连接redis服务
- 用本地的redis-cli连接redis-server,直接运行 redis-cli 就可以连接
- 用容器内部的redis-cli连接
docker exec -it b32029e1b32e redis-cli #其中b32029e1b32e为容器ID,通过docker ps查询得到
进入容器内部一探究竟
进入容器内部的方式有多种,上述的 docker exec 就为比较好的一种。
docker exec -it b32029e1b32e /bin/bash #其中b32029e1b32e为容器ID,通过docker ps查询得到
这样就进入了容器内部,可以运行部分linux 命令。这就好像是进入了一个虚拟机。
关闭redis容器
docker stop b32029e1b32e #其中b32029e1b32e为容器ID,通过docker ps查询得到
stop之后,再通过 docker ps 查看,redis 服务已经不在。
查看docker详细
docker inspect container-id
查看所有docker容器的ip
docker inspect --format='{{.Name}} - {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $(docker ps -aq)