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]
相关推荐
codelife32111 分钟前
在Docker容器中执行命令
容器
【D'accumulation】17 分钟前
典型的MVC设计模式:使用JSP和JavaBean相结合的方式来动态生成网页内容典型的MVC设计模式
java·设计模式·mvc
petaexpress19 分钟前
常用的k8s容器网络模式有哪些?
网络·容器·kubernetes
试行31 分钟前
Android实现自定义下拉列表绑定数据
android·java
茜茜西西CeCe37 分钟前
移动技术开发:简单计算器界面
java·gitee·安卓·android-studio·移动技术开发·原生安卓开发
救救孩子把42 分钟前
Java基础之IO流
java·开发语言
小菜yh43 分钟前
关于Redis
java·数据库·spring boot·redis·spring·缓存
宇卿.1 小时前
Java键盘输入语句
java·开发语言
浅念同学1 小时前
算法.图论-并查集上
java·算法·图论
立志成为coding大牛的菜鸟.1 小时前
力扣1143-最长公共子序列(Java详细题解)
java·算法·leetcode