Docker入门

写在前面
本篇教程所使用环境
CentOS 8.2
docker官网
https://www.docker.com
官方文档地址
https://docs.docker.com/
github地址
https://github.com/docker/docker-ce
docker hub 地址
https://hub.docker.com/

什么是docker

  • docker是一个软件,可以运行在window、linux、mac等各种操作系统上。
  • docker 是一个开源的应用容器引擎,基于Go 语言开发并遵从 Apache2.0 协议开源,项目代码托 管在github上进行维护。
  • docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任 何流行的 Linux 机器上。
  • 容器是完全使用沙箱机制,相互之间不会有任何接口,更重要的是容器性能开销极低。

docker基本组成

docker主机(Host):安装了Docker程序的机器(Docker直接安装在操作系统之上);
docker仓库(Registry):用来保存各种打包好的软件镜像;仓库分为公有仓库和私有仓库。(很类似 maven)
docker镜像(Images):软件打包好的镜像;放在docker仓库中;
docker容器(Container):镜像启动后的实例称为一个容器;容器是独立运行的一个或一组应用

docker安装

1、安装依赖

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

2、添加yum源

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

3、安装docker-ce (ce代表社区版)

yum install docker-ce

4、启动docker服务

systemctl start docker

5、设置开机自启动

systemctl enable docker

6、安装阿里云镜像加速器 可参考:https://www.cnblogs.com/allenjing/p/12575972.html

mkdir -p /etc/docker
tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://复制自己的加速器地址.mirror.aliyuncs.com"] }
EOF
systemctl daemon-reload
systemctl restart docker

7、查看docker信息

docker -v
docker info

docker镜像

1、镜像下载
首先从https://hub.docker.com/搜索自己需要下载的镜像,下面演示下载tomcat镜像
在这里插入图片描述
我这里下载了几个9.0.20的不同版本,直接运行docker pull命令就能下载
在这里插入图片描述
这里我下载了三个不同版本的镜像,用docker images命令查看一下
在这里插入图片描述
发现他们的大小差别很大,这是因为不同版本在制作镜像时,使用的操作系统不同的,还可以使用slim压缩技术。

2、docker save命令
将镜像打包成压缩文件 用来备份
打包一个镜像

docker save tomcat:9.0.20-jdk8 -o tomcat9.tar

常用参数:
-o:输出到文件
在这里插入图片描述
打包多个镜像

docker save tomcat:9.0.20-jre8-alpine tomcat:9.0.20-slim -o tomcat9all.tar

在这里插入图片描述

3、docker load命令
将打包的tar文件还原成镜像
先使用docker rmi 删除存在的镜像

docker rmi tomcat:9.0.20-jre8-alpine

可以看到镜像已经被删除
在这里插入图片描述
cd到存放tar文件的目录下执行docker load命令

docker load -i tomcat9.tar

在这里插入图片描述

4、docker inspect命令
通过docker inspect命令,可以获取镜像的详细信息,其中包括id、创建时间、环境信息、大小等。

docker inspect tomcat:9.0.20-slim

在这里插入图片描述
docker inspect返回的是JSON格式,可以通过-f来指定获取某一项信息。

docker inspect -f {{".Size"}} tomcat:9.0.20-slim

在这里插入图片描述

5、docker rmi命令

docker rmi tomcat:9.0.20-jre8-alpine

常用参数

  • -f,-force:强制删除镜像,即便有容器引用该镜像
  • -no-prune:不要删除未带标签的父镜像

也可通过 images id删除(不推荐使用)

docker容器

容器是镜像的运行实例。可以从单个镜像上启动一个或多个容器。
在这里插入图片描述
1、新建并启动容器

docker run -itd --name tomcat9 -p 8080:8080 tomcat:9.0.20-jre8-alpine

在这里插入图片描述
常用参数:

  • -d, --detach=false: 后台运行容器,并返回容器ID
  • -i, --interactive=false: 以交互模式运行容器,通常与 -t 同时使用
  • -P, --publish-all=false: 随机端口映射,容器内部端口随机映射到主机的端口。不推荐使用
  • -p, --publish=[]: 指定端口映射,格式为:主机(宿主)端口:容器端口,推荐使用
  • -t, --tty=false: 为容器重新分配一个伪输入终端,通常与 -i 同时使用
  • –name 为容器指定一个名称
  • -e , --env=[]: 设置环境变量,容器中可以使用该环境变量
  • –rm=false: 指定容器停止后自动删除容器,不能与docker run -d启动的容器

2、查看容器日志

docker logs -f tomcat9

常用参数

  • -f:跟踪日志输出
  • –tail:仅列出最新的N条日志

3、容器的退出和删除
先停止容器

docker stop tomcat9

再删除

docker rm tomcat9

在这里插入图片描述
也可以通过容器id删除
常用参数

  • -f:强制删除一个运行中的容器
  • -l:移除容器间的网络连接,而非容器本身
  • -v:删除与容器关联的卷

4、进入容器
有bash命令的linux系统:例如centos

docker exec -it tomcat9 /bin/bash

没有bash命令的linux系统:例如alpine系统

docker exec -it tomcat9 .sh

在这里插入图片描述
5、其他与容器相关的命令
docker ps命令
docker ps查看所有运行中的容器
docker start 启动容器
docker stop 停止运行中的容器
docker ps -a 查看所有容器
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值