Docker从入门到放弃------docker的安装与初始化配置
本来是已经准备开始K8S的内容,但是K8S与Docker关联比较大,于是决定先写一些关于Docker的文章
本文所有内容基于CentOS8系统
文章目录
- 概述
- 下载二进制文件
- 下载二进制安装脚本
- 修改脚本权限
- 执行安装脚本
- 修改Docker安装目录
- 新建Docker目录
- 修改Docker配置文件
- 重启Docker
- 查看DockerInfo
- 验证
概述
Docker社区版本中提供了MacOS、Windows和Linux等系统的安装包,同时也支持在云服务器上的安装,如AWSCloud。网上在各种系统下安装Docker的教程也比较多,本文中仅介绍在Linux下Docker二进制文件的安装方式。
下载二进制文件
下载地址:Docker二进制文件官方下载地址
选择我们需要的版本下载,这里我选择的是docker-18.06.2-ce.tgz。
进入你存放下载文件的文件件,执行以下命令
wget https://download.docker.com/linux/static/stable/x86_64/docker-18.06.2-ce.tgz
等待下载完成
--2020-12-03 21:26:22-- https://download.docker.com/linux/static/stable/x86_64/docker-18.06.2-ce.tgz
正在解析主机 download.docker.com (download.docker.com)... 13.225.2.81, 13.225.2.92, 13.225.2.103, ...
正在连接 download.docker.com (download.docker.com)|13.225.2.81|:443... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:43834194 (42M) [application/x-tar]
正在保存至: “docker-18.06.2-ce.tgz”docker-18.06.2-ce.tgz 100%[============================================================================>] 41.80M 9.29MB/s 用时 6.8s 2020-12-03 21:26:29 (6.17 MB/s) - 已保存 “docker-18.06.2-ce.tgz” [43834194/43834194])
下载二进制安装脚本
地址:Docker二进制安装脚本地址
在刚才的文件夹下创建一个名为install-docker.sh的文件
vim install-docker.sh
将install-docker.sh中的内容复制到我们创建的文件中
#!/bin/shusage(){echo "Usage: $0 FILE_NAME_DOCKER_CE_TAR_GZ"echo " $0 docker-17.09.0-ce.tgz"echo "Get docker-ce binary from: https://download.docker.com/linux/static/stable/x86_64/"echo "eg: wget https://download.docker.com/linux/static/stable/x86_64/docker-17.09.0-ce.tgz"echo ""
}
SYSTEMDDIR=/usr/lib/systemd/system
SERVICEFILE=docker.service
DOCKERDIR=/usr/bin
DOCKERBIN=docker
SERVICENAME=dockerif [ $# -ne 1 ]; thenusageexit 1
elseFILETARGZ="$1"
fiif [ ! -f ${FILETARGZ} ]; thenecho "Docker binary tgz files does not exist, please check it"echo "Get docker-ce binary from: https://download.docker.com/linux/static/stable/x86_64/"echo "eg: wget https://download.docker.com/linux/static/stable/x86_64/docker-17.09.0-ce.tgz"exit 1
fiecho "##unzip : tar xvpf ${FILETARGZ}"
tar xvpf ${FILETARGZ}
echoecho "##binary : ${DOCKERBIN} copy to ${DOCKERDIR}"
cp -p ${DOCKERBIN}/* ${DOCKERDIR} >/dev/null 2>&1
which ${DOCKERBIN}echo "##systemd service: ${SERVICEFILE}"
echo "##docker.service: create docker systemd file"
cat >${SYSTEMDDIR}/${SERVICEFILE} <<EOF
[Unit]
Description=Docker Application Container Engine
Documentation=http://docs.docker.com
After=network.target docker.socket
[Service]
Type=notify
EnvironmentFile=-/run/flannel/docker
WorkingDirectory=/usr/local/bin
ExecStart=/usr/bin/dockerd \-H tcp://0.0.0.0:4243 \-H unix:///var/run/docker.sock \--selinux-enabled=false \--log-opt max-size=1g
ExecReload=/bin/kill -s HUP $MAINPID
# Having non-zero Limit*s causes performance problems due to accounting overhead
# in the kernel. We recommend using cgroups to do container-local accounting.
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
# Uncomment TasksMax if your systemd version supports it.
# Only systemd 226 and above support this version.
#TasksMax=infinity
TimeoutStartSec=0
# set delegate yes so that systemd does not reset the cgroups of docker containers
Delegate=yes
# kill only the docker process, not all processes in the cgroup
KillMode=process
Restart=on-failure
[Install]
WantedBy=multi-user.target
EOFecho ""systemctl daemon-reload
echo "##Service status: ${SERVICENAME}"
systemctl status ${SERVICENAME}
echo "##Service restart: ${SERVICENAME}"
systemctl restart ${SERVICENAME}
echo "##Service status: ${SERVICENAME}"
systemctl status ${SERVICENAME}echo "##Service enabled: ${SERVICENAME}"
systemctl enable ${SERVICENAME}echo "## docker version"
docker version
修改脚本权限
执行命令
chmod -x ./install-docker.sh
执行安装脚本
执行命令
bash ./install-docker.sh docker-18.06.2-ce.tgz
脚本会自动安装我们下载的Docker安装包并且重启Docker
##unzip : tar xvpf docker-18.06.2-ce.tgz
docker/
docker/docker-containerd
docker/docker-proxy
docker/docker
docker/docker-runc
docker/dockerd
docker/docker-containerd-ctr
docker/docker-containerd-shim
docker/docker-init##binary : docker copy to /usr/bin
/usr/bin/docker
##systemd service: docker.service
##docker.service: create docker systemd file##Service status: docker
● docker.service - Docker Application Container EngineLoaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset: disabled)Active: inactive (dead)Docs: http://docs.docker.com
##Service restart: docker
##Service status: docker
● docker.service - Docker Application Container EngineLoaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset: disabled)Active: active (running) since Thu 2020-12-03 21:42:22 CST; 31ms agoDocs: http://docs.docker.comMain PID: 3164626 (dockerd)Tasks: 18 (limit: 11540)Memory: 22.8MCGroup: /system.slice/docker.service├─3164626 /usr/bin/dockerd -H tcp://0.0.0.0:4243 -H unix:///var/run/docker.sock --selinux-enabled=false --log-opt max-size=1g└─3164645 docker-containerd --config /var/run/docker/containerd/containerd.toml12月 03 21:42:16 VM-0-4-centos dockerd[3164626]: time="2020-12-03T21:42:16.588103107+08:00" level=info msg="pickfirstBalancer: HandleSubConnStateChange: 0x>
12月 03 21:42:16 VM-0-4-centos dockerd[3164626]: time="2020-12-03T21:42:16.588258691+08:00" level=info msg="pickfirstBalancer: HandleSubConnStateChange: 0x>
12月 03 21:42:16 VM-0-4-centos dockerd[3164626]: time="2020-12-03T21:42:16.588274371+08:00" level=info msg="Loading containers: start."
12月 03 21:42:21 VM-0-4-centos dockerd[3164626]: time="2020-12-03T21:42:21.490469755+08:00" level=info msg="Default bridge (docker0) is assigned with an IP>
12月 03 21:42:22 VM-0-4-centos dockerd[3164626]: time="2020-12-03T21:42:22.055802015+08:00" level=info msg="Loading containers: done."
12月 03 21:42:22 VM-0-4-centos dockerd[3164626]: time="2020-12-03T21:42:22.134787833+08:00" level=info msg="Docker daemon" commit=6d37f41 graphdriver(s)=ov>
12月 03 21:42:22 VM-0-4-centos dockerd[3164626]: time="2020-12-03T21:42:22.134924559+08:00" level=info msg="Daemon has completed initialization"
12月 03 21:42:22 VM-0-4-centos dockerd[3164626]: time="2020-12-03T21:42:22.236492421+08:00" level=info msg="API listen on /var/run/docker.sock"
12月 03 21:42:22 VM-0-4-centos dockerd[3164626]: time="2020-12-03T21:42:22.236569607+08:00" level=info msg="API listen on [::]:4243"
12月 03 21:42:22 VM-0-4-centos systemd[1]: Started Docker Application Container Engine.
查看Docker信息
[root@VM-0-4-centos download]# docker info
Containers: 0Running: 0Paused: 0Stopped: 0
Images: 0
Server Version: 18.06.2-ce
Storage Driver: overlay2Backing Filesystem: extfsSupports d_type: trueNative Overlay Diff: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:Volume: localNetwork: bridge host macvlan null overlayLog: awslogs fluentd gcplogs gelf journald json-file logentries splunk syslog
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 468a545b9edcd5932818eb9de8e72413e616e86e
runc version: 69663f0bd4b60df09991c08812a60108003fa340
init version: fec3683
Security Options:seccompProfile: default
Kernel Version: 4.18.0-80.el8.x86_64
Operating System: CentOS Linux 8 (Core)
OSType: linux
Architecture: x86_64
CPUs: 1
Total Memory: 1.787GiB
Name: VM-0-4-centos
ID: BUHQ:DMTC:UM3Z:FJTX:FYWQ:U55P:MM2H:WT7X:YQFA:LUNL:MBDC:7DXS
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
Labels:
Experimental: false
Insecure Registries:127.0.0.0/8
Live Restore Enabled: false
修改Docker安装目录
从上文中Docker信息中我们可以看到,Docker的安装目录是
Docker Root Dir: /var/lib/docker
一般情况下,这个目录的的空间较小,所以不建议将其安装在var中。我们现在来修改一下Docker的安装目录
新建Docker目录
mkdir -p /opt/docker/root
修改Docker配置文件
查询Docker配置文件位置
[root@VM-0-4-centos download]# systemctl enable docker
Created symlink /etc/systemd/system/multi-user.target.wants/docker.service → /usr/lib/systemd/system/docker.service.
修改docker.service文件,在ExecStart属性的最后面添加参数
--graph /opt/docker/root
重启Docker
重新enable 一下docker 服务 重新进行软连接 以及进行一次 daemon-reload
systemctl disable docker
systemctl enable docker
systemctl daemon-reload
systemctl start docker
查看DockerInfo
[root@VM-0-4-centos ~]# systemctl restart docker
您在 /var/spool/mail/root 中有邮件
[root@VM-0-4-centos ~]# docker info
Containers: 0Running: 0Paused: 0Stopped: 0
Images: 0
Server Version: 18.06.2-ce
Storage Driver: overlay2Backing Filesystem: extfsSupports d_type: trueNative Overlay Diff: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:Volume: localNetwork: bridge host macvlan null overlayLog: awslogs fluentd gcplogs gelf journald json-file logentries splunk syslog
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 468a545b9edcd5932818eb9de8e72413e616e86e
runc version: 69663f0bd4b60df09991c08812a60108003fa340
init version: fec3683
Security Options:seccompProfile: default
Kernel Version: 4.18.0-80.el8.x86_64
Operating System: CentOS Linux 8 (Core)
OSType: linux
Architecture: x86_64
CPUs: 1
Total Memory: 1.787GiB
Name: VM-0-4-centos
ID: BUHQ:DMTC:UM3Z:FJTX:FYWQ:U55P:MM2H:WT7X:YQFA:LUNL:MBDC:7DXS
Docker Root Dir: /opt/docker/root
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
Labels:
Experimental: false
Insecure Registries:127.0.0.0/8
Live Restore Enabled: false
注:若启动后Docker Root Dir未发生变化,请执行以下命令再重新查看info
systemctl restart docker
验证
docker安装MySQL:详细教程链接,建议大家看一看详细教程,里面也有安装docker国内源的内容,可以大大加快你下载镜像的速度
执行拉取MySQL5.7的命令
[root@VM-0-4-centos ~]# docker pull mysql:5.7.29
5.7.29: Pulling from library/mysql
54fec2fa59d0: Pull complete
bcc6c6145912: Pull complete
951c3d959c9d: Pull complete
05de4d0e206e: Pull complete
319f0394ef42: Pull complete
d9185034607b: Pull complete
013a9c64dadc: Pull complete
58b7b840ebff: Pull complete
9b85c0abc43d: Pull complete
bdf022f63e85: Pull complete
35f7f707ce83: Pull complete
Digest: sha256:95b4bc7c1b111906fdb7a39cd990dd99f21c594722735d059769b80312eb57a7
Status: Downloaded newer image for mysql:5.7.29
执行命令
du /var/lib/docker/
与命令
du /opt/docker/root/
可以看到,所有的镜像都存在于文件夹/opt/docker/root/下
我是Baldwin,一个25岁的程序员,致力于让学习变得更有趣!
现在关注作者即可领取海量学习资料与简历模板
往期好文:
用Python每天给女神发一句手机短信情话
MySQL优化之explain
Spring源码分析-MVC初始化
春风得意马蹄疾,一文看尽(JVM)虚拟机
造轮子的艺术
源码阅读技巧
Java注解详解
教你自建SpringBoot服务器
更多文章请点击
Docker从入门到放弃------docker的安装与初始化配置相关推荐
- mysql不要放docker,Docker从入门到放弃
本文将以比较简单的的方式让大家理解docker,以平时常用到的测试环境为主,从用开始,慢慢理解docker. 0x00 用docker进行漏洞测试 0x01 docker运行busybox 0x02 ...
- Linux从入门到放弃 docker
Docker概述 Docker流程 java -- apk -- 发布(应用商店) -- 下载使用apk -- 安装即可用 java -- jar(环境) -- 打包项目带上环境(镜像) -- Doc ...
- docker基础入门一:docker安装镜像下载根据镜像创建容器
一.安装准备: #卸载旧的版本: yum list installed |grep docker yum -y remove ... #卸载后将保留/var/lib/docker的内容(镜像.容器等 ...
- Docker从入门到“放弃”
文章目录 Docker 概述 虚拟机技术缺点 容器化技术 比较Docker和虚拟机技术的不同 优点 Docker的基本组成 安装Docker 底层原理 **Docker是什么工作的?** **Dock ...
- 老男孩Docker基础入门培训视频Docker核心原理解(完整版)
课程介绍: Dokcer比较初级的培训视频教程,很适合零基础的朋友们来学习,没有复杂的原理,初入门推荐的Docker培训视频 课程目录: L021-01-Docker介绍.avi L021-02-Do ...
- Hexo 入门指南(二) - 安装、初始化和配置
安装和初始化 linux下打开bash,win下面打开cmd,输入: $ npm install hexo -g $ hexo init blog $ cd blog $ npm install $ ...
- Centos7 Minimal 安装后 初始化配置
安装完成后初始化配置 1:更新yum yum upgrade 2: 安装基础命令 #yum -y install vim* lrzsz gcc-c++ pcre pcre-devel zlib zli ...
- MYSQL安装和初始化配置
简介: MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品.MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好 ...
- Jenkins安装和初始化配置
Jenkins是基于Java开发的一种持续集成工具,用于监控持续重复的工作,功能包括: 1.持续的软件版本发布/测试项目. 2.监控外部调用执行的工作. 所以安装Jenkins包含安装相应的jdk环境 ...
最新文章
- python request post json_python接口之request测试:以json格式发送post请求,.json方法,查看响应结果的情况...
- java 回滚异常_Spring事务管理只对出现运行期异常进行回滚
- 计算机研究与发展 杂志,《计算机研究与发展》杂志投稿的具体要求详解
- Matplotlib 中文用户指南 1 简介
- 两个整数集合的交集 ———— 腾讯2014软件开发笔试题目
- c++工作笔记002---C++ 类成员访问运算符 - 的重载
- 181202每日一句
- P问题、NP问题、NPC问题、NP hard问题
- 反向传播思想及其优缺点
- 关于椰子汁的学问,你知道多少?
- 电荷耦合器件架构及工作原理
- Linxu-解压压缩命令
- 如何让电脑同时连接内外网?
- Python-random函数用法
- 【干货篇】调用其他系统http接口超时了,如何处理,方案汇总
- Linux查看网卡的运行情况,NETSTAT - 查看网络运行情况。
- 漫画 | 领导说“辛苦了”,该怎么回?
- proteus如何添加stm32_电路仿真软件详谈(六),Proteus电路仿真软件的超级应用
- SQL 开源替代品,诞生了!
- 给网页的按钮添加快捷键
热门文章
- 关于医疗影像的mhd和dcm格式图像的读取和坐标转换
- PyTorch(Python)训练MNIST模型移动端IOS上使用Swift实时数字识别
- 软件测试基础——概念篇
- 阿里云ACP认证适合什么样的人考?
- 【App Inventor】飞机大战 APP
- 后渗透篇:CLSID大全
- poker游戏编码规则
- RecyclerView+自定义IndexBar实现自定义带索引的通讯录
- 计算机应用知识试题 上学吧,自考计算机应用高分技巧,自考计算机应用作答技巧...
- iphoneX布局适配及iOS 11.0系统适配