Docker入门到精通(一)

Docker入门到精通(一)

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows操作系统的机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
在这里插入图片描述

一、Docker名词解释

1:镜像(Image)

Docker镜像就好比是一个模板,可以通过这个模板来创建容器服务,Tomcat镜像——>run——>Tomcat01容器(提供服务器),通过这个镜像可以创建多个容器(最终服务运行或者项目运行就是在容器中的)。

2:容器(Container)

Docker利用容器技术,独立运行一个或者一个组应用,通过镜像来创建的。目前就可以把这个容器理解为就是一个简易的Linux系统。

3:仓库(Repository)

仓库就是存放镜像的地方,仓库分为公有仓库和私有仓库,需要配置镜像加速(类似于Maven)。

二、安装Docker

1:环境准备(CentOS 7)

①查看系统内核(保证内核版本在3.10以上)
在这里插入图片描述
②查看Linux环境
在这里插入图片描述

2:开始安装(参考官网的API文档)

https://docs.docker.com/get-started/overview/

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
①卸载旧版本的Docker

yum remove docker \
           docker-client \
           docker-client-latest \
           docker-common \
           docker-latest \
           docker-latest-logrotate \
           docker-logrotate \
           docker-engine

在这里插入图片描述
在这里插入图片描述
②下载需要的仓库(在线安装)

yum install -y yum-utils

在这里插入图片描述
在这里插入图片描述
③设置镜像仓库
默认是从国外下载,不要使用官网提供的,非常慢。
推荐使用阿里云提供的镜像地址。

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

在这里插入图片描述
在这里插入图片描述
④更新yum软件包索引

yum makecache fast

在这里插入图片描述
⑤安装Docker相关组件(docker-ce代表社区版本、docker-ee代表企业版本)

yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
⑥启动Docker

systemctl start docker

在这里插入图片描述
⑦查看Docker版本

docker version

在这里插入图片描述
⑧测试运行Hello World

docker run hello-world

在这里插入图片描述
⑨查看一下下载的hello-world镜像

docker images

在这里插入图片描述

3:阿里云镜像加速

在这里插入图片描述
在这里插入图片描述
①开始配置
在这里插入图片描述
②运行四个命令
在这里插入图片描述

4:回顾HelloWorld流程

在这里插入图片描述
在这里插入图片描述

5:Docker底层原理

Docker是一个C/S结构的系统,Docker的守护进程运行在主机上,通过Socket从客户端访问。DockerServer接收到Docker-Client的指令,就会执行这个命令。
在这里插入图片描述

6:卸载Docker(卸载软件,删除目录)

yum remove docker-ce docker-ce-cli containerd.io

rm -rf /var/lib/docker
rm -rf /var/lib/containerd

在这里插入图片描述

三、Docker的常用命令

1:命令参考文档

在这里插入图片描述

2:帮助命令

1)docker version(显示Docker的版本信息)
(2)docker info(显示Docker的系统信息,包括镜像和容器的数量)
(3)docker 命令 --help(帮助命令)

3:镜像命令

①docker images(查看所有本地主机上的镜像)

在这里插入图片描述
// 解释
★REPOSITORY:镜像的仓库源
★TAG:镜像的标签
★IMAGE ID:镜像的ID
★CREATED:镜像的创建时间
★SIZE:镜像的大小
// 可选参数
★docker images -a(列出所有镜像)
★docker images -q(只显示镜像的ID)

②docker search(搜索镜像)

在这里插入图片描述
// 可选参数
★docker search mysql --filter=STARS=3000(搜索收藏数不少于3000的Mysql镜像)
在这里插入图片描述

③docker pull 镜像名[:tag](下载镜像)

// 防止踩坑
在这里插入图片描述
原因:默认的DNS解析不了加速地址,先确定虚拟机能够连接外网,网络适配器选择NAT
在这里插入图片描述
在这里插入图片描述
// 解释
★如果不写[:tag],默认下载最新版本(latest)
★从上到下分层下载(Pull complete),docker images的核心,联合文件系统
★Digest:签名信息,防伪标志
★docker.io:真实地址,即docker pull mysql等价于docker pull docker.io/library/mysql:latest
// 可选参数
★指定版本下载(Docker Hub中该版本一定是存在的):docker pull mysql:5.7
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

④docker rmi 镜像名(删除镜像)

// 可选参数
★docker rmi -f $(docker images -aq)(删掉全部镜像,递归删除)
★docker rmi -f 镜像ID1 镜像ID2(删除多个指定镜像:镜像ID,空格来分割)
★docker rmi -f c20987f18b13(删除指定镜像:镜像ID)
在这里插入图片描述

4:容器命令

前提:有了镜像才可以创建容器,下载一个CentOS镜像来测试学习一下!
在这里插入图片描述
在这里插入图片描述

①docker run [可选参数] image(新建容器并启动)

// 参数说明

--name=“Name”(容器名字,tomcat01、tomcat02用来区分容器)
-d(后台方式运行,例如Jar包)
-it(使用交互方式运行,进入容器查看内容)

-p(小写,指定容器的端口,8080:8080跟主机映射起来)
-p 主机端口:容器端口(推荐)
-p ip:主机端口:容器端口(不推荐)
-p 容器端口(不推荐)
容器端口(不推荐)

-P(大写,随机指定端口)

// 测试
★docker run -it centos /bin/bash(启动并进入容器,基础版本,很多命令都是不完善的)
在这里插入图片描述
★Ctrl+P+Q(快捷键,从容器中退回主机,容器不停止退出)
★exit(从容器中退回主机,容器停止并退出)
在这里插入图片描述

②docker ps(列出当前正在运行的容器)

在这里插入图片描述
// 参数说明
★docker ps -a(列出当前正在运行的容器,顺便带出历史运行过的容器)
在这里插入图片描述
★docker ps -n=?(显示最近创建的容器,指定个数)
在这里插入图片描述
★docker ps -q(只显示容器的编号)
在这里插入图片描述

③docker rm 容器ID(删除指定容器,不能删除正在运行的容器)

// 可选参数
★docker rm -f 容器ID(可以删除正在运行的容器)
★docker rm -f $(docker ps -aq)(删掉全部容器,递归删除)
在这里插入图片描述
★docker ps -a -q|xargs docker rm(删掉全部容器,递归删除)

④启动和停止容器的操作

// 相关命令
★docker start 容器ID(启动容器)
★docker restart 容器ID(重启容器)
★docker stop 容器ID(停止当前正在运行的容器)
★docker kill 容器ID(强制停止当前容器)

5:常用其它命令

①docker run -d 镜像名(后台启动容器)

// 常见的坑:docker ps 看不到后台启动的容器(发现centos停止了)
原因:容器使用后台运行,就必须要有一个前台进程,docker发现没有应用,就会自动停止。例如,启动Nginx,容器启动后,发现自己没有提供服务,就会立刻停止,就是没有程序了。

②docker logs -tf --tail 10 容器ID (查看10条日志命令)

★docker logs -tf 容器ID (查看全部日志命令)
在这里插入图片描述

③docker top 容器ID (查看容器进程信息)

在这里插入图片描述

④docker inspect 容器ID (查看镜像的元数据)

在这里插入图片描述

⑤docker exec -it 容器ID bashShell (进入当前正在运行的容器)

// 我们通常容器都是使用后台方式运行的,需要进入容器,修改一些配置
★方式一:docker exec -it 容器ID /bin/bash(进入容器后开启一个新的终端,可以在里面操作,常用)
在这里插入图片描述
★方式二:docker attach 容器ID(进入容器正在执行的终端,不会启动新的进程)

⑥docker cp 容器ID:容器内路径 目的主机路径(从容器内拷贝文件到主机上,在主机上执行)

// 拷贝是一个手动的过程,未来使用 -v 卷的技术,可以实现,自动同步
// 容器内创建文件
在这里插入图片描述
// 从容器内拷贝文件到主机上(在主机上执行)
在这里插入图片描述


总结

每天一个提升小技巧!!!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小辰哥哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值