Centos7前置操作

更新系统

运行以下命令可以更新系统的软件包和组件:

sudo yum update

安装必要的软件

安装一些常用的软件和工具,比如 vim 编辑器、net-toolswget 等:

sudo yum install vim net-tools wget

设置静态 IP 地址或者配置网络

修改 /etc/sysconfig/network-scripts/ifcfg-<interface> 文件来配置网络接口。

防火墙设置

根据需要打开或关闭防火墙端口: 启用防火墙:sudo systemctl start firewalld 禁用防火墙:sudo systemctl stop firewalld

更新内核(可选):

更新内核可以提高系统的稳定性和安全性。可以使用以下命令来更新内核:

sudo yum install kernel

安装Docker

Docker 分为 CE 和 EE 两大版本。CE 即社区版(免费),EE 即企业版,强调安全,付费使用。 Docker CE 分为 stable 、test 和 nightly 三个更新频道。

本教程以Centos7为教程,其他的系统大同小异,大家可做参考

Centos7安装Docker

Docker CE 支持 64 位版本 CentOS 7,并且要求内核版本不低于 3.10, CentOS 7 满足最低内核的要求,所以我们在CentOS 7安装 Docker

所以必须是Centos7这个版本,低于这个版本就会出问题!

卸载

如果之前安装过旧版本的 dokcer ,可以使用下面的命令卸载,(建议不管你有没有安装都跑一次卸载)

yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-selinux \
                  docker-engine-selinux \
                  docker-engine \
                  docker-ce

安装Yum工具

首先需要大家虚拟机联网,安装yum工具,此文不做说明

# 安装必要的一些系统工具
yum install -y yum-utils device-mapper-persistent-data lvm2 --skip-broken
或
yum install -y yum-utils device-mapper-persistent-data lvm2

{% note blue 'anzhiyufont anzhiyu-icon-bullhorn' simple %}建议直接使用清华源,阿里源最近不知道出了啥问题, 直接访问超时拉取不到docker-ce{% endnote %}

阿里源

将本地镜像源更换成阿里源

# 设置docker镜像源
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 替换docker源
sed -i 's+download.docker.com+mirrors.aliyun.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo
​

使用阿里云安装Docker-ce报错解决方案更换清华源

使用阿里云docker-ce报错

清华源

 yum install -y yum-utils
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sed -i 's+https://download.docker.com+https://mirrors.tuna.tsinghua.edu.cn/docker-ce+' /etc/yum.repos.d/docker-ce.repo
yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

安装docker

可能会比较久,所以一定要先执行上一步,有了镜像可以快很多!

# 更新并安装Docker-CE
sudo yum makecache fast
sudo yum -y install docker-ce

Docker的使用

尝试启动docker

# 启动docker服务
sudo systemctl start docker  
 
# 停止docker服务
systemctl stop docker  
 
# 重启docker服务
sudo systemctl restart docker  

查看docker版本

docker -v

将docker设置开机启动

systemctl enable docker.service

查看是否设置成功

systemctl list-unit-files | grep enable

关闭开机启动

systemctl disable docker.service

配置镜像加速

docker官方镜像仓库网速较(就像我们去访问github一样),我们需要设置国内镜像服务,首推阿里云!

{% link 阿里云Docker镜像服务, 阿里云 , https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors ,https://img.alicdn.com/tfs/TB13DzOjXP7gK0jSZFjXXc5aXXa-212-48.png%}

配置完成需重载 daemon 并重启 docker

sudo systemctl daemon-reload
sudo systemctl restart docker

到这里您的docker就已经安装好了

Docker 镜像常用命令

搜索镜像

docker search java

下载镜像

  • docker pull java:8

  • docker pull macro/eureka-server:0.0.1

列出镜像

docker images

删除镜像

  • docker rmi java

  • docker rmi -f java

  • docker rmi -f $(docker images)

Docker 容器常用命令

新建并启动容器

docker run -d -p 91:80 nginx

列出容器

docker ps

停止容器

docker stop $ContainerId

强制停止容器

docker kill $ContainerId

启动已停止的容器

docker start $ContainerId

进入容器

  • docker inspect --format "" $ContainerId

  • nsenter --target "$pid" --mount --uts --ipc --net --pid

删除容器

  • docker rm $ContainerId

  • docker rm -f $(docker ps -a -q)

查看启动错误日志

docker logs $ContainerIdName(或者$ContainerId)

查看容器的IP地址(172.17.0.*)

docker docker inspect --format '{{ .NetworkSettings.IPAddress }}' $ContainerId

同步宿主机时间到容器

docker cp /etc/localtime $ContainerName:/etc/

在宿主机查看docker使用cpu、内存、网络、io情况

  • 查看指定容器情况:docker stats $ContainerName

  • 查看所有容器情况:docker stats -a

进入docker内部的bash

docker exec -it $ContainerName /bin/bash

Docker Registry

Docker Registry 2.0搭建

docker run -d -p 5000:5000 --restart=always --name registry2 registry:2

推送到私有仓库

docker push localhost:5000/macro/eureka-server:0.0.1

修改镜像标签

docker tag macro/eureka-server:0.0.1 localhost:5000/macro/eureka-server:0.0.1

使用maven构建Docker镜像

构建镜像

  • command:mvn clean package docker:build

  • tip: Linux服务器需要开启远程api:vi /usr/lib/systemd/system/docker.service 修改为:ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock

推送镜像到私有仓库

  • command:mvn clean package docker:build -DpushImage

  • tip: pom.xml修改192.168.1.71:5000/macro/${project.artifactId}:${project.version}

  • tip: docker要支持http:echo '{ "insecure-registries":["39.98.190.128:5000"] }' > /etc/docker/daemon.json

修改Docker镜像存放位置

  1. 查看Docker的存放位置:docker info | grep "Docker Root Dir"(默认为/var/lib/docker)

  2. 关闭Docker服务:systemctl stop docker

  3. 移动目录到目标路径:mv /var/lib/docker /root/data/docker

  4. 建立软连接:ln -s /root/data/docker /var/lib/docker

Docker compose

安装

  1. 下载地址:https://github.com/docker/compose/releases

  2. 安装地址:/usr/local/bin/docker-compose

  3. 设置为可执行:sudo chmod +x /usr/local/bin/docker-compose

  4. 测试是否安装成功:docker-compose --version

安装命令补全工具

sudo curl -L https://raw.githubusercontent.com/docker/compose/1.22.0/contrib/completion/bash/docker-compose -o /etc/bash_completion.d/docker-compose

常用命令

  • 构建、创建、启动相关容器:docker-compose up

  • 列出所有容器:docker-compose ps

  • 删除指定服务的容器:docker-compose rm eureka

  • 对容器进行动态扩容:docker-compose scale eureka=3

  • 停止相关容器:docker-compose stop eureka

  • 启动相关容器:docker-compose start eureka

编排SpringCloud微服务

所使用到的工程

  • eureka-server

  • hello-service

  • feign-consumer

  • api-gateway

编排模式

  1. 编排SpringCloud微服务:见eureka-server/docker-res/docker-compose.yml

  2. 简化SpringCloud微服务编排:见eureka-server/docker-res/docker-compose-simple.yml

  3. 编排高可用的注册中心:见eureka-server/docker-res/docker-compose-eureka.yml