Docker入门到精通(一)

文章目录

  • *Docker入门到精通(一)*
  • 一、Docker名词解释
    • 1:镜像(Image)
    • 2:容器(Container)
    • 3:仓库(Repository)
  • 二、安装Docker
    • 1:环境准备(CentOS 7)
    • 2:开始安装(参考官网的API文档)
    • 3:阿里云镜像加速
    • 4:回顾HelloWorld流程
    • 5:Docker底层原理
    • 6:卸载Docker(卸载软件,删除目录)
  • 三、Docker的常用命令
    • 1:命令参考文档
    • 2:帮助命令
    • 3:镜像命令
      • ①docker images(查看所有本地主机上的镜像)
      • ②docker search(搜索镜像)
      • ③docker pull 镜像名[:tag](下载镜像)
      • ④docker rmi 镜像名(删除镜像)
    • 4:容器命令
      • ①docker run [可选参数] image(新建容器并启动)
      • ②docker ps(列出当前正在运行的容器)
      • ③docker rm 容器ID(删除指定容器,不能删除正在运行的容器)
      • ④启动和停止容器的操作
    • 5:常用其它命令
      • ①docker run -d 镜像名(后台启动容器)
      • ②docker logs -tf --tail 10 容器ID (查看10条日志命令)
      • ③docker top 容器ID (查看容器进程信息)
      • ④docker inspect 容器ID (查看镜像的元数据)
      • ⑤docker exec -it 容器ID bashShell (进入当前正在运行的容器)
      • ⑥docker cp 容器ID:容器内路径 目的主机路径(从容器内拷贝文件到主机上,在主机上执行)
  • 总结

Docker入门到精通(一)

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

一、Docker名词解释

1:镜像(Image)

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

2:容器(Container)

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

3:仓库(Repository)

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

二、安装Docker

1:环境准备(CentOS 7)

①查看系统内核(保证内核版本在3.10以上)
Docker入门到精通(一)_第2张图片
②查看Linux环境
Docker入门到精通(一)_第3张图片

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

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

Docker入门到精通(一)_第4张图片
Docker入门到精通(一)_第5张图片
Docker入门到精通(一)_第6张图片
Docker入门到精通(一)_第7张图片
①卸载旧版本的Docker

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

Docker入门到精通(一)_第8张图片
Docker入门到精通(一)_第9张图片
②下载需要的仓库(在线安装)

yum install -y yum-utils

Docker入门到精通(一)_第10张图片
Docker入门到精通(一)_第11张图片
③设置镜像仓库
默认是从国外下载,不要使用官网提供的,非常慢。
推荐使用阿里云提供的镜像地址。

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

在这里插入图片描述
Docker入门到精通(一)_第12张图片
④更新yum软件包索引

yum makecache fast

Docker入门到精通(一)_第13张图片
⑤安装Docker相关组件(docker-ce代表社区版本、docker-ee代表企业版本)

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

Docker入门到精通(一)_第14张图片
Docker入门到精通(一)_第15张图片
Docker入门到精通(一)_第16张图片
⑥启动Docker

systemctl start docker

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

docker version

Docker入门到精通(一)_第17张图片
⑧测试运行Hello World

docker run hello-world

Docker入门到精通(一)_第18张图片
⑨查看一下下载的hello-world镜像

docker images

在这里插入图片描述

3:阿里云镜像加速

Docker入门到精通(一)_第19张图片
Docker入门到精通(一)_第20张图片
①开始配置
Docker入门到精通(一)_第21张图片
②运行四个命令
Docker入门到精通(一)_第22张图片

4:回顾HelloWorld流程

Docker入门到精通(一)_第23张图片
Docker入门到精通(一)_第24张图片

5:Docker底层原理

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

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

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

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

Docker入门到精通(一)_第26张图片

三、Docker的常用命令

1:命令参考文档

Docker入门到精通(一)_第27张图片

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入门到精通(一)_第28张图片
// 可选参数
★docker search mysql --filter=STARS=3000(搜索收藏数不少于3000的Mysql镜像)
在这里插入图片描述

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

// 防止踩坑
在这里插入图片描述
原因:默认的DNS解析不了加速地址,先确定虚拟机能够连接外网,网络适配器选择NAT
Docker入门到精通(一)_第29张图片
Docker入门到精通(一)_第30张图片
// 解释
★如果不写[: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入门到精通(一)_第31张图片
Docker入门到精通(一)_第32张图片
Docker入门到精通(一)_第33张图片

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

// 可选参数
★docker rmi -f $(docker images -aq)(删掉全部镜像,递归删除)
★docker rmi -f 镜像ID1 镜像ID2(删除多个指定镜像:镜像ID,空格来分割)
★docker rmi -f c20987f18b13(删除指定镜像:镜像ID)
Docker入门到精通(一)_第34张图片

4:容器命令

前提:有了镜像才可以创建容器,下载一个CentOS镜像来测试学习一下!
Docker入门到精通(一)_第35张图片
在这里插入图片描述

①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入门到精通(一)_第36张图片

②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入门到精通(一)_第37张图片
★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入门到精通(一)_第38张图片

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

在这里插入图片描述

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

Docker入门到精通(一)_第39张图片

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

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

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

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


总结

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

你可能感兴趣的:(Docker,docker,容器,linux)