docker支持centos7(64-bit)、centos 6.5(64-bit)或更高的版本
目前,centos仅发行版本中的内核支持docker。
docker运行在centos7上,要求系统为64位、系统内核版本为3.10以上。
docker运行在centos-6.5或更高的版本的centos上,要求系统为64位、系统内核版本位 2.6.32-431或者更高版本
uname命令用于打印当前系统相关信息(内核版本号、硬件架构、主机名称和操作系统类型等)
uname -r
查看已安装的centos版本信息
lsb_release -a
或者cat /etc/redhat-release
centos6从20年1月份开始已停止维护
All mirror URLs are not using ftp, http[s] or file. Cannot find a valid baseurl for repo: base
20201205 centos6 20201130 停止维护了 官方源已经没有用了 镜像源也肯定没用了
YUM报错那是肯定的!!!
已加载插件:fastestmirror, refresh-packagekit, security
Loading mirror speeds from cached hostfile
YumRepo Error: All mirror URLs are not using ftp, http[s] or file.
Eg. Invalid release/repo/arch combination/
removing mirrorlist with no valid mirrors: /var/cache/yu
错误:Cannot find a valid baseurl for repo: base
解决方法:
新的源: vault.centos.org
修改 /etc/yum.repos.d 中的 CentOS-Base.repo
1.注释所有的 mirrorlist= #mirrorlist=
2.取消所有的 baseurl 注释
3.将 baseurl 中的mirrorlist.centos.org 改为 vault.centos.org,将版本号不要使用默认系统的,改成6.8
yum install -y epel-release
yum install -y docker-io
注:使用该指令可能报以下错
这句话是用源安装docker,可是源一般是国外源,用这个命令因为GFW被墙,根本安装不了。
所以执行下面命令:
yum install https://get.docker.com/rpm/1.7.1/centos-6/RPMS/x86_64/docker-engine-1.7.1-1.el6.x86_64.rpm
要配置一个阿里云的镜像加速器
通过https://dev.aliyun.com/search.html去获取镜像加速器
把加速地址放入到配置文件中
这是因为我们拉取的镜像默认是国外的镜像,所以网速特别慢,所以需要的一个加速器来帮助我们
修改配置,加速地址就是后面那串
other_args="--registry-mirror=https://7r075jgf.mirror.aliyuncs.com"
启动docker后台服务
service docker start
docker version验证
yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-selinux docker-engine-selinux docker-engine
rm -rf /etc/systemd/system/docker.service.d
rm -rf /var/run/docker
rm -rf /var/lib/docker
1、官方网站中文
http://docs.docker.com/install/linux/docker-ce/centos
2、确定你是centos7
cat /etc/redhat-release
3、yum安装gcc相关
1、centos能连上外网
2、yum -y install gcc
3、yum -y install gcc-c++
4、删除老的软件包
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
5、安装所需要的包
yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
6、设置stable镜像仓库
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
7、更新yum软件包索引
yum makecache fast
8、安装docker ce
yum -y install docker-ce
9、启动docker
systemctl start docker
10、配置镜像加速
`
1、mkdir -p /etc/docker
2、vim /etc/docker/daemon.json
{
"registry-mirrors": ["https://7r075jgf.mirror.aliyuncs.com"]
}
3、systemctl daemon-reload
4、systemctl restart docker
11、卸载
systemctl stop docker
yum -y remove docker-ce
rm -rf /var/lib/docker
12、docker 服务重启配置
systemctl enable docker.service
Docker-Compose项目是Docker官方的开源项目,负责实现对Docker容器集群的快速编排。
Docker-Compose将所管理的容器分为三层,分别是工程(project),服务(service)以及容器(container)。Docker-Compose运行目录下的所有文件(docker-compose.yml,extends文件或环境变量文件等)组成一个工程,若无特殊指定工程名即为当前目录名。一个工程当中可包含多个服务,每个服务中定义了容器运行的镜像,参数,依赖。一个服务当中可包括多个容器实例,Docker-Compose并没有解决负载均衡的问题,因此需要借助其它工具实现服务发现及负载均衡。
Docker-Compose的工程配置文件默认为docker-compose.yml,可通过环境变量COMPOSE_FILE或-f参数自定义配置文件,其定义了多个有依赖关系的服务及每个服务运行的容器。
使用一个Dockerfile模板文件,可以让用户很方便的定义一个单独的应用容器。在工作中,经常会碰到需要多个容器相互配合来完成某项任务的情况。例如要实现一个Web项目,除了Web服务容器本身,往往还需要再加上后端的数据库服务容器,甚至还包括负载均衡容器等。
Compose允许用户通过一个单独的docker-compose.yml模板文件(YAML 格式)来定义一组相关联的应用容器为一个项目(project)。
Docker-Compose项目由Python编写,调用Docker服务提供的API来对容器进行管理。因此,只要所操作的平台支持Docker API,就可以在其上利用Compose来进行编排管理
1、下载docker-compose稳定版本
curl -L "https://get.daocloud.io/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
如果想替换其他版本更换1.29.2
2、赋予权限
chmod +x /usr/local/bin/docker-compose
1、启动指定docker-compose文件
docker-compose -f 文件名 up -d
2、停止服务
docker-compose -f 文件名 stop
3、停止并删除服务
docker-compose -f 文件名 down
注:当docker-compose.yml文件所在目录只有一个这样的文件,在该目录下可以直接使用docker-compose start/up/stop/restart指令操作
1、当创建容器的时候没有添加参数 --restart=always,则会docker 重启的时候,容器未能自动重启。
docker container update --restart=always 容器名字
2、当使用docker-compose关机或者重启docker同时重启容器restart always的配置
方法一:使用docker 命令修改(适用于centos7)
docker container update --restart=always 容器名字
方法二:直接改配置文件
找到/var/lib/docker/containers/容器id
当时用docker ps看到的容器id就是平时使用·容器id的缩写
修改配置文件hostconfig.json
记住:修改配置之前一定要关闭docker服务,要不然修改会失效
修改前配置:`"RestartPolicy":{"Name":"no","MaximumRetryCount":0}`
修改后配置:`"RestartPolicy":{"Name":"always","MaximumRetryCount":0}`
1、修改服务器映射端口
修改hostconfig.json配置文件中的内容,修改中括号内内容
{"9100/tcp":[{"HostIp":"","HostPort":"9116"}]}
2、修改容器内部映射
修改中括号外内容还有config.json中端口号
3、进入容器简化指令
docker run --rm -v /usr/local/bin:/target jpetazzo/nsenter
使用完之后可以使用docker-enter进入
1、进入容器内部
2、复制时间文件
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
或者
docker cp /usr/share/zoneinfo/Asia/Shanghai sentinel:/etc/localtime
但是很多情况下该文件会报错
cp: not writing through dangling symlink '/etc/localtime'
3、删除localtime
rm -rf /etc/localtime
4、重新复制
cp -i /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
curl https://registry.hub.docker.com/v1/repositories/foxiswho/rocketmq/tags\ | tr -d '[\[\]" ]' | tr '}' '\n'\ | awk -F: -v image='foxiswho/rocketmq' '{if(NR!=NF && $3 != ""){printf("%s:%s\n",image,$3)}}'