半小时入门Docker理论与实战

2 篇文章 0 订阅
2 篇文章 0 订阅

目录

前言:

一、什么是docker

二、为什么要使用docker

三、dockerfile 、docker镜像、 docker 容器

​四、安装Docker

4.1系统要求

4.2卸载旧版

4.3 安装依赖

4.4 安装 

4.5 配置镜像加速

五、镜像常用操作

查找镜像:

下载镜像:

查看镜像:

删除镜像:

获取元信息:

六、容器常用操作

​七、安装Mysql


 

前言:

学习一个新东西一定要知道这个东西是什么,要解决什么样的问题。

本文只是写给docker初学者,如果你已经是一个老鸟,请点击以下链接深入学习。

https://vuepress.mirror.docker-practice.com/introduction/what.html

一、什么是docker

官方的解释我就不写了,可以访问以上的网址,解释得比较详细。

我只谈谈自己的理解,我们一般程序是运行在操作系统中的比如windows、linux或者macOS。如果大家都使用过vmware就知道,我们可以在当前操作系统中虚拟出N个其他操作系统。其实简单理解,Docker也是一样,可以在当前操作系统中虚拟出N个其他系统,他跟vmware的作用是一样的,但是系统是极简的。

二、为什么要使用docker

使用docker的主要原因其实就是开发过程中一个常见的问题是环境一致性问题。由于开发环境、测试环境、生产环境不一致,导致有些 bug 并未在开发过程中被发现。而 Docker 的镜像提供了除内核外完整的运行时环境,确保了应用运行环境一致性,从而不会再出现 「这段代码在我机器上没问题啊」这类问题。能做到这样的原因是,一个docker容器是一个沙箱一样的隔离环境,可以理解为我们已经预编译好了一切,连运行的环境都已经预编好了。

我们可以发现,传统的部署方式,如果环境稍微有不一样就可能根本跑不起来,但是docker能固化运行环境。

三、dockerfile 、docker镜像、 docker 容器

dockerfile比较好理解,其实就是用来构建镜像的配置文件。具体这个镜像最后做成什么样子是由dockfile决定的。

两个类比可以很好的理解什么是docker镜像 docker容器。

  1.  同样以vmware为例子,我们在vmvare中新建虚拟机的时候需要导入CentOS-7-x86_64-DVD-1511.iso 这样的系统文件,这个文件就可以看做是docker 镜像,那么我们导入之后,运行起来的虚拟机就可以看做是docker容器,只是,docker容器中已经把要运行的软件已经安装好了。
  2. 如果没有使用过vmvare,没有关系,我们还有一个例子。docker镜像就好似我们的Class类,容器呢就像我们Class new 出来的实例。可把镜像看做是模板,容器就是通过这个模板造出来的实际的东西。

四、安装Docker

4.1系统要求

以Centos7为例,且Docker 要求操作系统必须为64位,且centos内核版本为3.1及以上。

查看系统内核版本信息:

uname -r

4.2卸载旧版

卸载旧版本:

yum remove docker docker-common docker-selinux docker-engine

yum remove docker-ce

卸载后将保留/var/lib/docker的内容(镜像、容器、存储卷和网络等)。

rm -rf /var/lib/docker

4.3 安装依赖

1.安装依赖软件包

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

#安装前可查看device-mapper-persistent-data和lvm2是否已经安装

rpm -qa|grep device-mapper-persistent-data

rpm -qa|grep lvm2

2.设置yum源

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

3.更新yum软件包索引

yum makecache fast

4.4 安装 

yum install docker-ce -y

#安装指定版本docker-ce可使用以下命令查看

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

# 安装完成之后可以使用命令查看

docker version

4.5 配置镜像加速

这里使用阿里云的免费镜像加速服务,也可以使用其他如时速云、网易云等

1.注册登录开通阿里云容器镜像服务

2.查看控制台,招到镜像加速器并复制自己的加速器地址

3.找到/etc/docker目录下的daemon.json文件,没有则直接vi daemon.json

4.加入以下配置

#填写自己的加速器地址

{

  "registry-mirrors": ["https://zfzbet67.mirror.aliyuncs.com"]

}

5.通知systemd重载此配置文件;

systemctl daemon-reload

6.重启docker服务

#填写自己的加速器地址

{

  "registry-mirrors": ["https://zfzbet67.mirror.aliyuncs.com"]

}

systemctl daemon-reload

systemctl restart docker

五、镜像常用操作

查找镜像:

docker search 关键词

#搜索docker hub网站镜像的详细信息

下载镜像:

docker pull 镜像名:TAG

# Tag表示版本,有些镜像的版本显示latest,为最新版本

查看镜像:

docker images

# 查看本地所有镜像

删除镜像:

docker rmi -f 镜像ID或者镜像名:TAG

# 删除指定本地镜像

# -f 表示强制删除

获取元信息:

docker inspect 镜像ID或者镜像名:TAG

# 获取镜像的元信息,详细信息

六、容器常用操作

运行:

docker run --name 容器名 -i -t -p 主机端口:容器端口 -d -v 主机目录:容器目录:ro 镜像ID或镜像名:TAG

# --name 指定容器名,可自定义,不指定自动命名

# -i 以交互模式运行容器

# -t 分配一个伪终端,即命令行,通常-it组合来使用

# -p 指定映射端口,讲主机端口映射到容器内的端口

# -d 后台运行容器

# -v 指定挂载主机目录到容器目录,默认为rw读写模式,ro表示只读

容器列表:

docker ps -a -q

# docker ps查看正在运行的容器

# -a 查看所有容器(运行中、未运行)

# -q 只查看容器的ID

启动容器:

docker start 容器ID或容器名

停止容器:

docker stop 容器ID或容器名

删除容器:

docker rm -f 容器ID或容器名

# -f 表示强制删除

查看日志:

docker logs 容器ID或容器名

进入正在运行容器:

docker exec -it 容器ID或者容器名 /bin/bash

# 进入正在运行的容器并且开启交互模式终端

# /bin/bash是固有写法,作用是因为docker后台必须运行一个进程,否则容器就会退出,在这里表示启动容器后启动bash。

# 也可以用docker exec在运行中的容器执行命令

拷贝文件:

docker cp 主机文件路径 容器ID或容器名:容器路径 #主机中文件拷贝到容器中

docker cp 容器ID或容器名:容器路径 主机文件路径 #容器中文件拷贝到主机中

获取容器元信息:

docker inspect 容器ID或容器名

七、安装Mysql

docker pull mysql:5.7

#创建三个要挂载的目录

mkdir -p /my/mysql/conf

mkdir -p /my/mysql/data

mkdir -p /my/mysql/logs

#复制文件 并修改字符

docker cp mysql:/etc/mysql/mysql.conf.d/mysqld.cnf /my/mysql/conf/

vi /my/mysql/conf/mysqld.conf

character-set-server=utf8

#最终启动命令

docker run --name mysql -p 3306:3306 -v /my/mysql/conf:/etc/mysql/mysql.conf.d/ -v /my/mysql/data:/var/lib/mysql  -v /my/mysql/logs:/logs  -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7

PS:Docker File 的命令可以参考这篇文章:https://www.cnblogs.com/linjiqin/p/8735230.html

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值