Docker

目录 

1 什么是docker

2 Docker相关组件

3 Docker安装

3.1 安装docker

​ 3.2 设置ustc 镜像

 3.3 docker 启动与停止

4 docker镜像与容器相关命令

4.1 docker镜像相关命令

 4.2 docker 容器相关命令

4.2.1 查看容器

4.2.2  创建与启动容器

4.2.3 其他先关操作命令

 5 安装rabbitMq

1 什么是docker

docker是一个开源项目,诞生于2013年初,最初是dotCloud公司内部的一个业余项目。它基于Google推出的Go语言实现并遵从 Apache2.0 协议开源。

2 Docker相关组件

2.1 Docker镜像与容器

镜像是构建Docker的基石。用户基于镜像来运行自己的容器。镜像也是Docker声明周期中的构建部分。镜像是基于联合文件系统中的一种层式架构,由一系列指令一步步构建出来。

        Docker可以帮助你构建和部署容器,你只需要把你自己的应用程序或者服务打包放进容器即可。容器是基于镜像的,容器中可以运行一个或多个进程,我们可以认为镜像是Docker声明周期中的构建或者打包阶段,而容器则是启动或者执行阶段。容器基于镜像启动,一旦容器启动完成之后,我们就可以登录到容器中安装自己需要的软件或者服务。(简单理解为:镜像是容器的一种模板,对于一种镜像而言,它可以有多个容器。就像java中的类一样,一个类可以有多个对象,类就就相当于我们的镜像,对象就相当于容器)

3 Docker安装

3.1 安装docker

Docker官方建议在Ubuntu中安装,因为Docker是属于Ubuntu发布的,而且一般Docker出现问题是最先更新或者打补丁的。在很多版本的Centos中是不支持更新最新的一些补丁包的。

但由于我自己的环境是Centos的,所以在这里我是在Centos中安装的,建议安装在Centos7.x以上版本。

1 查看当前内核版本(Docker 要求 CentOS 系统的内核版本高于 3.10 ,首先验证你的服务器是否支持Docker!)

uname -r

我的是4.18.0-305.10.2.el8_4.x86_64符合条件 

2 检查并清除系统残余项

 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

我是新租的服务器,因此没有需要移除的 

3安装下载docker的依赖工具

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

4 添加阿里云的软件源

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

 5 更新yum缓存(为了保证能更新和下载需要的服务)

 sudo yum makecache

 6 安装并启动Docker

 sudo yum -y install docker-ce

 只截取最后部分

 7 查看是否安装成功(显示其版本号)

docker -v 

 8 设置开机自启

 systemctl enable docker

 3.2 设置ustc 镜像

ustc是老牌的镜像服务提供者。ustc的docker镜像加速器速度很快

mkdir -p /etc/docker

vim /etc/docker/daemon.json

在文件中输入如下内容

{

“registry-mirrors”:["https://docker.mirrors.ustc.edu.cn"]

}

 3.3 docker 启动与停止

1 启动docker

systemctl start docker

2 查看docker状态 

 systemctl status docker

3 查看docker信息 

docker info

4 停止docker 

systemctl stop docker

4 docker镜像与容器相关命令

4.1 docker镜像相关命令

1 查看镜像

docker images

  • REPOSITORY:镜像名称
  • TAG:镜像标签
  •  IMAGE ID :镜像id
  • CREATED:镜像的创建时间(不是获取该镜像的日期)
  • SIZE: 镜像大小

2 搜索镜像

docker search 镜像名称

  •  NAME:仓库名称
  • DESCRIPTION:镜像描述
  • STARS:用户评价,反应一个镜像的受欢迎程度
  • OFFICIAL:是否官方
  • AUTOMATED:自动构建,表示该镜像由Docker Hub自动构建流程创建的

3 拉取镜像

docker pull 镜像名称

例如:下载centos7镜像(如果后面不加版本号则是默认下载最新的版本)

docker pull centos:7

再次查看我们的镜像

4 删除镜像 

  • 按照镜像id删除镜像

docker rmi 镜像ID

  • 删除所有镜像

为了测试我又重新拉取了两个镜像 

查看所有的镜像:docker images -q

5d0da3dc9764
05d3c1e2d0c1

删除所有的镜像:docker rmi '5d0da3dc9764 05d3c1e2d0c1' 

 4.2 docker 容器相关命令

4.2.1 查看容器

1 查看正在进行的容器

docker ps

2 查看所有的容器 

docker ps -a

3 查看最后一次运行的容器 

docker ps -l        

4 查看停止的容器

docker ps -f status=exited 

4.2.2  创建与启动容器

创建容器命令:

docker run

 -i :表示运行容器

-t:表示容器启动后会进入其命令行。加入这两个参数之后,容器创建就能登录进去。即分配一个伪终端

--name:为创建的容器命名(容器名称不能重复)

-v:表示目录映射关系(前者是宿主机目录,后者是映射到宿主机上的目录),可以使用多个-v做多个目录或文件映射。注意:最好是做目录映射,在宿主机上做修改,然后共享到容器上

-p:表示端口映射时 ,前者是宿主机端口,后者是容器内的映射端口。可以使用多个-p做端口映射

1 交互式方式创建容器(-i-t可以缩写成-it)

docker run -it --name=容器名称 镜像名称:标签/bin/bash

如果是拉取的最新的镜像,不用加标签

docker run -it --name=容器mycentos1 centos /bin/bash

 发现交互式方式创建容器之后查看容器报错:

原因是:这种方式相当于在宿主机的centos上运行了一个centos的容器,而在这个容器中没有docker,所有不能运行相关的命令了。

2 守护式方式创建容器

 docker run -di --name=mycentos2 centos

 进入容器:

docker exec -it mycentos2 /bin/bash

 注意:

1)用交互方式去创建容器的时,创建完成之后就相当于直接进入到容器中进行操作,就不能对宿主机进行操作了

2)用守护式方式创建容器时,创建完成之后并不会直接进入容器中,此时依然可以对宿主机进行操作,如果想进入容器,可执行上述命令。并且这种方式创建之后再退出,在后台依然是运行的状态

4.2.3 其他先关操作命令

1 关闭容器

docker stop 容器ID

2 开启容器

docker start 容器ID

3 将文件从宿主机目录拷贝到容器目录

docker cp 需要拷贝的文件名称 容器id:需要拷贝到的容器目录

例如:docker cp docker-client 85fa3cef90e1:/usr/local

4 将容器中文件拷贝到宿主机中

docker cp 容器名称:容器目录/文件名称 将要拷贝到宿主机去的文件名称

例如: docker cp mycentos2:/usr/local/docker-client docker-client2
 

 5 目录挂载

可以在创建容器的时候,将宿主机的目录与容器内的目录进行映射,这样就可以通过修改宿主机的某个目录的文件从而去影响容器

docker run -di -v 宿主机目录:容器目录 --name=容器名称 镜像名称

docker run -di -v /usr/local/mydata/:/usr/local/data --name=mycentos3 centos

6 删除容器

注意:不能删除正在运行的容器

docker rm 容器名称/容器id

 7 查看容器IP地址

查看容器内各种数据:

docker inspect 容器名称(容器id)

查看IP地址:

docker inspect --format='{{.NetworkSettings.IPAddress}}' 容器名称

 5 安装rabbitMq

 1 拉取镜像

docker pull rabbitmq

 2 守护方式创建容器并且映射端口

docker run -di --name=rabbitmq -p 5671:5671 -p 5672:5672 -p 4369:4369 -p 25672:25672 -p 15671:15671 -p 15672:15672 rabbitmq

3 进入容器

 docker exec -it rabbitmq /bin/bash 

4 安装rabbitmq的UI插件

rabbitmq-plugins enable rabbitmq_management 

最后成功访问(浏览器上输入:linuxip:15672):

想要了解更多编程小知识,快来关注公众号:爪哇开发吧!每周会不定时的进行更新。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值