Docker入门学习及其安装

时间:2022-06-25
本文章向大家介绍Docker入门学习及其安装,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

1、Docker是一个开源的应用容器引擎,基于Go语言并遵从Apache2.0协议开源。Docker可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的Linux机器上面,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口,更重要的是容器性能开销极低。

2、Docker支持将软件编译成一个镜像,然后在镜像中各种软件做好配置,将镜像发布出去,其他使用者可以直接使用这个镜像。运行中的这个镜像称为容器,容器启动是非常快速的。类似windows里面的ghost操作系统,安装好后什么都有了。 3、Docker的核心概念:

a、docker主机(Host):安装了Docker程序的机器(Docker直接安装在操作系统之上); b、docker客户端(Client):连接docker主机进行操作; c、docker仓库(Registry):用来保存各种打包好的软件镜像; d、docker镜像(Images):软件打包好的镜像;放在docker仓库中; e、docker容器(Container):镜像启动后的实例称为一个容器;容器是独立运行的一个或一组应用。容器是完全使用沙箱机制,相互之间不会有任何接口,更重要的是容器性能开销极低。

4、使用Docker的步骤:

(1)、安装Docker (2)、去Docker仓库找到这个软件对应的镜像; (3)、使用Docker运行这个镜像,这个镜像就会生成一个Docker容器; (4)、对容器的启动停止就是对软件的启动停止;

5、安装Docker的步骤。

a、检查内核版本,必须是3.10及以上。Docker要求Centos系统的内核版本高于3.10。 uname -r b、安装docker。 yum install docker c、输入y确认安装。 d、启动docker。 [root@slaver1 ~]# systemctl start docker [root@slaver1 ~]# docker -v Docker version 1.12.6, build 3e8e77d/1.12.6 e、开机启动docker。 [root@slaver1 ~]# systemctl enable docker Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service. f、停止docker。 systemctl stop docker

由于我的linux的内核不是3.10以上的,我的是2.6.32-358.el6.i686,所以要升级一下。

升级软件包以及内核(升级虚拟机内核)。必须使用root权限,不然报错,说没权限的。请注意,必须联网的,不然没法下载升级。

使用yum update貌似没有什么用,下载了东西挺多。 参考了网址https://blog.csdn.net/jeffleo/article/details/70904150,将内核升级到了3.10以上版本。

后来发现,我的CentOs是32的,所以可能满足不了安装Docker的需求。

所以直接下载了最新版的CentOs7.0版本的,安装步骤和之前的不一样,这里给一个链接吧https://blog.csdn.net/babyxue/article/details/80970526,就不自己写了。

安装CentOs6.0版本的链接https://blog.csdn.net/weixin_42873937/article/details/81840094。哈哈哈,折腾了一下午,所以能别用32位,就别用32的,不然最新的东西还是不支持啊。

6、确定了自己CentOS可以安装部署Docker,那就开始搞吧,CentOS的界面版本,确实比之前的好看了,安装过程也美化了很多的。

安装过程如下所示:

  1 [root@slaver4 package]# yum install docker
  2 已加载插件:fastestmirror, langpacks
  3 Loading mirror speeds from cached hostfile
  4  * base: centos.ustc.edu.cn
  5  * extras: centos.ustc.edu.cn
  6  * updates: ap.stykers.moe
  7 正在解决依赖关系
  8 --> 正在检查事务
  9 ---> 软件包 docker.x86_64.2.1.13.1-96.gitb2f74b2.el7.centos 将被 安装
 10 --> 正在处理依赖关系 docker-common = 2:1.13.1-96.gitb2f74b2.el7.centos,它被软件包 2:docker-1.13.1-96.gitb2f74b2.el7.centos.x86_64 需要
 11 --> 正在处理依赖关系 docker-client = 2:1.13.1-96.gitb2f74b2.el7.centos,它被软件包 2:docker-1.13.1-96.gitb2f74b2.el7.centos.x86_64 需要
 12 --> 正在处理依赖关系 subscription-manager-rhsm-certificates,它被软件包 2:docker-1.13.1-96.gitb2f74b2.el7.centos.x86_64 需要
 13 --> 正在检查事务
 14 ---> 软件包 docker-client.x86_64.2.1.13.1-96.gitb2f74b2.el7.centos 将被 安装
 15 ---> 软件包 docker-common.x86_64.2.1.13.1-96.gitb2f74b2.el7.centos 将被 安装
 16 --> 正在处理依赖关系 skopeo-containers >= 1:0.1.26-2,它被软件包 2:docker-common-1.13.1-96.gitb2f74b2.el7.centos.x86_64 需要
 17 --> 正在处理依赖关系 oci-umount >= 2:2.3.3-3,它被软件包 2:docker-common-1.13.1-96.gitb2f74b2.el7.centos.x86_64 需要
 18 --> 正在处理依赖关系 oci-systemd-hook >= 1:0.1.4-9,它被软件包 2:docker-common-1.13.1-96.gitb2f74b2.el7.centos.x86_64 需要
 19 --> 正在处理依赖关系 oci-register-machine >= 1:0-5.13,它被软件包 2:docker-common-1.13.1-96.gitb2f74b2.el7.centos.x86_64 需要
 20 --> 正在处理依赖关系 container-storage-setup >= 0.9.0-1,它被软件包 2:docker-common-1.13.1-96.gitb2f74b2.el7.centos.x86_64 需要
 21 --> 正在处理依赖关系 container-selinux >= 2:2.51-1,它被软件包 2:docker-common-1.13.1-96.gitb2f74b2.el7.centos.x86_64 需要
 22 --> 正在处理依赖关系 atomic-registries,它被软件包 2:docker-common-1.13.1-96.gitb2f74b2.el7.centos.x86_64 需要
 23 ---> 软件包 subscription-manager-rhsm-certificates.x86_64.0.1.21.10-3.el7.centos 将被 安装
 24 --> 正在检查事务
 25 ---> 软件包 atomic-registries.x86_64.1.1.22.1-26.gitb507039.el7.centos 将被 安装
 26 --> 正在处理依赖关系 python-pytoml,它被软件包 1:atomic-registries-1.22.1-26.gitb507039.el7.centos.x86_64 需要
 27 ---> 软件包 container-selinux.noarch.2.2.99-1.el7_6 将被 安装
 28 ---> 软件包 container-storage-setup.noarch.0.0.11.0-2.git5eaf76c.el7 将被 安装
 29 ---> 软件包 containers-common.x86_64.1.0.1.35-2.git404c5bd.el7.centos 将被 安装
 30 ---> 软件包 oci-register-machine.x86_64.1.0-6.git2b44233.el7 将被 安装
 31 ---> 软件包 oci-systemd-hook.x86_64.1.0.2.0-1.git05e6923.el7_6 将被 安装
 32 ---> 软件包 oci-umount.x86_64.2.2.3.4-2.git87f9237.el7 将被 安装
 33 --> 正在检查事务
 34 ---> 软件包 python-pytoml.noarch.0.0.1.14-1.git7dea353.el7 将被 安装
 35 --> 解决依赖关系完成
 36 
 37 依赖关系解决
 38 
 39 ================================================================================================================================
 40  Package                                        架构           版本                                       源               大小
 41 ================================================================================================================================
 42 正在安装:
 43  docker                                         x86_64         2:1.13.1-96.gitb2f74b2.el7.centos          extras           18 M
 44 为依赖而安装:
 45  atomic-registries                              x86_64         1:1.22.1-26.gitb507039.el7.centos          extras           35 k
 46  container-selinux                              noarch         2:2.99-1.el7_6                             extras           39 k
 47  container-storage-setup                        noarch         0.11.0-2.git5eaf76c.el7                    extras           35 k
 48  containers-common                              x86_64         1:0.1.35-2.git404c5bd.el7.centos           extras           21 k
 49  docker-client                                  x86_64         2:1.13.1-96.gitb2f74b2.el7.centos          extras          3.9 M
 50  docker-common                                  x86_64         2:1.13.1-96.gitb2f74b2.el7.centos          extras           96 k
 51  oci-register-machine                           x86_64         1:0-6.git2b44233.el7                       extras          1.1 M
 52  oci-systemd-hook                               x86_64         1:0.2.0-1.git05e6923.el7_6                 extras           34 k
 53  oci-umount                                     x86_64         2:2.3.4-2.git87f9237.el7                   extras           32 k
 54  python-pytoml                                  noarch         0.1.14-1.git7dea353.el7                    extras           18 k
 55  subscription-manager-rhsm-certificates         x86_64         1.21.10-3.el7.centos                       updates         207 k
 56 
 57 事务概要
 58 ================================================================================================================================
 59 安装  1 软件包 (+11 依赖软件包)
 60 
 61 总下载量:23 M
 62 安装大小:81 M
 63 Is this ok [y/d/N]: y
 64 Downloading packages:
 65 警告:/var/cache/yum/x86_64/7/extras/packages/container-selinux-2.99-1.el7_6.noarch.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID f4a80eb5: NOKEY
 66 container-selinux-2.99-1.el7_6.noarch.rpm 的公钥尚未安装
 67 (1/12): container-selinux-2.99-1.el7_6.noarch.rpm                                                        |  39 kB  00:00:05     
 68 (2/12): atomic-registries-1.22.1-26.gitb507039.el7.centos.x86_64.rpm                                     |  35 kB  00:00:06     
 69 (3/12): container-storage-setup-0.11.0-2.git5eaf76c.el7.noarch.rpm                                       |  35 kB  00:00:06     
 70 (4/12): containers-common-0.1.35-2.git404c5bd.el7.centos.x86_64.rpm                                      |  21 kB  00:00:00     
 71 (5/12): docker-common-1.13.1-96.gitb2f74b2.el7.centos.x86_64.rpm                                         |  96 kB  00:00:00     
 72 (6/12): oci-register-machine-0-6.git2b44233.el7.x86_64.rpm                                               | 1.1 MB  00:00:00     
 73 (7/12): oci-systemd-hook-0.2.0-1.git05e6923.el7_6.x86_64.rpm                                             |  34 kB  00:00:00     
 74 (8/12): oci-umount-2.3.4-2.git87f9237.el7.x86_64.rpm                                                     |  32 kB  00:00:00     
 75 (9/12): docker-client-1.13.1-96.gitb2f74b2.el7.centos.x86_64.rpm                                         | 3.9 MB  00:00:00     
 76 (10/12): python-pytoml-0.1.14-1.git7dea353.el7.noarch.rpm                                                |  18 kB  00:00:00     
 77 (11/12): docker-1.13.1-96.gitb2f74b2.el7.centos.x86_64.rpm                                               |  18 MB  00:00:07     
 78 subscription-manager-rhsm-cert FAILED                                          
 79 http://mirror.lzu.edu.cn/centos/7.6.1810/updates/x86_64/Packages/subscription-manager-rhsm-certificates-1.21.10-3.el7.centos.x86_64.rpm: [Errno 14] curl#6 - "Could not resolve host: mirror.lzu.edu.cn; Unknown error"
 80 正在尝试其它镜像。
 81 subscription-manager-rhsm-certificates-1.21.10-3.el7.centos.x86_64.rpm 的公钥尚未安装========-]  98 kB/s |  23 MB  00:00:02 ETA 
 82 (12/12): subscription-manager-rhsm-certificates-1.21.10-3.el7.centos.x86_64.rpm                          | 207 kB  00:00:04     
 83 --------------------------------------------------------------------------------------------------------------------------------
 84 总计                                                                                            1.0 MB/s |  23 MB  00:00:23     
 85 从 file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 检索密钥
 86 导入 GPG key 0xF4A80EB5:
 87  用户ID     : "CentOS-7 Key (CentOS 7 Official Signing Key) <security@centos.org>"
 88  指纹       : 6341 ab27 53d7 8a78 a7c2 7bb1 24c6 a8a7 f4a8 0eb5
 89  软件包     : centos-release-7-6.1810.2.el7.centos.x86_64 (@anaconda)
 90  来自       : /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
 91 是否继续?[y/N]:y
 92 Running transaction check
 93 Running transaction test
 94 Transaction test succeeded
 95 Running transaction
 96   正在安装    : 2:container-selinux-2.99-1.el7_6.noarch                                                                                                                                                                    1/12 
 97   正在安装    : subscription-manager-rhsm-certificates-1.21.10-3.el7.centos.x86_64                                                                                                                                         2/12 
 98   正在安装    : python-pytoml-0.1.14-1.git7dea353.el7.noarch                                                                                                                                                               3/12 
 99   正在安装    : 1:atomic-registries-1.22.1-26.gitb507039.el7.centos.x86_64                                                                                                                                                 4/12 
100   正在安装    : 1:containers-common-0.1.35-2.git404c5bd.el7.centos.x86_64                                                                                                                                                  5/12 
101   正在安装    : container-storage-setup-0.11.0-2.git5eaf76c.el7.noarch                                                                                                                                                     6/12 
102   正在安装    : 1:oci-register-machine-0-6.git2b44233.el7.x86_64                                                                                                                                                           7/12 
103   正在安装    : 1:oci-systemd-hook-0.2.0-1.git05e6923.el7_6.x86_64                                                                                                                                                         8/12 
104   正在安装    : 2:oci-umount-2.3.4-2.git87f9237.el7.x86_64                                                                                                                                                                 9/12 
105   正在安装    : 2:docker-common-1.13.1-96.gitb2f74b2.el7.centos.x86_64                                                                                                                                                    10/12 
106   正在安装    : 2:docker-client-1.13.1-96.gitb2f74b2.el7.centos.x86_64                                                                                                                                                    11/12 
107   正在安装    : 2:docker-1.13.1-96.gitb2f74b2.el7.centos.x86_64                                                                                                                                                           12/12 
108   验证中      : 2:oci-umount-2.3.4-2.git87f9237.el7.x86_64                                                                                                                                                                 1/12 
109   验证中      : 2:docker-1.13.1-96.gitb2f74b2.el7.centos.x86_64                                                                                                                                                            2/12 
110   验证中      : 2:docker-client-1.13.1-96.gitb2f74b2.el7.centos.x86_64                                                                                                                                                     3/12 
111   验证中      : 1:oci-systemd-hook-0.2.0-1.git05e6923.el7_6.x86_64                                                                                                                                                         4/12 
112   验证中      : 1:oci-register-machine-0-6.git2b44233.el7.x86_64                                                                                                                                                           5/12 
113   验证中      : container-storage-setup-0.11.0-2.git5eaf76c.el7.noarch                                                                                                                                                     6/12 
114   验证中      : 2:docker-common-1.13.1-96.gitb2f74b2.el7.centos.x86_64                                                                                                                                                     7/12 
115   验证中      : 1:containers-common-0.1.35-2.git404c5bd.el7.centos.x86_64                                                                                                                                                  8/12 
116   验证中      : python-pytoml-0.1.14-1.git7dea353.el7.noarch                                                                                                                                                               9/12 
117   验证中      : 1:atomic-registries-1.22.1-26.gitb507039.el7.centos.x86_64                                                                                                                                                10/12 
118   验证中      : subscription-manager-rhsm-certificates-1.21.10-3.el7.centos.x86_64                                                                                                                                        11/12 
119   验证中      : 2:container-selinux-2.99-1.el7_6.noarch                                                                                                                                                                   12/12 
120 
121 已安装:
122   docker.x86_64 2:1.13.1-96.gitb2f74b2.el7.centos                                                                                                                                                                               
123 
124 作为依赖被安装:
125   atomic-registries.x86_64 1:1.22.1-26.gitb507039.el7.centos             container-selinux.noarch 2:2.99-1.el7_6                                          container-storage-setup.noarch 0:0.11.0-2.git5eaf76c.el7            
126   containers-common.x86_64 1:0.1.35-2.git404c5bd.el7.centos              docker-client.x86_64 2:1.13.1-96.gitb2f74b2.el7.centos                           docker-common.x86_64 2:1.13.1-96.gitb2f74b2.el7.centos              
127   oci-register-machine.x86_64 1:0-6.git2b44233.el7                       oci-systemd-hook.x86_64 1:0.2.0-1.git05e6923.el7_6                               oci-umount.x86_64 2:2.3.4-2.git87f9237.el7                          
128   python-pytoml.noarch 0:0.1.14-1.git7dea353.el7                         subscription-manager-rhsm-certificates.x86_64 0:1.21.10-3.el7.centos            
129 
130 完毕!
131 [root@slaver4 package]# 

7、安装完成以后就可以启动docker了。启动docker。

docker -v查看版本号。

设置开机启动docker。

停止docker。

8、Docker的常用命令以及操作。

操作

命令

说明

检索

docker search 关键字 eg:docker search redis

我们经常去docker hub上检索镜像的详细信息,如镜像的TAG。

拉取

docker pull 镜像名:tag

:tag是可选的,tag表示标签,多为软件的版本,默认是latest

列表

docker images

查看所有本地镜像

删除

docker rmi image-id

删除指定的本地镜像

docker search mysql检索mysql的服务。先检索再拉取。

docker pull mysql拉取mysql。如果不选择版本,是默认下载最新版本的,所以建议选择一些版本tag的。

docker hub官网:https://hub.docker.com/。选择自己的版本即可。

Docker images查看所有的镜像。

删除指定的本地镜像,docker rmi image-id。

9、docker的容器操作。 软件镜像(微信安装程序)---->运行镜像---->产生一个容器(正在运行的软件,运行的微信);

 1 1、搜索镜像。
 2     [root@slaver4 /]# docker search tomcat
 3 2、拉取镜像。
 4     拉取tomcat的最新镜像。
 5         [root@slaver4 /]# docker pull tomcat
 6     拉取tomcat的指定镜像。    
 7         [root@slaver4 /]# docker pull tomcat:8.5.42-jdk8-adoptopenjdk-hotspot
 8     验证拉取的镜像是否已经拉取完毕。
 9         [root@slaver4 /]# docker images
10 3、根据镜像启动容器。
11     [root@slaver4 /]# docker run --name tomcat8.5  -d tomcat:latest
12     [root@slaver4 /]# docker run --name tomcat8.5 -d tomcat:8.5.42-jdk8-adoptopenjdk-hotspot
13 4、docker ps。
14     查看运行中的容器。
15     [root@slaver4 /]# docker ps
16 5、停止运行中的容器。
17     docker stop  容器的id。
18     [root@slaver4 /]# docker stop e2f59739e670
19     停止了以后检查是否还有启动的。
20     [root@slaver4 /]# docker ps
21 6、查看所有的容器。
22     docker ps -a
23     [root@slaver4 /]# docker ps -a
24 7、启动容器。
25     docker start 容器id。
26     [root@slaver4 /]# docker start e2f59739e670
27 8、删除一个容器。
28     docker rm 容器id
29     [root@slaver4 /]# docker rm e2f59739e670
30 9、启动一个做了端口映射的tomcat。下载的tomcat镜像一运行就产生了一个tomcat容器。
31     [root@localhost ~]# docker run -d -p 8080:8080 tomcat
32     -d:后台运行
33     -p: 将主机的端口映射到容器的一个端口    主机端口(虚拟机端口):docker容器内部的端口
34     [root@slaver4 ~]# docker run --name tomcat8.5 -d -p 8080:8080 tomcat:8.5.42-jdk8-adoptopenjdk-hotspot
35     可以在浏览器查看,tomcat是否正常:
36         http://192.168.110.133:8080/
37 10、为了演示简单关闭了linux的防火墙。
38     service firewalld status ;查看防火墙状态
39     service firewalld stop:关闭防火墙
40 11、查看容器的日志。
41     docker logs container-name/container-id
42     [root@slaver4 ~]# docker logs 3107bc354e9b

10、mysql的安装:

 1 1、搜索mysql的镜像
 2     [root@slaver4 /]# docker search mysql
 3 2、去docker hub找到https://hub.docker.com 对应版本的镜像。然后下载。
 4     [root@slaver4 /]# docker pull mysql:5.7.26
 5 3、正确的启动mysql,然后检查mysql是否启动成功。    
 6     案例:docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag
 7         [root@slaver4 /]# docker run --name mysql5.7 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7.26    
 8     检查是否启动:
 9         [root@slaver4 /]# docker ps
10     需要做端口映射的才可以在虚拟机外面访问:
11         [root@slaver4 /]# docker run -p 3306:3306 --name mysql5.7 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7.26
12     检查是否启动:然后可以在外部的navicat访问一下看是否可以连通。
13         [root@slaver4 /]# docker ps

待续.....