一、Docker部署微服务
1、doker的架构
类似maven,中央仓库软件(比如:java、redis)的镜像;
2、安装docker
1、Docker要求CentOS系统的内核版本高于3.10通过uname-r命令查看你当前的内核版本
#uname-r
2、使用root权限登录Centos。确保yum包更新到最新。
#yum-yupdate
3、卸载旧版本(如果安装过旧版本的话)
#yum remove docker docker-common docker-selinux docker-engine
4、安装需要的软件包,yum-util提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
#yum install -y yum-utils device-mapper-persistent-data lvm2
5、设置yum源,并更新yum的包索引
#yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
#yum makecache fast
6、可以查看所有仓库中所有docker版本,并选择特定版本安装
#yum list docker-ce --showduplicates|sort -r
7、安装docker
#yum install docker-ce #由于repo中默认只开启stable仓库,故这里安装的是最新稳定版18.03.1
#yum install <FQPN> #例如:yum -y install docker-ce-18.03.1.ce
8、启动并加入开机启动
#systemctl start docker
#systemctl enable docker
9、验证安装是否成功(有client和service两部分表示docker安装启动都成功了)
#docker version
10、卸载docker
#yum -y remove docker-engine
3、镜像的常用命令
1. 搜索镜像
#docker search java
报错:
Error response from daemon: Get https://index.docker.io/v1/search?q=java&n=25: dial tcp: lookup index.docker.io on 192.168.2.4:53: read udp 192.168.2.189:35574->192.168.2.1:63: i/o timeout
解决方案:
- 方式一:阿里云加速
1.登录阿里云:https://cr.console.aliyun.com/undefined/instances/mirrors
2.执行对应的命令:
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://xati3pss.mirror.aliyuncs.com"]
}
EOF
3.重启docker生效
sudo systemctl daemon-reload
sudo systemctl restart docker
- 方式二:修改机器网络配置
1. 查看服务器DNS网络配置
vi /etc/resolv.conf
2. 把里面的内容清除,并改为:
nameserver 8.8.8.8
nameserver 8.8.8.4
3. 重启网络服务
systemctl restart network
2.下载镜像
#docker pull java:8
3.列出镜像
#docker images
标题的含义:
-REPOSITORY:镜像所属仓库名称。
-TAG:镜像标签。默认是latest,表示最新。
-IMAGEID:镜像ID,表示镜像唯一标识。
-CREATED:镜像创建时间。
-SIZE:镜像大小。
4.删除本地镜像
#docker rmi java
4、容器的常用命令
1. 新建并重启容器
# 新建容器
# docker build -t nginx:zjson-nginx . (最后有一个点)
# 启动容器
# docker run -d - p 91:80 nginx
说明:
-d选项:表示后台运行
-P选项:随机端口映射
-p选项:指定端口映射,有以下四种格式。
--ip:hostPort:containerPort
--ip::containerPort
--hostPort:containerPort
--containerPort
--net选项:指定网络模式,该选项有以下可选参数:
--net=bridge:默认选项,表示连接到默认的网桥;
--net=host:容器使用宿主机的网络;
--net=container:NAME-or-ID:告诉Docker让新建的容器使用已有容器的网络配置;
--net=none:不配置该容器的网络,用户可自定义网络配置。
注意*,使用docker run命令创建容器时,会先检查本地是否存在指定镜像;如果本地不存在该名称的镜像,Docker就会自动从DockerHub下载镜像并启动一个Docker容器。
2. 列出容器
#docker ps
-CONTAINER_ID:表示容器ID;
-IMAGE:表示镜像名称;
-COMMAND:表示启动容器时运行的命令;
-CREATED:表示容器的创建时间;
-STATUS:表示容器运行的状态:UP表示运行中,Exited表示已停止;
-PORTS:表示容器对外的端口号;
-NAMES:表示容器名称,默认由Docker自动生成,也可使用dockerrun命令的--name选项自行指定。
3. 停止容器
#docker stop '容器ID'
4.强制停止容器
#docker kill '容器ID'
5. 启动已停止的容器
#docker start '容器ID'
6.查看容器所有信息
#docker inspect '容器ID'
7.查看容器日志
#docker container logs '容器ID'