docker

docker 安装【学习版本】

一、环境确认

1.1 前提条件

目前,CentOS 仅发行版本中的内核支持 Docker.Docker 运行在 CentOS 7 上,要求系统为64位、系统内核版本为 3.10 以上。

1.2 使用 yum 安装(CentOS 7下)

Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker 。

通过 uname -r 命令查看你当前的内核版本

[root@localhost ~]# uname -r

1.3 docker ce和docker ee

从 2017 年 3 月开始 docker 在原来的基础上分为两个分支版本: Docker CE 和 Docker EE。
Docker CE 即社区免费版,Docker EE 即企业版,强调安全,但需付费使用。



怎么确认本地机子上是否有docker

1.输入docker命令
2. 查看docker版本号


[app@yndc-tp-prd-hybris01 ~]$  yum list installed |grep docker
containerd.io.x86_64                        1.4.11-3.1.el7             @docker-ce-stable
docker-ce.x86_64                            3:20.10.9-3.el7            @docker-ce-stable
docker-ce-cli.x86_64                        1:20.10.9-3.el7            @docker-ce-stable
docker-ce-rootless-extras.x86_64            20.10.9-3.el7              @docker-ce-stable
docker-scan-plugin.x86_64                   0.8.0-3.el7                @docker-ce-stable
[app@yndc-tp-prd-hybris01 ~]$ docker --version
Docker version 20.10.9, build c2ea9bc
[app@yndc-tp-prd-hybris01 ~]$ 



1.4 移除旧的版本:

$ sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-selinux \
                  docker-engine-selinux \
                  docker-engine

安装一些必要的系统工具:

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

添加软件源信息:

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

更新 yum 缓存:

yum makecache fast

安装 Docker-ce:(时间有点长)

yum -y install docker-ce

启动 Docker 后台服务

systemctl start docker

测试运行 hello-world

docker run hello-world

运行镜像
由于本地没有hello-world这个镜像,所以会下载一个hello-world的镜像,并在容器内运行。

查看docker状态

systemctl status docker

docker状态
关闭docker

systemctl stop docker

systemctl status docker

重启docker

systemctl restart docker
systemctl status docker

鉴于国内网络问题,后续拉取 Docker 镜像十分缓慢,我们可以需要配置加速器来解决,我使用的是网易的镜像地址:http://hub-mirror.c.163.com
新版的 Docker 使用 /etc/docker/daemon.json 来配置 Daemon。

请在该配置文件中加入(没有该文件的话,请先建一个):

{
  "registry-mirrors": ["http://hub-mirror.c.163.com"]
}

删除 Docker CE
执行以下命令来删除 Docker CE:

$ yum remove docker-ce
$ rm -rf /var/lib/docker

参考:https://www.jianshu.com/p/ef14131fe900

docker镜像操作

列出所有本地docker镜像

docker images


各个选项说明:

REPOSITORY:表示镜像的仓库源

TAG:镜像的标签

IMAGE ID:镜像ID

CREATED:镜像创建时间

SIZE:镜像大小

同一仓库源可以有多个 TAG,代表这个仓库源的不同个版本,我们使用 REPOSITORY:TAG 来定义不同的镜像。



拉取镜像

docker pull 镜像名

搜索镜像

docker search 镜像名

docker search tomcat



NAME:镜像仓库源的名称

DESCRIPTION:镜像的描述

OFFICIAL:是否docker官方发布

删除镜像

docker rmi 镜像名称/镜像ID

docker容器操作

查看容器

docker ps

创建容器
docker run 创建tomcat容器

[root@localhost docker]# docker run --name tomcat -d -p 8080:8080 tomcat
命令说明:

--name tomcat:给容器取个名字
-d:后台运行
-p 8080:8080:将容器的8080端口映射到主机的8080端口,前一个8080是主机端口,后一个8080是tomcat,然后可以在浏览器通过主机ip:8080访问到tomcat。第一个端口8080如果是7070,那么访问的时候就是主机ip:7070.可以更改的哦.最后一个tomcat是要运用的tomcat镜像,就是上面的repository.

我们这里启动了一个tomcat容器,然后在通过命令docker ps查看一下

如果在创建容器过程中出现如下情况,说明容器已经在运行了,你可以删除之后再重新创建:

删除已经在运行的容器

docker rm 容器名|容器id

查看所有容器

docker ps -a

查看最后一次运行的容器

docker ps -l

查看停止的容器

docker ps -f status=exited

停止正在运行的容器

docker stop 容器名称/容器ID

启动容器

docker start 容器名称/容器ID

删除容器

docker rm 容器ID

镜像制作和运行

构建DockerFile:

vim DockerFile


FROM java:8-alpine
ADD sringboot-mybatis-0.0.1-SNAPSHOT.jar app.jar
EXPOSE 80
ENTRYPOINT  ["java","-jar","/app.jar"]



说明:

FROM::项目依赖,需要一个 java 8 版本的 jdk
ADD:第一个参数为 JAR 包的名称, 第二个人参数自定义名称,打包后的名称
EXPOSE:项目运行时的端口
ENTRYPOINT:运行 JAR 包的指令, 如 java -jar app.jar 为 ["java","-jar","/app.jar"]
注意这里的 app.jar 和 ADD 的第二个参数对应


创建镜像:
在当前目录执行 =>

docker build -f /usr/local/mydemo/Dockerfile springboot:1.0 .

其中 springboot:1.0 为设定的镜像名称:版本
注意:


/usr/local/mydemo/Dockerfile为Dockerfile文件 路径
最后的一个 . 为 DockerFile 所在的相对路径【为镜像生成之后的保存路径】

查看镜像是否打包完成

docker images

运行镜像

docker run -d -p 8085:80 springboot:1.0

参考:https://www.jianshu.com/p/faf7af05a808

yum是rpm系统的自动更新程序和软件包安装程序/删除程序。方便通过命令安装需要的软件包,没有命令可直接列出未安装包,但可以通过下面两个命令对比就可得知哪些未安装的了。

(1)yum list指的是列出所有可安装的安装包;
(2) yum list installed指的是列出已安装的安装包;

yum list | grep 包名
yum list installed |grep 包名

centos下安装JDK
https://www.jianshu.com/p/02df416dc6cf

yum-config-manager命令介绍
介绍
yum-config-manager命令是对资源库(/etc/yum.repos.d/下的文件)进行增删改查
系统默认没有安装这个命令,这个命令在yum-utils包里,可以通过yum install -y yum-utils安装

查询仓库内容
查询所有资源库
# yum repolist all
查询已启用的资源库
# yum repolist enabled
查询禁用的资源库
# yum repolist disabled

添加资源库
# yum-config-manager --add-repo repository_url
# yum-config-manager --add-repo https://mirrors.tuna.tsinghua.edu.cn/centos/8/BaseOS/x86_64/os/
启用资源库
# yum-config-manager --enable itemName

禁用资源库
# yum-config-manager --disable itemName
或者直接编辑/etc/yum.repos.d/下对应资源库文件
enabled=0

删除资源库
在/etc/yum.repos.d/下手动删除对应repo文件即可,这会使得该库中所有信息被删除

https://www.cnblogs.com/bulh/articles/12522466.html

device mapper与device-mapper-persistent-data 和 lvm2
前言
在新主机首次安装 Docker Engine-Community之前,需要设置Docker仓库,之后,您可以从仓库安装和更新 Docker。

设置仓库,需要安装所需的软件包。yum-utils 提供了 yum-config-manager ,并且 device mapper 存储驱动程序需要 device-mapper-persistent-data 和 lvm2。

device mapper
Device Mapper 是 Linux2.6 内核中支持逻辑卷管理的通用设备映射机制,它为实现用于存储资源管理的块设备驱动提供了一个高度模块化的内核架构。

LVM
LVM(Logical Volume Manager)逻辑卷管理。

它是对磁盘分区进行管理的一种机制,建立在硬盘和分区之上的一个逻辑层,用来提高磁盘管理的灵活性。通过LVM可将若干个磁盘分区连接为一个整块的卷组(Volume Group),形成一个存储池。可以在卷组上随意创建逻辑卷(Logical Volumes),并进一步在逻辑卷上创建文件系统,与直接使用物理存储在管理上相比,提供了更好灵活性。

device-mapper-persistent-data 和 lvm2
两者都是Device Mapper所需要的。

https://www.runoob.com/docker/centos-docker-install.html

1、Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker 。

通过 uname -r 命令查看你当前的内核版本

 $ uname -r
2、使用 root 权限登录 Centos。确保 yum 包更新到最新。

$ sudo yum update
3、卸载旧版本(如果安装过旧版本的话)

$ sudo yum remove docker  docker-common docker-selinux docker-engine
4、安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的

$ sudo yum install -y yum-utils device-mapper-persistent-data lvm2
5、设置yum源

$ sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
 

6、可以查看所有仓库中所有docker版本,并选择特定版本安装

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


7、安装docker

$ sudo yum install docker-ce  #由于repo中默认只开启stable仓库,故这里安装的是最新稳定版17.12.0
$ sudo yum install <FQPN>  # 例如:sudo yum install docker-ce-17.12.0.ce

8、启动并加入开机启动

$ sudo systemctl start docker
$ sudo systemctl enable docker
9、验证安装是否成功(有client和service两部分表示docker安装启动都成功了)

$ docker version

菜鸟教程:
https://www.runoob.com/docker/centos-docker-install.html

Docker Engine-Community =docker-ce

compose命令详解:
https://www.cnblogs.com/phpk/p/11205467.html
https://www.jianshu.com/p/9e5169d9f1f7
https://www.cnblogs.com/ithubb/p/13455247.html

posted @ 2021-10-21 12:54  金于虎  阅读(50)  评论(0编辑  收藏  举报