Docker

Docker之路

安装

yum install docker

添加阿里云镜像加速器


重装

yum remove docker 
                  docker-client 
                  docker-client-latest 
                  docker-common 
                  docker-latest 
                  docker-latest-logrotate 
                  docker-logrotate 
                  docker-engine
# yum-utils 提供了命令 yum-config-manager,device-mapper-persistent-data和lvm2由需要 devicemapper存储驱动程序。
yum install -y yum-utils 
  device-mapper-persistent-data 
  lvm2
# 设置 yum 源为 稳定的版本  
# 阿里的源,国内使用较快
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 官方的源(国内使用比较慢) 
yum-config-manager --add-repo    https://download.docker.com/linux/centos/docker-ce.repo
# 生成缓存
yum makecache
# 如果要安装指定的版本
yum list docker-ce --showduplicates | sort -r
# 填入版本号到下面的命令(docker-ce-19.03.0-3.el7)
yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io

# 安装最新稳定版本 Docker CE 
yum install docker-ce docker-ce-cli containerd.io

可能会遇到的问题

Cannot connect to the Docker daemon at tcp://0.0.0.0:2375. Is the docker daemon running?

# 执行以下操作
unset DOCKER_HOST
unset DOCKER_TLS_VERIFY
unset DOCKER_TLS_PATH
docker ps  # 查看后正常

如图:

Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

解决办法

# 进行如下步骤操作
systemctl daemon-reload
service docker restart
service docker status (should see active (running))
# 最近发现容器无法正常停止,docker stop了之后docker ps还是存在,启动的时候总是显示名称已存在或端口已被绑定,使用如下命令还是没有作用,于是docker升级,问题没有复现
# 强制清理容器
docker rm -f jenkins
# 清理网络占用
docker network disconnect --force bridge jenkins

docker0 特点:

  • 默认域名不能访问
  • --link可以打通,比较麻烦

自定义网络

如何创建一个自定义网络

创建自定义网络的注意参数

创建自定义网络!

docker network create --driver bridge --subnet 192.168.0.0/16 --gateway 192.168.0.1 mynet

启动容器的时候指定网络 --net

查看网络信息

不同的集群使用不同的网络,保证集群的安全和健康

网络联通

# 查看本地挂载
docker volume ls

Eureka集群搭建

这种方式只是为了进行测试自定义网络的特性

# 在同一网络下创建的容器可以将服务名当作域名进行使用
docker run -d --name eureka7001.com -p 7001:7001 -v /micserver/config:/config --net mynet  ibo-eureka:1.0.1 --spring.additional-location=/config/application-dev7001.yml

docker run -d --name eureka7002.com -p 7002:7002 -v /micserver/config:/config --net mynet  ibo-eureka:1.0.1 --spring.additional-location=/config/application-dev7002.yml --spring.profiles.active=dev7002
# `--spring.additional-location` 指定使用外部配置文件
docker run -d --name eureka7003.com -p 7003:7003 -v /micserver/config:/config --net mynet  ibo-eureka:1.0.1 --spring.additional-location=/config/application-dev7003.yml --spring.profiles.active=dev7003

--spring.additional-location 指定使用外部配置文件

Dockerfile

这个是我创建eureka镜像的dockerfile

# 依赖一个瘦身版的jdk
FROM openjdk:8-jdk-alpine
# 将package从源路径添加到目标路径
ADD /target/cloud-eureka-server-1.0-SNAPSHOT.jar ibo-eureka.jar
# 挂载指定文件路径 {宿主路径}:{容器路径}
VOLUME /micserver/eureka/config:/config
# 容器开放的端口(这里指定后—P就会随机到这里)
EXPOSE 7001 7002 7003
# 镜像构建完成后,如果要启动容器,就会运行此命令,ENTRYPOINT会将run后的参数进行追加
ENTRYPOINT ["java","-jar","ibo-eureka.jar"]

Docker-compose

原文地址:https://www.cnblogs.com/cfb513142804/p/13632150.html