Docker安装与部署
Docker安装与部署
SerMsCentos7前置操作
更新系统
运行以下命令可以更新系统的软件包和组件:
1 | sudo yum update |
安装必要的软件
安装一些常用的软件和工具,比如 vim
编辑器、net-tools
、wget
等:
1 | sudo yum install vim net-tools wget |
设置静态 IP 地址或者配置网络
修改 /etc/sysconfig/network-scripts/ifcfg-<interface>
文件来配置网络接口。
防火墙设置
根据需要打开或关闭防火墙端口: 启用防火墙:sudo systemctl start firewalld
禁用防火墙:sudo systemctl stop firewalld
更新内核(可选):
更新内核可以提高系统的稳定性和安全性。可以使用以下命令来更新内核:
1 | 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
,可以使用下面的命令卸载,(建议不管你有没有安装都跑一次卸载)
1 | yum remove docker \ |
安装Yum工具
首先需要大家虚拟机联网,安装yum工具,此文不做说明
1 | # 安装必要的一些系统工具 |
阿里源
将本地镜像源更换成阿里源
1 | # 设置docker镜像源 |
使用阿里云安装Docker-ce报错解决方案更换清华源
清华源
1 | yum install -y yum-utils |
安装docker
可能会比较久,所以一定要先执行上一步,有了镜像可以快很多!
1 | # 更新并安装Docker-CE |
Docker的使用
尝试启动docker
1 | # 启动docker服务 |
查看docker版本
1 | docker -v |
将docker设置开机启动
1 | systemctl enable docker.service |
查看是否设置成功
1 | systemctl list-unit-files | grep enable |
关闭开机启动
1 | systemctl disable docker.service |
配置镜像加速
docker官方镜像仓库网速较差(就像我们去访问github一样),我们需要设置国内镜像服务,首推阿里云!
配置完成需重载 daemon 并重启 docker
1 | sudo systemctl daemon-reload |
到这里您的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镜像存放位置
- 查看Docker的存放位置:docker info | grep “Docker Root Dir”(默认为/var/lib/docker)
- 关闭Docker服务:systemctl stop docker
- 移动目录到目标路径:mv /var/lib/docker /root/data/docker
- 建立软连接:ln -s /root/data/docker /var/lib/docker
Docker compose
安装
- 下载地址:https://github.com/docker/compose/releases
- 安装地址:/usr/local/bin/docker-compose
- 设置为可执行:sudo chmod +x /usr/local/bin/docker-compose
- 测试是否安装成功: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
编排模式
- 编排SpringCloud微服务:见eureka-server/docker-res/docker-compose.yml
- 简化SpringCloud微服务编排:见eureka-server/docker-res/docker-compose-simple.yml
- 编排高可用的注册中心:见eureka-server/docker-res/docker-compose-eureka.yml