概述

docker原理上说只能运行在linux环境下, 所有在windows和macOS下面都是通过虚拟机来实现的, 通过在系统内部署 Boot2Docker 来作为运行环境实现docker的部署, 此处只是简单讲解CenterOS环境

准备

  准备一台安装了CenterOS的服务器, 云主机, 服务器, 虚拟机都可以

安装步骤

更新系统依赖

root 用户执行  yum update

如果已经安装了docker, 则要先卸载安装的docker

$ yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

之后安装一下需要的包 

$ yum install -y yum-utils \
  device-mapper-persistent-data \
  lvm2

 

添加  docker de 仓库

$ yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

执行下面命令安装最新的docker-ce, 

$ yum install docker-ce docker-ce-cli containerd.io

输入 y

 

等待完成

docker --version 查看版本号

 

建立docker的操作用户和用户组, 并且设置密

[root@VM_121_116_centos ~]# groupadd docker
[root@VM_121_116_centos ~]# useradd -g docker docker
[root@VM_121_116_centos ~]# passwd docker
Changing password for user docker.
New password: 
BAD PASSWORD: The password fails the dictionary check - it is based on a dictionary word
Retype new password: 
passwd: all authentication tokens updated successfully.

切换到docker用户, 可操作docker 

切换回root用户, 设置开机自启

[root@VM_121_116_centos ~]# systemctl start docker.service 
[root@VM_121_116_centos ~]# systemctl enable docker.service
Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.

关闭防火墙

[root@VM_121_116_centos ~]# systemctl  disable firewalld

安装iptables

[root@VM_121_116_centos ~]# yum -y install iptables-services 

开机启动iptables

[root@VM_121_116_centos ~]# systemctl enable iptables
Created symlink from /etc/systemd/system/basic.target.wants/iptables.service to /usr/lib/systemd/system/iptables.service.
[root@VM_121_116_centos ~]# systemctl start iptables 

配置参数讲解

Docker配置文件: /usr/lib/systemd/system/docker.service 

ExecStart=/usr/bin/docker  daemon -H fd://  -H=unix:///var/run/docker.sock  -H=tcp://0.0.0.0:2375  --registrymirror=http://4bc5abeb.m.daocloud.io  --selinux-enabled=true 

参数讲解

  • -H 表示Docker Daemon绑定的地址, -H=unix:///var/run/docker.sock  -H=tcp://0.0.0.0:2375
  • --registry-mirror表示Docker Registry的镜像地址--registry-mirror=http://4bc5abeb.m.daocloud.io --insecure-registry表示(本地)私有Docker Registry的地址,
  • --insecure-registry ${pivateRegistyHost}:5000
  • --selinux-enabled是否开启SELinux,默认开启 --selinux-enabled=true
  • --bip 表示网桥docker0使用指定CIDR网络地址,--bip=172.17.42.1
  • -b  表示采用已经创建好的网桥, -b=xxx 

代理的实现

[Service]

Environment="HTTP_PROXY=http://xxxxcom:8080"

Environment="HTTPS_PROXY=http://xxxcom:8080"

Type=notify

ExecStart=/usr/bin/docker  daemo 

Docker 日志

docker守护进程 Docker Daemon 日志地址不同系统有所不同

官方说法: https://docs.docker.com/config/daemon/

Read the logs

The daemon logs may help you diagnose problems. The logs may be saved in one of a few locations, depending on the operating system configuration and the logging subsystem used:

Operating systemLocation
RHEL, Oracle Linux/var/log/messages
Debian/var/log/daemon.log
Ubuntu 16.04+, CentOSUse the command journalctl -u docker.service
Ubuntu 14.10-/var/log/upstart/docker.log
macOS (Docker 18.01+)~/Library/Containers/com.docker.docker/Data/vms/0/console-ring
macOS (Docker <18.01)~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/console-ring
WindowsAppData\Local

 

我们用的CenterOS 实验一下, pull一个不存在的镜像

[root@VM_121_116_centos ~]# docker pull redis1321

后台看看日志

[root@VM_121_116_centos log]# journalctl -u docker.service -n

可以看到客户端请求服务端的API

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐