Docker简介
Docker属于对Linux容器技术的一种封装,它提供了简单易用的容器使用接口,是目前最流行的 Linux 容器解决方案。Docker将应用程序与该程序的依赖打包在一个文件里面,运行这个文件,就会生成一个虚拟容器。程序在这个虚拟容器里运行,就好像在真实的物理机上运行一样。有了Docker就再也不用担心环境问题了。
目前,Docker主要用于几下几个方面:
- 提供一次性的环境。
- 提供弹性的云服务(利用Docker很容易实现扩容和收缩)。
- 实践微服务架构(隔离真实环境在容器中运行多个服务)。
CentOS下的安装和使用
- 确定操作系统内核版本(CentOS 7要求64位,内核版本3.10+;CentOS 6要求64位,内核版本2.6+)。
uname -r
- 在CentOS下使用yum安装Docker并启动。
yum -y install docker-io
systemctl start docker
- 检视Docker的信息和版本。
docker version
docker info
- 运行镜像文件。
docker run <image-id>
docker run -p <port1>:<port2> <name>
- 查看镜像文件。
docker image ls
docker images
- 删除镜像文件。
docker rmi <name>
- 查看正在运行容器。
docker ps
- 停止运行的容器。
docker stop <container-id>
docker stop <name>
对于那些不会自动终止的容器,就可以用下面的方式来停止。
docker container kill <container-id>
在Ubuntu(内核版本3.10+)下面安装和启动Docker,可以按照如下的步骤进行。
apt update
apt install docker-ce
service docker start
在有必要的情况下,可以更换Ubuntu软件下载源来提升下载速度,具体的做法请参照https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu/。
安装Docker后,由于直接访问dockerhub下载镜像会非常缓慢,建议更换国内镜像,可以通过修改/etc/docker/daemon.js
文件来做到。
{
"registry-mirrors": [
"http://hub-mirror.c.163.com",
"https://registry.docker-cn.com"
]
}
docker container prune 删除所有容器
docker rm -f mynginx 强行删除指定的容器
docker start mynginx
===========================================================
创建容器
d deamon
p 映射端口
docker run -d -p 3306:3306
docker run -d -p 6379:6379 --name redis-master redis:4.0.11 redis-server --appendonly yes --requirepass 123456
===========================================================
docker ps -查看正在运行的容器
docker container ls -查看正在运行的容器
docker container ls -a
=============================================
docker exec -it <name> /bin/bash ---- 进入容器的shell环境
=============================================
netstat -nap grep | 3306
nestat -lntp
开启防火墙
firewall -cmd --add-port = 3306/tcp -- permanent
systemctl restart firewalld
主存分离
1.创建redis主机
dicker run -d -p 6379:6379 --name redis-master redis:4.0.11
redis-server -- appendonly yes --requirepass 123456
2.创建三个redis从机
docker run -d --name redis-server-slave-1 --link redis-master:redis-master redis:4.0.11 redis-server -- slaveof redis-master 6379 --masterauth 123456
docker run -d --name redis-server-slave-2 --link redis-master:redis-master redis:4.0.11 redis-server -- slaveof redis-master 6379 --masterauth 123456
docker run -d --name redis-server-slave-3 --link redis-master:redis-master redis:4.0.11 redis-server -- slaveof redis-master 6379 --masterauth 123456
3.检查主从复制的配置
docker exec -it redis-master /bin/bash
redis-cli
auth 123456
info replication
redis两种持久化方案:RDB/ AOF