Docker-基本命令

目录

一、Docker与虚拟机技术

二、Docker功能

三、安装

安装:

1、环境准备:

2、安装docker

3、配置阿里云镜像加速

镜像加速源

4、Docker是怎么工作的

5、Docker为什么比虚拟机快

四、docker命令

[1、镜像命令 Docker官方镜像库:https://hub.docker.com/](#1、镜像命令 Docker官方镜像库:https://hub.docker.com/)

2、容器命令

3、日志打印

4、查看进程信息

5、查看容器信息

6、文件copy

7、端口暴漏

8、查看cpu状态

9、portainer可视化面板

五、Docker镜像

1、Docker加载原理

2、分层原理

六、Commit镜像


一、Docker与虚拟机技术

传统虚拟机,虚拟一条硬件,运行一个完整的操作系统,然后在系统上安装和运行软件

容器内应用直接运行在宿主机的内核上,容器没有自己的内核,也没有虚拟硬件

每个容器之间,互相隔离,拥有自己单独的文件系统,互补影响。

二、Docker功能

1、简化程序

2、节省开支

3、便于迁移

4、简化运维与开发

三、安装

1、镜像(image):好比一个模板,用来创建容器服务,如tomcat镜像文件 => run => tomcat容器,可以通过一个镜像创建多个容器(好比一个类可以创建多个对象,可以为对象提供各种方法服务)

2、容器(container):独立运行一个或一组应用,通过镜像创建(互相隔离,比如对象对象之间互相隔离)

3、仓库(repository):存放镜像的地方,分为公有仓库和私有仓库

安装:

1、环境准备:

复制代码
#linux服务器,版本3.10.0以上
#查看linux版本命令:
uname -r

2、安装docker

bash 复制代码
#卸载旧版本
sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine
#需要的安装包
sudo yum install -y yum-utils
#设置镜像仓库
 yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
#安装docker相关的
sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
#启动docker
systemctl start docker
#查看docker是否启动成功
docker version
#测试hello world
docker run hello-world
#查看镜像
docker images
#卸载docker
sudo yum remove docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
rm -rf /var/lib/docker    #docker默认工作路径

3、配置阿里云镜像加速

镜像加速源

镜像加速器 镜像加速器地址
Docker 中国官方镜像 https://registry.docker-cn.com
DaoCloud 镜像站 http://f1361db2.m.daocloud.io
Azure 中国镜像 https://dockerhub.azk8s.cn
科大镜像站 https://docker.mirrors.ustc.edu.cn
阿里云 https://ud6340vz.mirror.aliyuncs.com
七牛云 https://reg-mirror.qiniu.com
网易云 https://hub-mirror.c.163.com
腾讯云 https://mirror.ccs.tencentyun.com
bash 复制代码
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
    "registry-mirrors": ["https://registry.docker-cn.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

4、Docker是怎么工作的

Docker 是一个 CS架构,Docker 的守护进程运行在主机上,通过TCP协议从客户端访问,Docker server接收到Docker-Client的指令,就会执行这个命令;

5、Docker为什么比虚拟机快

Docker的容器是一个阉割版的Linux服务器,

Docker具有比虚拟机更少的抽象层

Docker利用的是宿主机的内存,VM需要利用Guest OS的内存

四、docker命令

bash 复制代码
docker ps 查看当前运行中的容器
docker images 查看镜像列表
docker rm container-id 删除指定 id 的容器
docker stop/start container-id 停止/启动指定 id 的容器
docker rmi image-id 删除指定 id 的镜像
docker volume ls 查看 volume 列表
docker network ls 查看网络列表
docker info   系统信息,包括镜像和容器的数量
docker version  系统版本

docker --help  帮助

1、镜像命令 Docker官方镜像库:https://hub.docker.com/

bash 复制代码
docker images   查看镜像
              -a  查看所有镜像
              -q  查看所有镜像ID
docker pull[:tag]     下载镜像,可选版本
                      docker 采用分层下载,同个镜像不同版本,在不同层次上依赖的数据相同
                      docker可以将不同版本依赖的相同项共用,只下载不同项文件。
docker rmi -f ID/Name  依据ID或者name删除iamge
docker rmi -f ${docker images -a -q}  删除所有的镜像
docker rmi -f id1 id2 id3   删除多个image

2、容器命令

bash 复制代码
                   下载镜像
docker pull tomcat
                    运行容器
docker run [可选参数] image            创建运行容器
            -d                         后台运行,守护进程
            --name                     给容器起名字
            -P 8081:8080               端口映射
            -p                         随机指定端口 
            -it                        使用交互式方式运行,进入容器查看内容
                  进入与退出容器
docker run -it -p 8088:8080 -d tomcat  运行容器
docker exec -it 容器i bash
docker attach 容器ID                   进入容器
  区别:
       exec   进入容器开启一个新的终端
       attach 进入容器,不会开启新线程

                                       可以进入查看一些容器的目录
exit                                   退出容器并停止
ctrl + p + q                           退出容器不停止容器
                    查看容器
docker ps                               查看正在运行容器
docker ps -a                            查看所有运行的容器
docker ps -n=1                          只显示一个容器
          -q                            显示容器的ID
docker rm ID                            删除容器,只能删除停止的容器
docker rm -f ${docker ps -aq}           删除所有容器
       rm  id1 id2 id3                  删除所有容器
                     停止容器
docker start id                         启动容器
docker restart id                       重启容器
docker stop    id                       停止容器
docker kill    id                       停止容器

容器内的内容阉割了一些功能和文件,所以有部分命令是无法使用的

3、日志打印

bash 复制代码
docker logs -tf --tail 10 ID   打印容器日志,后面10行

4、查看进程信息

bash 复制代码
docker top ID

5、查看容器信息

bash 复制代码
docker inspect ID

6、文件copy

bash 复制代码
docker cp  id:文件path 目的path    从容器内copy到容器外

7、端口暴漏

需要大同外网到云服务器之间的通路,还需打通linux 与 容器之间的通路,使用 -p 8080:8080即可打通。

8、查看cpu状态

bash 复制代码
docker stats  查看cpu状态

9、portainer可视化面板

bash 复制代码
docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer

五、Docker镜像

镜像为轻量级的软件包,用户打包软件运行环境

获取镜像:远程仓库下载,复制粘贴,自己定制Dockerfile

1、Docker加载原理

联合文件系统:一种分层、轻量级并且高性能的文件系统,及与其他镜像共享部分依赖的文件,如:A,B镜像共享C,先安装了A的同时,C也安装,那么在安装B时,就无需在安装C。

bootfs:系统启动需要引导加载的文件

rootfs:在bootfs之上的,不同操作系统

所有的rootfs依赖于bootfs

2、分层原理

高层复用底层文件

六、Commit镜像

修改镜像

bash 复制代码
docker commit -m="描述信息" -a="作者" 容器id 目标镜像名:[tag]
相关推荐
麦兜*1 小时前
Spring Boot 企业级动态权限全栈深度解决方案,设计思路,代码分析
java·spring boot·后端·spring·spring cloud·性能优化·springcloud
B1nna2 小时前
Docker学习
学习·docker·容器
ruan1145142 小时前
MySQL4种隔离级别
java·开发语言·mysql
缘友一世2 小时前
网安系列【15】之Docker未授权访问漏洞
docker·容器
Hellyc6 小时前
基于模板设计模式开发优惠券推送功能以及对过期优惠卷进行定时清理
java·数据库·设计模式·rocketmq
lifallen6 小时前
Paimon LSM Tree Compaction 策略
java·大数据·数据结构·数据库·算法·lsm-tree
hdsoft_huge6 小时前
SpringBoot 与 JPA 整合全解析:架构优势、应用场景、集成指南与最佳实践
java·spring boot·架构
百锦再7 小时前
详细解析 .NET 依赖注入的三种生命周期模式
java·开发语言·.net·di·注入·模式·依赖
程序员的世界你不懂7 小时前
基于Java+Maven+Testng+Selenium+Log4j+Allure+Jenkins搭建一个WebUI自动化框架(2)对框架加入业务逻辑层
java·selenium·maven
有没有没有重复的名字8 小时前
线程安全的单例模式与读者写者问题
java·开发语言·单例模式