环境准备
Docker版本及支持平台
Docker版本:
- 社区版(Community Edition,CE)
- 企业版(Enterprise Edition,EE)
支持平台:
- Linux(CentOS,Debian,Fedora,Oracl,Linux,RHEL,SUSE和Ubuntu)
- Mac
- Windows
系统推荐
系统CentOS 7.6+
以上,最好不要使用centos7.4以及一下,容器技术依赖于内核技术,低版本系统部署和运行后可能问题会非常多。
[root@master ~]# uname -r
3.10.0-1062.9.1.el7.x86_64
防火墙,SELinux,swap关闭
#关闭防火墙
systemctl stop firewalld
systemctl disable --now firewalld
#关闭selinux
setenforce 0
sed -ri '/^[^#]*SELINUX=/s#=.+$#=disabled#' /etc/selinux/config
#关闭swap
swapoff -a && sysctl -w vm.swappiness=0
sed -ri '/^[^#]*swap/s@^@#@' /etc/fstab
yum准备
yum install -y epel-release bash-completion wget yum-utils
cd /etc/yum.repos.d/
#阿里云docker yum镜像源
wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
#docker官网 yum镜像源
wget https://download.docker.com/linux/centos/docker-ce.repo
docker官方脚本检查
curl -s https://raw.githubusercontent.com/docker/docker/master/contrib/check-config.sh > check-config.sh
bash ./check-config.sh
docker官方的内核检查脚本建议(RHEL7/CentOS7: User namespaces disabled; add 'user_namespace.enable=1' to boot command line)
,如果是yum系列的系统使用下面命令开启
grubby --args="user_namespace.enable=1" --update-kernel="$(grubby --default-kernel)"
#然后重启
reboot
docker CE安装
yum安装docker-ce最新版本
yum install docker-ce -y
docker version
Client: Docker Engine - Community
Version: 19.03.5
API version: 1.40
Go version: go1.12.12
Git commit: 633a0ea
Built: Wed Nov 13 07:25:41 2019
OS/Arch: linux/amd64
Experimental: false
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
配置加速源并配置docker的启动参数
镜像从哪里来?
Docker Hub是由Docker公司负责维护的公共镜像仓库,包含大量的容器镜像,Docker工具默认从这个公共镜像库下载镜像。地址:https://hub.docker.com
使用systemd是官方的建议,详见 https://kubernetes.io/docs/setup/cri
mkdir -p /etc/docker/
cat>/etc/docker/daemon.json<<EOF
{
"exec-opts": ["native.cgroupdriver=systemd"],
"registry-mirrors": ["https://2lefsjdg.mirror.aliyuncs.com"],
"storage-driver": "overlay2",
"storage-opts": [
"overlay2.override_kernel_check=true"
],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m",
"max-file": "3"
}
}
EOF
或者
cat>/etc/docker/daemon.json<<EOF
{
"registry-mirrors": ["https://b9pmyelo.mirror.aliyuncs.com"]
}
EOF
复制补全脚本
cp /usr/share/bash-completion/completions/docker /etc/bash_completion.d/
docker启动并看下信息是否正常
systemctl daemon-reload
systemctl restart docker
docker info
docker 使用
开发人员首先构建一个镜像,然后把镜像推到镜像仓库中。因此,任何可以访问镜像仓库的人都可以使用该镜像。然后,他们可以将镜像拉取到任何运行着Dock er 的机器上并运行镜像。Docker 会基于镜像创建一个独立的器,并运行二进制可执行文件指定其作为镜像的一部分。
镜像分类
1、基础镜像,例如centos、ubuntu
2、环境镜像,基于基础镜像构建,例如java、php
3、项目镜像,基于环境镜像打包项目代码,最终交付物