在本文中,我们将给您介绍关于在centos中设置Docker_Opts的详细内容,并且为您解答centos配置docker的相关问题,此外,我们还将为您提供关于02_Docker在CentOS6和Ce
在本文中,我们将给您介绍关于在centos中设置Docker_Opts的详细内容,并且为您解答centos配置docker的相关问题,此外,我们还将为您提供关于02_Docker在CentOS 6和CentOS 7下的安装、2.3 在centos上安装docker、CentOS 7配置Docker Storage、CentOS6.4配置docker remote api的知识。
本文目录一览:- 在centos中设置Docker_Opts(centos配置docker)
- 02_Docker在CentOS 6和CentOS 7下的安装
- 2.3 在centos上安装docker
- CentOS 7配置Docker Storage
- CentOS6.4配置docker remote api
在centos中设置Docker_Opts(centos配置docker)
我需要将docker设置为在运行Amazon
Linux(centos)的主机上侦听tcp://0.0.0.0/4243。我看过的所有文档都告诉我运行以下命令
echo DOCKER_OPTS="-H=tcp://127.0.0.1:4243" >> /etc/default/docker
它将正确的docker_opts写入/ etc / default /
docker。我已经做到了,但是当我重新启动docker时,它不会监听127.0.0.1
我可以通过键入以下命令使docker正确运行
sudo /usr/bin/docker -H tcp://0.0.0.0:4243 -d &
那行得通,但是我希望默认选项可以在tcp://0.0.0.0:4243上监听,而不必每次都指定它。
似乎docker完全忽略了/ etc / default /
docker文件,因此设置被忽略。我还尝试将文件写入/etc/default/docker.io和/ etc / default / docker-
io(并不期望发生太多)
我需要能够以以下方式启动docker
service docker start
否则会导致我当前的部署手册出现问题。
对我可以做什么来设置DOCKER_OPTS而不是每次我重新启动docker都不必做的任何想法?
答案1
小编典典在RHEL7中,除了修改docker.service单元文件外,您还可以编辑/ etc / sysconfig / docker文件:
# /etc/sysconfig/docker# Modify these options if you want to change the way the docker daemon runsOPTIONS=--selinux-enabled -H unix:///var/run/docker.sock -H tcp://0.0.0.0:4243
然后重新启动您的docker服务。
对我来说,这比修改服务脚本更可靠。
02_Docker在CentOS 6和CentOS 7下的安装
CentOS 7 环境下安装docker
安装Docker
- 检查系统内核是否高于Linux3.10版本
uname -r
- 使用root权限操作,确保yum包是最新版本
sudo yum update
- 卸载老版本docker(可选操作,如果之前安装过的话)
sudo yum remove docker docker-common docker-selinux docker-engine
- 安装docker
sudo yum -y install docker
- 启动docker服务
sudo service docker start
或者在CentOS 7 中使用systemctl命令
sudo systemctl start docker
- 查看docker版本
docker version
- 查看docker基本信息
docker info
CentOS 6 环境下安装docker
由于docker必须在Linux内核3.10版本以上才可以正常安装,需要如下操作
升级内核
- yum安装3.10内核
cd /etc/yum.repos.d
wget http://www.hop5.in/yum/el6/hop5.repo
yum install kernel-ml-aufs kernel-ml-aufs-devel - 修改grub配置文件
修改grub的主配置文件/etc/grub.conf,设置default=0,表示第一个title下的内容为默认启动的kernel(一般新安装的内核在第一个位置)。
vi /etc/grub.conf - 重启系统,并检查内核
重启:shutdown –r Now
检查内核:uname –r
检查内核是否支持aufs:grep aufs /proc/filesystems
安装Docker
- 关闭selinux
setenforce 0
sed -i '/^SELINUX=/c\SELINUX=disabled' /etc/selinux/config
2. 在Fedora EPEL源中已经提供了docker-io包,下载安装epel
rpm -ivh http://mirrors.sohu.com/fedora-epel/6/x86_64/epel-release-6-8.noarch.rpm
sed -i 's/^mirrorlist=https/mirrorlist=http/' /etc/yum.repos.d/epel.repo
3. 安装docker-io
yum -y install docker-io
-
启动docker
service docker start -
查看docker版本
docker version -
查看docker日志
cat /var/log/docker
2.3 在centos上安装docker
如何搭建一个含有docker的系统开发环境,有如下三种方法:
安装
1. 手动安装
使用vagrant启动系统后,手动安装
https://docs.docker.com/install/linux/docker-ce/centos/
sudo yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-selinux docker-engine-selinux docker-engine
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# 如果想安装特定版本,则使用
# sudo yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io
sudo yum install -y docker-ce
sudo systemctl start docker
2. vagrant自动安装
在vagrant创建系统后自动搭建docker环境,config.vm.provision "shell"
能够在虚拟机被创建的时候自动执行
config.vm.provision "shell", inline: <<-SHELL
sudo yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-selinux docker-engine-selinux docker-engine
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install -y docker-ce
sudo systemctl start docker
SHELL
3. docker-machine自动安装
详见下节
4. 脚本自动安装
curl -fsSL https://get.docker.com -o get-docker.sh
卸载
sudo yum remove docker-ce
sudo rm -rf /var/lib/docker
查看版本
docker version
Client:
Version: 18.03.1-ce
API version: 1.37
Go version: go1.9.5
Git commit: 9ee9f40
Built: Thu Apr 26 07:20:16 2018
OS/Arch: linux/amd64
Experimental: false
Orchestrator: swarm
Server:
Engine:
Version: 18.03.1-ce
API version: 1.37 (minimum version 1.12)
Go version: go1.9.5
Git commit: 9ee9f40
Built: Thu Apr 26 07:23:58 2018
OS/Arch: linux/amd64
Experimental: false
常见问题
- 首次安装,启动失败,定位问题所在
# 通过systemctl来排查
systemctl status docker
# 直接运行systemctl的execStart来排查
/usr/bin/dockerd
CentOS 7配置Docker Storage
背景
CentOS 7已经集成了Docker Engine,并且提供了docker-storage-setup服务来帮助配置docker服务的devicemapper存储驱动,如果该驱动自动配置失败,则docker服务的存储驱动会降级为lvm-loop驱动。由于loop设备的缓存问题,lvm-loop模式不适合生产环境。
CentOS 7的安装程序默认使用lvm模式管理磁盘,如果仅有一块磁盘,安装程序会在该物理卷(pv)上创建centos卷组(vg),并同时使用所有空间创建home和root逻辑卷(lv)。
服务docker-storage-setup默认会尝试使用root文件系统所属的vg,即centos vg,但是由于该vg上已经没有剩余空间,从而导致devicemapper驱动配置失败。
减小home lvm的大小创建docker lvm
CentOS 7默认安装程序创建的home lv空间一般比较大,先减小其大小:
lvresize -L -50G /dev/centos/home
重新创建并挂载home文件系统
umount /home
mkfs.xfs /dev/centos/home
mount /home
使用docker-storage-setup配置devicemapper驱动,执行:
servicedockerstop
rm -rf /var/lib/docker
servicedockerstart
添加新的存储设备创建docker lvm
停止docker服务,并清除已有的docker storage:
servicedockerstop
rm -rf /var/lib/docker
编辑/etc/sysconfig/docker-storage-setup:
DEVS=/dev/sdb VG=docker
配置devicemapper驱动:
[root@localhost ~]# docker-storage-setup INFO: VolumegroupbackingrootfilesystemCouldnot bedetermined INFO: Device /dev/sdbis alreadypartitionedand is partofvolumegroupdocker Roundingupsizeto fullphysicalextent 12.00 MiB Logicalvolume "docker-poolMeta" created. Logicalvolume "docker-pool" created. WARNING: Convertinglogicalvolumedocker/docker-pooland docker/docker-poolMetato pool's dataand Metadatavolumes. THIS WILLDESTROYCONTENTOFLOGICALVOLUME (filesystemetc.) Converteddocker/docker-poolto thinpool. Logicalvolume "docker-pool" changed.
重启docker服务:
servicedockerstart
确认配置生效: a) vg信息:
[root@localhost ~]# vgdisplay --- Volumegroup --- VGNamedocker SystemID Formatlvm2 MetadataAreas1 MetadataSequenceNo6 VGAccessread/write VGStatusresizable MAXLV0 CurLV1 OpenLV0 MaxPV0 CurPV1 ActPV1 VGSize10.00 GiB PESize4.00 MiB TotalPE2559 AllocPE / Size1028 / 4.02 GiB FreePE / Size1531 / 5.98 GiB VGUUIDv1eiA1-P7CS-pUx9-D0uS-eVwZ-41pA-SKdlef
b) docker info:
[root@localhost ~]# docker info Containers: 0 Running: 0 Paused: 0 Stopped: 0 Images: 0 ServerVersion: 1.10.3 StorageDriver: devicemapper PoolName: docker-docker--pool PoolBlocksize: 524.3 kB BaseDeviceSize: 10.74 GB backingFilesystem: xfs Datafile: Metadatafile: DataSpaceUsed: 20.45 MB DataSpacetotal: 4.287 GB DataSpaceAvailable: 4.266 GB MetadataSpaceUsed: 40.96 kB MetadataSpacetotal: 12.58 MB MetadataSpaceAvailable: 12.54 MB UdevSyncSupported: true DeferredRemovalEnabled: true DeferredDeletionEnabled: true DeferredDeletedDeviceCount: 0 LibraryVersion: 1.02.107-RHEL7 (2016-06-09) ExecutionDriver: native-0.2 LoggingDriver: json-file Plugins: Volume: local Network: bridgenull host KernelVersion: 3.10.0-327.22.2.el7.x86_64 OperatingSystem: CentOSLinux 7 (Core) OSType: linux Architecture: x86_64 NumberofDockerHooks: 2 cpus: 2 TotalMemory: 1.782 GiB Name: localhost.localdomain ID: AY7O:H2RJ:33J5:62FY:GHZE:AGFH:F42E:AH3J:WY7N:JXQK:LHBS:BDKY WARNING: bridge-nf-call-iptablesis disabled WARNING: bridge-nf-call-ip6tablesis disabled Registries: docker.io (secure)
3) Docker Storage配置选项,查看/etc/sysconfig/docker-storage:
DOCKER_STORAGE_OPTIONS="--storage-driver devicemapper --storage-opt dm.fs=xfs --storage-opt dm.thinpooldev=/dev/mapper/centos-docker--pool --storage-opt dm.use_deferred_removal=true --storage-opt dm.use_deferred_deletion=true " http://www.tuicool.com/articles/UFJFRzN
参考
- Managing Storage With Docker Formatted Containers
CentOS6.4配置docker remote api
我的docker版本
# docker version Client: Version: 1.9.1 API version: 1.21 Go version: go1.4.3 Git commit: a34a1d5 Built: Fri Nov 20 17:56:04 UTC 2015 OS/Arch: linux/amd64 Server: Version: 1.9.1 API version: 1.21 Go version: go1.4.3 Git commit: a34a1d5 Built: Fri Nov 20 17:56:04 UTC 2015 OS/Arch: linux/amd64
编辑文件:
vim /etc/sysconfig/docker 加入 other_args="-H tcp://0.0.0.0:5555 -H unix:///var/run/docker.sock"
访问成功:
# curl http://192.168.133.128:5555/containers/json [{"Id":"24548c4b6ea7411c3e45c2bf33691a60b8ba35de4b1f01719aa70014a9d1601b","Names":["/shipyard-rethinkdb"],"Image":"shipyard/rethinkdb","ImageID":"01d0c7f830abee950e943860d496e5369319e509c560221f22076ec76b9ba64d","Command":"/usr/bin/rethinkdb --bind all","Created":1467885825,"Ports":[{"IP":"0.0.0.0","PrivatePort":29015,"PublicPort":32768,"Type":"tcp"},{"IP":"0.0.0.0","PrivatePort":28015,"PublicPort":32769,"PrivatePort":8080,"PublicPort":32770,"Type":"tcp"}],"Labels":{},"Status":"Up 14 minutes","HostConfig":{"NetworkMode":"default"}},{"Id":"714dec2d3c2fd55c0a33dc7978668738f1ae0a8540433825e3d382ba1cf3b377","Names":["/shipyard-rethinkdb-data"],"Command":"/bin/bash -l","Created":1467885824,"Ports":[{"PrivatePort":29015,{"PrivatePort":28015,{"PrivatePort":8080,"HostConfig":{"NetworkMode":"default"}}]
关于在centos中设置Docker_Opts和centos配置docker的介绍现已完结,谢谢您的耐心阅读,如果想了解更多关于02_Docker在CentOS 6和CentOS 7下的安装、2.3 在centos上安装docker、CentOS 7配置Docker Storage、CentOS6.4配置docker remote api的相关知识,请在本站寻找。
本文标签: