DOCKER 安装步骤-最靠谱的笔记

刘小冉 2021-01-21 17:38:43
docker 安装 笔记 步骤


 

一、系统环境规划

服务器名

 

项目名称

docker

操作系统

CentOS Linux release 7.1.1503 (Core)

Docker 版本

17.03.2-ce

 

二、Docker 简介

Docker 容器可以简单的理解为是一个轻量级的虚拟机,容器和容器之间是相互隔离的。虚拟机和虚拟机之间是操作系统上的隔离,而容器和容器之间是进程上的隔离。

使用Docker 可以给我们带来很大的方便,比如:可以在一台主机上创建多个容器,当做多个节点来使用;在一台机器上安装多个MySQL 实例,它们的端口都是3306;可以把我们的应用程序进行打包等等。

Docker 官方主页: https://www.docker.com

Docker 官方文档: https://docs.docker.com/

Docker Hub: https://hub.docker.com

 

三、Docker 的安装

Docker 运行在 CentOS 7 上,要求系统为64位、系统内核版本为 3.10 以上。Docker 运行在 CentOS-6.5 或更高的版本的 CentOS 上,要求系统为64位、系统内核版本为 2.6.32-431 或者更高版本CentOS 7 的内核一般都是3.10的,而CentOS 6.X 的内核一般都是2.6,在2.6的内核下,Docker运行会比较卡,所以一般会选择升级到3.10版本。

 

3.1、卸载掉系统自带的老版本docker

yum remove -y docker docker-client docker-client-latest docker-common \

docker-latest docker-latest-logrotate docker-logrotate \

docker-selinux docker-engine-selinux docker-engine

 

3.2、安装相关的依赖包:

安装docker的时候可能会报错缺包或者依赖包版本过低等问题,可视具体情况安装或升级相关依赖包。

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

 

3.3、配置docker

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

 

 

3.4、安装docker

    安装之前我们可以先查看下有哪些docker 版本

yum list docker-ce --showduplicates | sort -r

 

 

安装docker:这里我们安装的是 17.03.2 版本。

 yum install -y --setopt=obsoletes=0 docker-ce-17.03.2.ce-1.el7.centos.x86_64 \

 docker-ce-selinux-17.03.2.ce-1.el7.centos.noarch

 

 

3.5、我们也可以使用官方提供的脚本来安装docker   

curl -fsSL get.docker.com -o get-docker.sh

sh get-docker.sh

 

四、查看Docker 版本和相关信息

4.1、安装完成,查看docker 版本信息

 

 

4.2、启动docker

     安装完docker 服务是没有启动的,需要启动服务。

systemctl enable docker

systemctl start docker

 

启动完毕,查看docker 服务状态:

 

4.3docker info 查看docker 相关信息

 

五、拉取镜像创建容器

Image(镜像) Container(容器) Docker 中最基本的两个概念。

此处的 Image 可以理解为创建虚拟机的时候需要的操作系统镜像,也就是说Image 是创建容器的时候需要的镜像。

我们需要从网络上来拉取镜像:这是一个centos 7.6的镜像

docker pull centos:7.6.1810  

 

拉取完毕,查看已下载的镜像:

 

 

 有了镜像我们就可以使用镜像来创建容器了。

 

当然其他各个版本的镜像也都是可以下载的

下载 7.8 镜像

[root@docker ~]# docker pull centos:7.8.2003

7.8.2003: Pulling from library/centos

9b4ebb48de8d: Pull complete

Digest: sha256:8540a199ad51c6b7b51492fa9fee27549fd11b3bb913e888ab2ccf77cbb72cc1

Status: Downloaded newer image for centos:7.8.2003

 

六、创建容器

6.1、我们使用docker ps 或者 docker ps -a 命令来查看所有的容器信息,如下,当前没有任何容器,我们来创建一个。

 

 

 

docker run -d --name centos7_6_01 -h container_01 \   

-p 220:22 \

--privileged=true \

centos:7.6.1810 /usr/sbin/init

 

参数解释:

--name centos7_6_01  为容器名字:centos7_6_01

-h container_01 为容器hostnamecontainer_01

-p 220:22   为将22端口映射到220,也就是可以使用220端口直接连接到此容器

centos:7.6.1810 选择使用哪个镜像来创建容器

 

创建完毕,docker ps 查看下当前的容器:

 

 

 

这里我们看到有一个 NAMES centos7_6_01 的容器了。

进入某个容器有两种方式,如下:

 docker exec -it  <NAMES>  bash

 docker exec -it  <CONTAINER ID>  bash

也就是可以直接使用容器名字或者容器ID来进入

 docker exec -it centos7_6_01 bash

 docker exec -it ed20ee9b8226 bash

 

 

6.2、每个容器都是有独立的IP的,IP可以在创建的时候指定,也可以自动生成。

 

 

6.3、修改容器时间:

容器创建完成会后,内部时间跟宿主机操作系统不一致,需要修改。

 

 

 

宿主机操作系统上执行:

docker cp /usr/share/zoneinfo/Asia/Shanghai centos7_6_01:/etc/localtime

 修改完成再次进入容器查看:

 

 

七、将某个容器提交为一个镜像模板

Docker 中可以把某个容器提交为一个 image,也就是说我们可以以某个容器为模板来创建容器或者说是复制容器,这可以为我们提供极大的方便,节约更多的时间。

比如:我们在centos7_6_01 容器中安装完了MySQL 数据库以及相关的一些配置,我们此时还需要创建一个相同环境相同配置的容器centos7_6_02,那我们是先创建一个空的容器,然后去安装MySQL数据库以及配置其他的信息,还是直接把centos7_6_01 作为一个模板直接复制一个容器出来呢?当然是直接复制一个要更快捷更高效。

查看当前容器和镜像信息如下,我们把name centos7_6_01 的容器提交为一个模板来供我们后续使用,也可以说是把 centos7_6_01 进行复制来实现一个自动化部署的功能。

 

 

我们把容器 centos7_6_01 提交为 centos7_6 版本为2.0 的一个镜像:

docker commit centos7_6_01 centos7_6:2.0

 

我们再以这个新创建的镜像来创建一个容器:创建一个名为 mysql_01,主机名为 mysql_01,端口为 221 的容器:

docker run -d --name mysql_01 -h mysql_01 \

-p 221:22  \

--privileged=true \

centos7_6:2.0 /usr/sbin/init

 

 

此时我们创建出来的 mysql_01 容器就跟 centos7_6_01 容器是一摸一样的了。

容器mysql_01 拥有独立的ip地址。

 

 

版权声明
本文为[刘小冉]所创,转载请带上原文链接,感谢
https://www.cnblogs.com/liuxiaoran/p/14309296.html

  1. 【计算机网络 12(1),尚学堂马士兵Java视频教程
  2. 【程序猿历程,史上最全的Java面试题集锦在这里
  3. 【程序猿历程(1),Javaweb视频教程百度云
  4. Notes on MySQL 45 lectures (1-7)
  5. [computer network 12 (1), Shang Xuetang Ma soldier java video tutorial
  6. The most complete collection of Java interview questions in history is here
  7. [process of program ape (1), JavaWeb video tutorial, baidu cloud
  8. Notes on MySQL 45 lectures (1-7)
  9. 精进 Spring Boot 03:Spring Boot 的配置文件和配置管理,以及用三种方式读取配置文件
  10. Refined spring boot 03: spring boot configuration files and configuration management, and reading configuration files in three ways
  11. 精进 Spring Boot 03:Spring Boot 的配置文件和配置管理,以及用三种方式读取配置文件
  12. Refined spring boot 03: spring boot configuration files and configuration management, and reading configuration files in three ways
  13. 【递归,Java传智播客笔记
  14. [recursion, Java intelligence podcast notes
  15. [adhere to painting for 386 days] the beginning of spring of 24 solar terms
  16. K8S系列第八篇(Service、EndPoints以及高可用kubeadm部署)
  17. K8s Series Part 8 (service, endpoints and high availability kubeadm deployment)
  18. 【重识 HTML (3),350道Java面试真题分享
  19. 【重识 HTML (2),Java并发编程必会的多线程你竟然还不会
  20. 【重识 HTML (1),二本Java小菜鸟4面字节跳动被秒成渣渣
  21. [re recognize HTML (3) and share 350 real Java interview questions
  22. [re recognize HTML (2). Multithreading is a must for Java Concurrent Programming. How dare you not
  23. [re recognize HTML (1), two Java rookies' 4-sided bytes beat and become slag in seconds
  24. 造轮子系列之RPC 1:如何从零开始开发RPC框架
  25. RPC 1: how to develop RPC framework from scratch
  26. 造轮子系列之RPC 1:如何从零开始开发RPC框架
  27. RPC 1: how to develop RPC framework from scratch
  28. 一次性捋清楚吧,对乱糟糟的,Spring事务扩展机制
  29. 一文彻底弄懂如何选择抽象类还是接口,连续四年百度Java岗必问面试题
  30. Redis常用命令
  31. 一双拖鞋引发的血案,狂神说Java系列笔记
  32. 一、mysql基础安装
  33. 一位程序员的独白:尽管我一生坎坷,Java框架面试基础
  34. Clear it all at once. For the messy, spring transaction extension mechanism
  35. A thorough understanding of how to choose abstract classes or interfaces, baidu Java post must ask interview questions for four consecutive years
  36. Redis common commands
  37. A pair of slippers triggered the murder, crazy God said java series notes
  38. 1、 MySQL basic installation
  39. Monologue of a programmer: despite my ups and downs in my life, Java framework is the foundation of interview
  40. 【大厂面试】三面三问Spring循环依赖,请一定要把这篇看完(建议收藏)
  41. 一线互联网企业中,springboot入门项目
  42. 一篇文带你入门SSM框架Spring开发,帮你快速拿Offer
  43. 【面试资料】Java全集、微服务、大数据、数据结构与算法、机器学习知识最全总结,283页pdf
  44. 【leetcode刷题】24.数组中重复的数字——Java版
  45. 【leetcode刷题】23.对称二叉树——Java版
  46. 【leetcode刷题】22.二叉树的中序遍历——Java版
  47. 【leetcode刷题】21.三数之和——Java版
  48. 【leetcode刷题】20.最长回文子串——Java版
  49. 【leetcode刷题】19.回文链表——Java版
  50. 【leetcode刷题】18.反转链表——Java版
  51. 【leetcode刷题】17.相交链表——Java&python版
  52. 【leetcode刷题】16.环形链表——Java版
  53. 【leetcode刷题】15.汉明距离——Java版
  54. 【leetcode刷题】14.找到所有数组中消失的数字——Java版
  55. 【leetcode刷题】13.比特位计数——Java版
  56. oracle控制用户权限命令
  57. 三年Java开发,继阿里,鲁班二期Java架构师
  58. Oracle必须要启动的服务
  59. 万字长文!深入剖析HashMap,Java基础笔试题大全带答案
  60. 一问Kafka就心慌?我却凭着这份,图灵学院vip课程百度云