GVKun编程网logo

在centos中设置Docker_Opts(centos配置docker)

4

在本文中,我们将给您介绍关于在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)

在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下的安装

02_Docker在CentOS 6和CentOS 7下的安装

CentOS 7 环境下安装docker

安装Docker

  1. 检查系统内核是否高于Linux3.10版本
uname -r
  1. 使用root权限操作,确保yum包是最新版本
sudo yum update
  1. 卸载老版本docker(可选操作,如果之前安装过的话)
sudo yum remove docker  docker-common docker-selinux docker-engine
  1. 安装docker
sudo yum -y install docker
  1. 启动docker服务
sudo service docker start

或者在CentOS 7 中使用systemctl命令

sudo systemctl start docker
  1. 查看docker版本
docker version
  1. 查看docker基本信息
docker info

CentOS 6 环境下安装docker

由于docker必须在Linux内核3.10版本以上才可以正常安装,需要如下操作

升级内核

  1. 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
  2. 修改grub配置文件
    修改grub的主配置文件/etc/grub.conf,设置default=0,表示第一个title下的内容为默认启动的kernel(一般新安装的内核在第一个位置)。
    vi /etc/grub.conf
  3. 重启系统,并检查内核
    重启:shutdown –r Now
    检查内核:uname –r
    检查内核是否支持aufs:grep aufs /proc/filesystems

安装Docker

  1. 关闭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

  1. 启动docker
    service docker start

  2. 查看docker版本
    docker version

  3. 查看docker日志
    cat /var/log/docker

2.3 在centos上安装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

常见问题

  1. 首次安装,启动失败,定位问题所在
# 通过systemctl来排查
systemctl status docker
# 直接运行systemctl的execStart来排查
/usr/bin/dockerd

CentOS 7配置Docker Storage

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

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_Optscentos配置docker的介绍现已完结,谢谢您的耐心阅读,如果想了解更多关于02_Docker在CentOS 6和CentOS 7下的安装、2.3 在centos上安装docker、CentOS 7配置Docker Storage、CentOS6.4配置docker remote api的相关知识,请在本站寻找。

本文标签: