文章目录
- *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:镜像(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 卷的技术,可以实现,自动同步
// 容器内创建文件
// 从容器内拷贝文件到主机上(在主机上执行)
总结
每天一个提升小技巧!!!