浅谈Docker的使用

浅谈docker的使用

一、前言

我写本博客的目的

  • 我是学后台开发的,对于docker的学习是非常有必要的
  • 对于docker来说主要是记其的命令,而写这边博客最重要的目的是以后我有需求的时候随时查阅,如果对于其他有用也可以随时转发。
  • 这篇博客只描述docker最基本的使用,需要深入了解的可能无法满足,若以后有时间我会写一份深入了解docker的博客

二、什么是docker

用比较官方的语言来说,docker是一种虚拟化技术,虚拟化是一种资源管理技术。这种官方的话解释起来也没啥意思,就拿docker的一个图片来说吧,他的图片很生动形象,一条鲸鱼,上面堆着很多的集装箱,

  • 我们的操作系统就相当于这条大鲸鱼,这条大金鱼在docker中我们常称之为宿主机
  • docker就是这上面的集装箱,可以装载不同的东西,如:tomcat,mysql等软件

这些软件互不影响,对我们开发来说好处大大的有,我们不用因此过多的担心什么端口冲突的等无脑问题。

在这里插入图片描述

三、docker的好处

  • 提供一个简单的轻量级的建模方式
  • 职责逻辑分离
  • 兼容软件依赖的环境不同的问题
  • 快速高效的的开发生命周期
  • 鼓励面向服务的框架
    docker和虚拟机的区别。这个大家去百度吧,我不想过多的解释,没必要

四、docker的镜像和组件

在进入正题之前,还是要解释一下什么是镜像,什么是组件

  • 镜像:镜像是构建Docker世界的基石。用户基于镜像来运行自己的容器。
    镜像也是Docker生命周期中的 “构建” 部分。
  • 容器:Docker 可以帮助用户和部署容器,用户只需要把自己的应用程序或
    者服务打包放进容器即可,容器是基于镜像启动起来的,容器中可
    以运行一个或者多个进程,我们可以认为 镜像是Docker生命周期中
    的构建或打包阶段,而容器则是启动或者执行阶段

五、进入正题

1、安装

条件如下:

  • 宿主机需要64位操作系统,不支持32位
  • 需要 Linux3.8 或者更高版本内核
  • 内核必须支持一种适合的存储驱动
  • AUFS
  • vfs
  • btrfs
  • ZFS
  • 默认的存储驱动通常是 Device Manager 或者 AUFS
  • 内容必须支持并开启 cgroup 和 命名空间功能
检查

内核检查

 uname -a

输出如下正常

Linux wangzh 4.15.0-123-generic #126-Ubuntu SMP Wed Oct 21 09:40:11 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

存储驱动检查

ls -l /sys/class/misc/device-mapper

输出结果如下正常

lrwxrwxrwx 1 root root 0 Nov 27 07:13 /sys/class/misc/device-mapper -> ../../devices/virtual/misc/device-mapper

经过上诉检查,我们的虚拟机满足做docker宿主机的要求

2、安装docker引擎
  • 第一步:切换到root用户(这样我们权限就无敌了)
su root

密码是你们虚拟机管理员的密码,别来问我

  • 第二步:卸载旧版本(如果没有安装过就不用卸载)
 apt-get remove docker docker-engine docker.io
  • 第三步:更新系统
 apt-get update
  • 第四步:获取https请求
	 apt-get install apt-transport-https cacertificates curl software-properties-common
  • 第五步:添加dockers官方的密钥
curl -fsSL
https://download.docker.com/linux/ubuntu/gpg | apt-key add -
  • 第六步:设置稳定版docker仓库
add-apt-repository "deb [arch=amd64]
https://download.docker.com/linux/ubuntu
$(lsb_release -cs) stable"
  • 第七步:再次更新系统
apt-get update

第八步:安装dockers ce

apt-get install docker-ce

注意:dockers有两个版本一个是ce版本,一个是ee版本,ee版本是要收费的,ce已经足够我使用了,如果ee不够大家使用,大家交钱去吧*(支持正版哦)

  • 最后一步:测试
docker run hello-world

看到如下界面:恭喜你成功了
在这里插入图片描述

2、配置国内的站点

因为docker访问国外的镜像是很慢的,所所以我们要配置国内的站点,这样用起来就快了了
国内可用的如下:

  • Docker 官方中国区:https://registry.docker-cn.com
  • 网易:http://hub-mirror.c.163.com
  • 中国科技大学:https://docker.mirrors.ustc.edu.cn
  • 阿里云:https://y0qd3iq.mirror.aliyuncs.com

在/etc/docker/下新建一个文件:daemon.json(我记得默认是没有的哦)

vim daemon.json

在这里插入图片描述
重启docker服务

service docker restart

查看是否生效

docker info|grep Mirrors -A 1

在这里插入图片描述
已经生效了

3、使用docker

关闭docker

systemctl stop docker

启动dockers

systemctl start docker

重启docker

systemctl restart docker

查看docker的状态

	systemctl status docker

开机自动启动docker

systemctl enable docker(我没用过)

查看镜像

 docker images

在这里插入图片描述
搜索镜像

docker search 镜像名称

在这里插入图片描述
删除镜像:
我就拿我有的nginx删了给你们做测试吧

 docker rmi IMAGE ID(镜像的id)

注意:如果不能删除镜像:建议停止镜像中的容器,实在不行就删除镜像中的容器(后面会有容器的教程)
在这里插入图片描述
看,这不就删除了吗(废了为师很大的劲,我先删除了容器,)
拉取镜像:(不填写镜像版本,默认拉去的是最新的版本)

docker pull 镜像名称:版本

我来拉去nginx的镜像做测试,拉去最新的吧(可能时间比较长,主要是看你的网速,因为他是从网上拉去下来的)

docker pull nginx

我们查看,发现镜像已经下载好了
在这里插入图片描述
还有一个命令是删除所有镜像,我这就不演示了

docker rmi `docker images -q`

4有关容器的基本命令

查看所有的容器

docker ps -a

查看,正在运行的容器

docker ps

查看最后一次运行的容器

docker ps -l

查看已经停止的容器

docker ps -f status=exited

4.2 容器的创建等相关命令

交互式创建容器

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

我再创建一个nginx容器给大家做测试吧

docker run -it --name=nginx nginx:latest /bin/bash

看,我们就进入了容器
在这里插入图片描述
第二步:我们查看当前目录如下(命令为:ls):
在这里插入图片描述
我们创建一个容器(nginx)并且启动他的命令如下

docker run --name=nginx -p 80:80 -d nginx

如图发现已经启动成功
在这里插入图片描述
退出容器:

exit

停止容器:

docker stop 容器的id

时间问题,就写到这里吧,再见

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值