docker安装步骤具体参考官方说明:
https://docs.docker.com/install/linux/docker-ce/centos/
一. 安装docker命令如下:
// 删除旧版本
yum remove docker
// 安装utils包
yum install -y yum-utils
// 设置稳定存储库
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
// 安装Docker Engine和containerd的最新版本
yum install docker-ce docker-ce-cli containerd.io
// 启动docker
systemctl start docker
// 查看docker版本
docker version
因为我已经安装过了,这里显示已加载已安装,官方文档中有很多可选的要安装的库等内容,根据需求去安装即可。
正常安装需要加载时间,确定安装 根据提示 y 即可。
二. 运行helloworld,设置阿里镜像
阿里云网址:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors
-
vi /etc/docker/daemon.json
-
把镜像加速的内容复制进去
{
"registry-mirrors": ["https://db7hhsrp.mirror.aliyuncs.com"]
}
- 保存退出
- systemctl daemon-reload
- systemctl restart docker
配置完后,运行hello-world
// 运行hello-world
docker run hello-world
docker容器 | 虚拟机 vm | |
---|---|---|
操作系统 | 与宿主机共享os | 宿主机os上运行虚拟机os |
存储大小 | 镜像小,便于存储与传输 | 镜像庞大 (vmdk vdi等) |
运行性能 | 几乎无额外性能损失 | 操作系统额外的cpu、内存消耗 |
移植性 | 轻便、灵活,适应与linux | 笨重,与虚拟化技术耦合度高 |
硬件亲和性 | 面向软件开发者 | 面向硬件运维者 |
三. 帮助命令 镜像命令 操作
1. 帮助命令:
docker version
docker info
docker --help
2. 镜像命令
// 列出本机所有镜像
docker images
// 列出本地所有镜像 含中间映射
docker images -a
// 只显示镜像id
docker images -q
// 显示镜像的摘要信息
docker images --digests
// 显示完整的镜像信息
docker images --no-trunc
-------------------------------
// 从hub.docker.com中查找镜像
docker search 某镜像
例如:docker search tomcat
// 查找不少于 n星的镜像
docker search -s 30 tomcat
-------------------------------
// docker pull 某个镜像名字
// 把镜像从远程仓库拉到本地 默认拉的是最新版 latest
docker pull tomcat
// 如果拉取某个版本 在后边加上版本号即可
docker pull 镜像:版本号
// docker rmi 某个镜像名字 删除某个镜像
docker rmi hello-world
// 默认删除的也是最新镜像 等价于 docker rmi hello-world:latest
// 可同时删除多个镜像
docker rmi -f 镜像1 镜像2
// 也可删除全部镜像
docker rmi -f $(镜像1 镜像2 -qa)
-------------------------------
镜像中具体操作,这里 ,举个栗子,更直观感受如何去使用镜像命令:
案例1:
- 从docker 下载一个centos镜像
docker pull centos
我这里已有提示 pull即可
- 新建并启动容器centos
docker run centos
启动docker 的时候有很多参数
--name=”容器新名字” 为容器指定一个名字
-d 后台运行容器,并返回容器id,即启动守护式容器
-i 以交互模式运行容器,通常与-t同时使用
-t 为容器重新分配一个伪输入终端,通常与-i同时使用
-P 随机端口映射
-p 指定端口映射,有以下四种格式
ip:hostPort:containerPort
ip::containerPort
hostPort:containerPort
containerPort
// 启动进入
docker run -it centos
- 退出容器两种操作
第一种是直接exit,容器停止退出
第二种 ctrl+p+q 容器不停止退出
这里先选第二种退出方式,以便本次案例后续进行操作
- 列出所有正在运行的docker进程
要注意先在linux中,而不是docker的centos下
// 列出正在运行的进程
docker ps
// 列出当前所有正在运行的容器
docker ps -a
// 显示最近创建的容器
docker ps -l
// 显示最近n个创建的容器
docker ps -n 个数
// 静默模式,只显示容器编号
docker ps -q
-----------------------------
// 启动容器
docker start 容器名字或id
// 重启容器
docker restart 容器名字或id
// 停止容器
docker stop 容器名字或id
// 暴力停止
docker kill 容器名字或id
// 删除已经停止的容器,如果此容器正运行则不会删除
docker rm 容器名字或id
// 一次删除多个容器
docker rm -f ${docker ps -a -q}
// 以守护式的方式启动容器
docker run -d 容器或id
docker ps 查看正在执行的容器发现没有刚启动的容器
因为这种方式启动后没有交互,所以docker会自动关闭容器
当我们再去查看正在执行的容器时候发现什么都没有
-----------------------------
// 查看正在运行的容器的日志
docker logs 容器名或id
// 打印日志时候显示时间
docker logs -t 容器名或id
// 不停的追加打印日志
docker logs -t -f
// 显示最近几行日志
docker logs --tail 几行
// 例如 显示最近2行日志
docer logs --tail 2
// 查看容器内的细节,以字符串形式显示具体信息
docker inspect 容器名或id
// 进入正在运行的容器,并以命令行形式交互
// 从linux物理机进入容器
docker attach 容器id
// 从物理及进入容器
docker exec -t 容器id /bin/bash
// 从容器中拷贝东西到主机
docker cp 容器id:容器内路径 目的主机路径
案例2: