安装
https://docs.docker.com/install/linux/docker-ee/centos/#repo-install-and-upgrade
sudo yum -y install docker-ee docker-ee-cli containerd.io
sudo systemctl start docker
测试
sudo docker run hello-world
docker ps -a
OK!安装成功……
基础
这里可以通过docker help获取docker命令
具体命令则可以通过docker CMD --help方式查看,如
docker start --help
命令 | 作用 |
docker images | 查看已有的镜像 |
docker run containerName | 运行 |
docker logs containerName/containerId | 动态查看容器日志 |
docker stop containerName/containerId | 关闭容器 |
docker start containerName/containerId | 启动容器 |
docker restart containerName/containerId | 重启容器 |
docker rm –f containerName/containerId | 删除容器 |
docker rmi -f IMAGE_ID/ REPOSITORY:TAG | 删除镜像 |
docker search images_name | 查看镜像列表 |
docker pull images_name | 从公网拉取一个镜像 |
docker command --help | 查看帮助 |
docker port containerId | 看容器的端口映射情况 |
docker ps | 查看正在运行的容器 |
docker ps -a | 查看所有的容器 |
docker exec -it containerId /bin/bash | 进入容器 |
docker network ls | 查看docker网络 |
docker top containerName | 查看容器pid |
文档
http://www.dockerinfo.net/document
https://docs.docker.com/storage/
容器与镜像
https://www.cnblogs.com/bethal/p/5942369.html
搭建第一个Docker容器
因为在下载官方镜像点的镜像国内访问速度太慢,所以先进行修改
vim /etc/docker/daemon.json
{
"registry-mirrors":["https://docker.mirrors.ustc.edu.cn"]
}
然后重启守护进程
sudo systemctl daemon-reload
sudo systemctl restart docker
下载镜像
下载所需镜像
docker pull ubuntu
docker pull django
docker pull haproxy
docker pull redis
因为现在是同一主机下搭建容器应用栈的环境,所以只需要完成容器的互联来实现容器间的通信即可,这里采用docker run的--link命令来建立容器间的互联关系
启动容器
启动redis容器
docker run -td --name redis-master docker.io/redis /bin/bash
docker run -td --name redis-slave1 --link redis-master:master docker.io/redis /bin/bash
docker run -td --name redis-slave2 --link redis-master:master docker.io/redis /bin/bash
启动django容器
docker run -td --name APP1 --link redis-master:db -v ~/Projects/Django/App1:/usr/src/app docker.io/django /bin/bash
docker run -td --name APP2 --link redis-master:db -v ~/Projects/Django/App2:/usr/src/app docker.io/django /bin/bash
启动haproxy
docker run -td --name HAProxy --link APP1:APP1 --link APP2:APP2 -p 6301:6301 -v ~/Projects/HAProxy:/tmp docker.io/haproxy /bin/bash
容器节点配置
主节点配置
首先找到redis-master的挂载目录,然后进入
docker inspect redis-master | grep Mounts -A 10
cd /var/lib/docker/volumes/210ce5e367863f3e59ab2faefba18902c89fe0b677760465099085b2abf50c18/_data
先看下redis-master的容器IP
docker inspect --format '{{ .NetworkSettings.IPAddress }}' redis-master
新开一个终端,下载并解压redis
wget http://download.redis.io/releases/redis-5.0.7.tar.gz
tar -zxvf redis-5.0.7.tar.gz
修改redis.conf文件
bind 172.17.0.2
deamonize yes
pidfile /var/run/redis.pid
将redis.conf文件copy进该目录中:
此时在docker容器中redis目录下也会出现相应的redis.conf文件
docker exec -it 490 /bin/bash
将它copy到redis工作目录并启动
cp redis.conf /usr/local/bin/
cd /usr/local/bin/
redis-server redis.conf
上面就是Redis Master容器节点的配置
从节点配置
首先找到redis-slave1的挂载目录,然后进入
docker inspect redis-slave1 | grep Mounts -A 10
cd /var/lib/docker/volumes/778d408ad5df0a2e3fc9f4a79835a337d4a488ed060f741ecda3550c5025bd4b/_data/
跟上面master拷贝redis.conf文件的方式相同,然后修改配置文件
bind 172.17.0.3
deamonize yes
pidfile /var/run/redis.pid
slaveof master 6379
进入容器
docker exec -it redis-slave2 /bin/bash
启动redis
cp redis.conf /usr/local/bin/
cd /usr/local/bin/
redis-server redis.conf
redis-cli -h 172.17.0.3 -p 6379
打开新的终端测试主从
docker exec -it redis-master /bin/bash
cd /usr/local/bin/
redis-cli -h 172.17.0.2 -p 6379
OK~~~Redis主从可以了另一个从步骤相同!!!