Docker基础命令篇

95 阅读4分钟

一.Docker简介

1.简化环境部署,环境配置(官网:www.docker.com/)

2.和以前的区别

  • 传统虚拟机,虚拟出一条硬件,运行一个完整的操作系统,然后在这个系统上安装和运行软件。
  • 容器内的应用直接运行在宿主机的内核中,容器是没有自己的内核的,也没有虚拟我们的硬件,所以就轻便了。
  • 每个容器间是互相隔离,每个容器内都有一个属于自己的文件系统,互不影响。

47a51e0d5fddebea74e86fbc49c90812.jpeg

e440c7d10ff2727fd6d5465fb6ef4988.jpeg

二. 安装Docker

# 1.卸载旧的版本
yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine
# 2.需要的安装包
yum install -y yum-utils
# 3.设置镜像的仓库
yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo # 默认是从国外的。
yum-config-manager \
    --add-repo \
    http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo # 推荐使用阿里云的。
# 安装容器之前,更新yum软件包索引。
yum makecache fast
# 4.安装容器相关的。docker-ce(社区版)docker-ee(企业版)
yum install docker-ce docker-ce-cli containerd.io
# 5.启动docker
systemctl start docker
# 6.使用docker version查看是否安装成功

三.docker常用密令

1.镜像命令

1. 帮助命令
	docker version        # 显示docker的版本信息
	docker info              # 显示docker的系统信息,包括镜像和容器的数量
	docker 命令 --help         # 帮助命令
2.搜索镜像
docker search 镜像名
# 命令参数可选项
--filter=STARS=3000     # 搜索出来的镜像就是stars大于3000的
3.下载镜像
docker pull 镜像名[:tag]   # 如果不写tag,默认就是latest,最新的版本
4.查看镜像
dokcer images
# 命令参数可选项
 -a     # 显示所有镜像 
 -q     # 仅显示镜像id 
5.删除镜像
docker rmi -f 镜像id       # 删除指定的镜像
docker rmi -f 镜像id 镜像id 镜像id    # 删除多个镜像(空格分隔)
docker rmi -f $(docker images -aq)    # 删除全部的镜像

2. 容器命令

1.启动容器
docker run [可选参数] image
# 参数说明
--name="name"        容器名字:用来区分容器
-d                    后台方式运行:相当于nohup
-it                    使用交互式运行:进入容器查看内容
-p                    主机端口:容器端口
-P                    随机指定端口(大写字母P)
2.进入容器并退出容器
docker exec -it 容器id /bin/bssh #进入容器 方式一
docker attach 容器id #进入容器 方式二
exit #退出容器
3.列出容器 
docker ps 
# 命令参数可选项
-a        # 列出当前正在运行的容器+历史运行过的容器
-n=?    # 显示最近创建的容器(可以指定显示几条,比如-n=1)
-q        # 只显示容器的编号
4.启动和停止容器的操作
docker start 容器id        # 启动容器
docker restart 容器id    # 重启容器
docker stop 容器id        # 停止当前正在运行的容器
docker kill 容器id        # 强制停止当前容器
5.删除容器
docker rm 容器id 
# 命令可选项
docker rm -f 容器id  #强制删除
docker rm -f $(docker ps -aq)        # 删除全部容器
docker ps -a -q|xargs docker rm        # 删除所有容器

3.其他常用密令

1.查看日志
docker logs -tf --tail 容器id
# 命令参数可选项
--tail number    # 要显示的日志条数
2.查看容器中进程的信息
docker top 容器id 
3.查看镜像的元数据
docker inspect 容器id
4.从容器内拷贝文件到主机上
docker cp 容器id:容器内路径 目的主机的路径

4.图形可视化安装

1. 启动运行
docker run -d -p 8088:9000 --restart=always -v /var/run/docker.sock:/var/run/docker.sock --privileged=true portainer/portainer
2.访问:
http://ip:8088

四.Docker镜像讲解

1.镜像是什么

镜像是一种轻量级、可执行的独立软件包,用来打包软件运行环境和基于运行环境开发的软件,它包含运行某个软件所需的所有内容,包括代码、运行时、库、环境变量和配置文件。 所有的应用,直接打包docker镜像,就可以直接跑起来!

2.分层理解

Docker镜像采用分层的结构最大的好处,是资源共享!比如有多个镜像都从相同的Base镜像构建而来,那么宿主机只需在磁盘上保留一份base镜像,同时内存中也只需要加载一份base镜像,这样就可以为所有的容器服务了,而且镜像的每一层都可以被共享

3.commit镜像

docker commit -m="提交的描述信息" -a="作者" 容器id 目标镜像名:[TAG]

五.容器数据卷

1. 什么是容器数据卷

容器之间可以有一个数据共享的技术!Docker容器中产生的数据,同步到本地! 这就是卷技术!目录的挂载,将我们容器内的目录,挂载到Linux主机上面!

2. 使用数据卷

 #命令来挂载:-v
 -v 主机目录:容器内目录
# 测试,查看容器信息
docker inspect 容器id

3. 匿名和具名挂载

# 匿名挂载
docker run -d -p --name nginx01 -v /etc/nginx nginx #这种就是匿名挂载:我们在-v挂载目录时,只写了容器内的路径,没有写容器外的路径。
# 具名挂载
# 通过 -v 卷名:容器内的路径(具名挂载)

# 如何确定是具名挂载,还是匿名挂载,还是指定路径挂载
-v 容器内的路径                # 匿名挂载
-v 卷名:容器内的路径        # 具名挂载
-v /宿主机路径:容器内路径    # 指定路径挂载