docker容器安装部署
docker容器的在线以及二进制安装。以及一些简单的配置。
在线安装
卸载老版本的 docker 及其相关依赖
$ sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine \
-y
删除旧的docker文件
sudo rm -rf /var/lib/docker
使用yum进行安装
# step 1: 安装必要的一些系统工具
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
安装仓库地址
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
查看仓库内可选的版本包
[root@DESKTOP-KQN1KKC ~]# yum list docker-ce --showduplicates | sort -r
* updates: mirrors.huaweicloud.com
Loading mirror speeds from cached hostfile
Loaded plugins: fastestmirror
* extras: mirrors.huaweicloud.com
docker-ce.x86_64 3:19.03.9-3.el7 docker-ce-stable
docker-ce.x86_64 3:19.03.8-3.el7 docker-ce-stable
docker-ce.x86_64 3:19.03.7-3.el7 docker-ce-stable
docker-ce.x86_64 3:19.03.6-3.el7 docker-ce-stable
docker-ce.x86_64 3:19.03.5-3.el7 docker-ce-stable
docker-ce.x86_64 3:19.03.4-3.el7 docker-ce-stable
docker-ce.x86_64 3:19.03.3-3.el7 docker-ce-stable
docker-ce.x86_64 3:19.03.2-3.el7 docker-ce-stable
docker-ce.x86_64 3:19.03.1-3.el7 docker-ce-stable
docker-ce.x86_64 3:19.03.12-3.el7 docker-ce-stable
docker-ce.x86_64 3:19.03.11-3.el7 docker-ce-stable
docker-ce.x86_64 3:19.03.10-3.el7 docker-ce-stable
docker-ce.x86_64 3:19.03.0-3.el7 docker-ce-stable
docker-ce.x86_64 3:18.09.9-3.el7 docker-ce-stable
docker-ce.x86_64 3:18.09.8-3.el7 docker-ce-stable
docker-ce.x86_64 3:18.09.7-3.el7 docker-ce-stable
docker-ce.x86_64 3:18.09.6-3.el7 docker-ce-stable
docker-ce.x86_64 3:18.09.5-3.el7 docker-ce-stable
docker-ce.x86_64 3:18.09.4-3.el7 docker-ce-stable
docker-ce.x86_64 3:18.09.3-3.el7 docker-ce-stable
docker-ce.x86_64 3:18.09.2-3.el7 docker-ce-stable
docker-ce.x86_64 3:18.09.1-3.el7 docker-ce-stable
docker-ce.x86_64 3:18.09.0-3.el7 docker-ce-stable
docker-ce.x86_64 18.06.3.ce-3.el7 docker-ce-stable
docker-ce.x86_64 18.06.2.ce-3.el7 docker-ce-stable
docker-ce.x86_64 18.06.1.ce-3.el7 docker-ce-stable
docker-ce.x86_64 18.06.0.ce-3.el7 docker-ce-stable
docker-ce.x86_64 18.03.1.ce-1.el7.centos docker-ce-stable
docker-ce.x86_64 18.03.0.ce-1.el7.centos docker-ce-stable
docker-ce.x86_64 17.12.1.ce-1.el7.centos docker-ce-stable
docker-ce.x86_64 17.12.0.ce-1.el7.centos docker-ce-stable
docker-ce.x86_64 17.09.1.ce-1.el7.centos docker-ce-stable
docker-ce.x86_64 17.09.0.ce-1.el7.centos docker-ce-stable
docker-ce.x86_64 17.06.2.ce-1.el7.centos docker-ce-stable
docker-ce.x86_64 17.06.1.ce-1.el7.centos docker-ce-stable
docker-ce.x86_64 17.06.0.ce-1.el7.centos docker-ce-stable
docker-ce.x86_64 17.03.3.ce-1.el7 docker-ce-stable
docker-ce.x86_64 17.03.2.ce-1.el7.centos docker-ce-stable
docker-ce.x86_64 17.03.1.ce-1.el7.centos docker-ce-stable
docker-ce.x86_64 17.03.0.ce-1.el7.centos docker-ce-stable
* base: mirror.bit.edu.cn
Available Packages
[root@DESKTOP-KQN1KKC ~]#
选则其中一个包安装
默认安装:(以下命令二选一)
sudo yum install docker-ce
sudo yum install docker-ce docker-ce-cli containerd.io
指定版本安装:(以下命令二选一)
sudo yum install -y docker-ce-19.03.12
sudo yum install -y docker-ce-19.03.12 docker-ce-cli-19.03.12 containerd.io
安装docker-compose
sudo curl -L "https://github.com/docker/compose/releases/download/1.26.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
docker-compose --version
离线安装
docker版本:docker-18.06.0-ce
大纲: 一、为什么要采用二进制安装 二、二进制的安装包的下载 三、二进制安装包的安装步骤 四、小tips 1、docker默认网卡网段的修改 2、docker版本13和18的一个差别—-文件挂载
一、为什么要采用二进制安装
网上有很多的docker的安装教程,我也原来写过关于docker的安装(CSDN),但最近在部署使用docker的过程中,发现有很多的配置还是需要学习并注意的。所以再写一次并方便自己日后进行补充。 使用二进制部署的实际场景: 1、在open suse12的系统上安装部署过。(备注:docker官方只提供了在suse12上的docker ee的版本,没有docker ce的版本,虽然suse的仓库中存在docker的rpm安装包,博主也下载了,但实际安装时并未安装成功,而采用的二进制docker包部署上了) 2、在没有外网的环境中并且没有yum源时,部署过。 3、这篇文章从开始编写,到发布,拖得太久了,貌似脱了有一个月的时间,以后有文章最多不超过3天写完,导致要写的好多东西都忘记了。
二、二进制安装包的下载
docker二进制文件的下载链接: https://download.docker.com/linux/static/stable/
三、二进制安装包的安装步骤
模拟一个局域网,信息中心要求把相关的软件包和数据放到固定的路径的一个环境。
安装非常的简单,就是把二进制的可执行包放到被要求的固定的路径下,然后将此路径加到系统的环境变量中,然后自己创建docker.service和daemon.json两个配置文件。
实际的部署过程
在这里将二进制的包放到/opt/docker路径下,数据放到/data/docker
直接上操作步骤
[root@tag home]# ls
docker-18.06.0-ce.tgz
[root@tag home]# tar -zxvf docker-18.06.0-ce.tgz -C /opt/
docker/
docker/dockerd
docker/docker-proxy
docker/docker-containerd
docker/docker-runc
docker/docker-init
docker/docker-containerd-shim
docker/docker
docker/docker-containerd-ctr
[root@tag home]#
[root@tag home]# ls /opt/docker/
docker docker-containerd docker-containerd-ctr docker-containerd-shim dockerd docker-init docker-proxy docker-runc
[root@tag home]#
[root@tag home]# cat > /etc/systemd/system/docker.service <<"EOF"
[Unit]
Description=Docker Application Container Engine
Documentation=http://docs.docker.io
[Service]
Environment="PATH=/opt/docker:/bin:/sbin:/usr/bin:/usr/sbin"
EnvironmentFile=-/run/flannel/docker
ExecStart=/opt/docker/dockerd \
--graph /data/docker ###备注:这里就是docker数据存储的目录设置
--log-level=error \
$DOCKER_NETWORK_OPTIONS
ExecReload=/bin/kill -s HUP $MAINPID
Restart=on-failure
RestartSec=5
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
Delegate=yes
KillMode=process
[Install]
WantedBy=multi-user.target
EOF
[root@tag home]#
[root@tag home]# mkdir -p /etc/docker/
[root@tag home]# cat > /etc/docker/daemon.json <<EOF #备注:外网拉取镜像时可用
{
"registry-mirrors": ["https://hub-mirror.c.163.com", "https://docker.mirrors.ustc.edu.cn"],
"max-concurrent-downloads": 20
}
EOF
[root@tag home]# cat /etc/docker/daemon.json #备注:使用内网仓库时可用
{
"insecure-registries":["https://内网镜像仓库ip:5000"]
}
[root@tag home]#
[root@tag home]# systemctl daemon-reload
[root@tag home]# systemctl enable docker
[root@tag home]# systemctl restart docker
[root@tag home]# systemctl status docker
[root@tag home]# ip a #备注:查看是否多了一张docker0的网卡
四、小tips
#### 1、docker默认网卡网段的修改
这里提供两种修改方法:一种是新建一个网桥;另一种是直接修改docker0网卡的网段
##### 第一种:新建一个网桥
[root@tag home]#
[root@tag home]# systemctl stop docker
[root@tag home]# iptables -t nat -F POSTROUTING #查看一下防火墙的nat
[root@tag home]# ip link set dev docker0 down # 删除docker默认网关配置
[root@tag home]# ip addr del 172.17.0.1/16 dev docker0
[root@tag home]# yum install -y bridge-utils #新建一张网卡
[root@tag home]# brctl addbr bridge1
[root@tag home]# ip addr add 172.18.2.1/24 dev bridge1 # 增加新的docker网关配置
[root@tag home]# ip link set dev bridge1 up
[root@tag home]# ip addr show bridge1
[root@tag home]#
[root@tag home]# cat > /etc/docker/docker-daemon.json <<EOF #这里你也可以将上面的仓库地址加上
{
"bridge": "bridge1"
}
EOF
[root@tag home]#
[root@tag home]# systemctl daemon-reload
[root@tag home]# systemctl enable docker
[root@tag home]# systemctl restart docker
[root@tag home]# systemctl status docker
[root@tag home]#
##### 第二种:直接修改docker0网卡的网段
[root@tag home]#
[root@tag home]# cat > /etc/docker/daemon.json <<EOF #这里你也可以将上面的仓库地址加上
{
"bip": "179.2.0.1/16"
}
EOF
[root@tag home]#
[root@tag home]# systemctl daemon-reload
[root@tag home]# systemctl enable docker
[root@tag home]# systemctl restart docker
[root@tag home]# systemctl status docker
[root@tag home]#
[root@tag home]# iptables -t nat -L -n
[root@tag home]# iptables -t nat -F POSTROUTING
[root@tag home]#
#### 2、docker版本13和18的一个差别—-文件挂载 这也是今天去客户那里安装才发现的。在把宿主机的目录挂载到容器内时,使用docker run方式启动容器时,需要添加参数docker run -itd –privileged …,使用docker-compose方式启动时,需要添加参数privileged: true。 忘记要写什么了,记得时候再来补充