Docker基础

1.常用命令

1.1 帮助启动类命令

状态命令
启动dockersystemctl start docker
停止dockersystemctl stop docker
重启dockersystemctl restart docker
查看docker状态systemctl status docker
开机启动system enable docker
查看docker概要信息docker info
查看docker总体帮助文档docker --help
查看docker命令帮助文档docker 具体命令 --help

1.2 镜像命令

1. docker image
列出本地所有的镜像(包含历史镜像层
只显示镜像ID
在这里插入图片描述
其中
REPOSITORY:显示镜像的仓库源
TAG:镜像的标签版本号
IMAGE ID:镜像ID
CREATED:镜像创建时间
SIZE:镜像大小
2. docker search + 镜像名称
搜索摸个镜像名称
在这里插入图片描述
还可以通过 “–limit 个数” 命令限制搜索个数进行操作
在这里插入图片描述

3. docker pull 某个镜像名字
有两种写法:
1.docker pull 镜像名字 [:TAG]
2.docker pull 镜像名字
两种方法的区别就是如果写了TAG就下载对应的版本号,如果没有写TAG就下载最新的版本

4. docker system df 查看镜像/容器/数据卷所占的空间
在这里插入图片描述
5. docker rmi 某个镜像名字ID
删除镜像
后面可以写镜像名称(因为镜像名称并不会重复)
也可以加ImageID号
在这里插入图片描述
如果删除的时候遇到无法删除的情况
在这里插入图片描述
可以使用 -f 命令(focus)强制删除
在这里插入图片描述

  1. 删除单个镜像
    docker rmi -f 镜像ID
  2. 删除多个
    docker rmi -f 镜像名1:TAG 镜像名2:TAG
  3. 删除全部
    docker rmi -f $(docker images -qa)

面试题

什么是docker的虚悬镜像?
虚悬镜像:仓库名、标签都是 < none > 的镜像,俗称虚悬镜像dangling image

1.3 容器命令

命令状态
docker run [OPTIONS] IMAGE [COMMAND] [ARG…]新建+启动容器
docker ps列出当前所有正在运行的容器
docker restart 容器ID或者容器名启动已停止运行的容器
docker stop容器ID或者容器名停止容器
docker kill容器ID或者容器名强制停止容器
docker rm 容器ID删除已停止的容器

1.3.1 新建+启动容器

docker run [OPTIONS] IMAGE [COMMAND] [ARG…]

OPTIONS的说明
其中 --name=“容器新名字” 为容器指定一个名称;
-d: 后台运行容器并返回容器ID,也叫启动守护式容器(后台运行);
启动交互式容器:
-i: 以交互模式运行容器,通常与-t同时使用;
-t: 为容器重新分配一个为输入终端,通常与-i同时使用
-P:随机端口映射,大写P
-p:指定端口映射,小写p
综上所述:使用命令以交互模式启动一个容器,并在容器中执行/bin/bash命令,可以看到已进入Ubuntu的系统。
在这里插入图片描述
其中 -i 表示交互式操作,-t 表示终端,ubuntu表示Ubuntu的image镜像,/bin/bash 放在镜像名字的后面表示的是命令,因为这里我们希望有一个交互式的Shell,因此使用的是/bin/bash,要退出终端 ,直接输入exit

1.3.2 罗列出所有运行的容器实例

docker ps

容器退出后如果遇到使用docker ps命令无法查到相关容器的时候,不用担心,这里因为容器退出后处于终止(exited)状态,此时可以通过docker ps -a来查看,其中的数据也不会丢失,还可以重新启动使用,只有删除容器的时候才会删除数据。
在这里插入图片描述
同时可以看到由于在创建集装箱的时候并没有进行命名,所以使用docker ps命令出现的NAMES命令下的名字都是系统随机分配的,如果创建的时候命名,就会现在设定的名字,如下所示:
在这里插入图片描述

1.3.3 退出容器的两种方式

命令效果
exitrun进去容器,exit退出,容器停止
ctrl+p+qrun进去容器,ctrl+p+q退出,容器不停止(使用docker ps可以查看得到)

1.3.4 启动已经停止运行的容器

1.4 启动守护式容器(后台服务器)

大部分的场景下,我们希望docker的服务是在后台运行的,我们可以通过-d指定容器的后台运行模式。

// 守护式容器启动方法
docker run -d 容器名

但是使用上述命令进行启动时,使用ps命令查不到正在运行的容器,这是因为Docker容器后台运行,就必须有一个前台进程,容器的命令如果不是那种一直挂起的命令(例如top,tail等),容器会发现无事可做,直接退出,这也是docker机制的问题。最佳的解决方法就是将需要运行的程序以前台进程的形式运行,常见的就是命令行模式
例如启动Redis就需要在后台守护式启动,前台启动就会出现不小心关闭的情况,在后台启动就会避免这种情况

1.4.1 查看容器日志

1.4.2 查看容器内运行的进程

1.4.3 查看容器内部细节

docker inspect 容器ID

在这里插入图片描述

1.4.4 进入正在运行的容器并以命令行交互

docker exec -it 容器ID /bin/bash

在这里插入图片描述
还有一种方法可以进入正在运行的容器

docker attach 容器ID

**两种进入方式的区别: **
attach直接进入容器启动命令的终端,不会启动新的进程,用exit退出,会导致容器的停止。
exec是在容器中打开新的终端,并可以启动新的进程,用exit退出,不会导致容器的停止。

1.4.5 从容器内拷贝文件到主机上

docker cp 容器ID:容器内路径 目的主机路径

1.4.6 导入和导出容器

导出:

docker export 容器ID > 文件名.tar

在这里插入图片描述

导入:

cat abd.tar | docker import - cy/ubuntu:3.7

在这里插入图片描述

2. commit命令

docker提交容器副本使之成为一个新的镜像

docker commit -m="提交的描述信息" -a="作者" 容器ID要创建的目标镜像名:[标签名]

使用容器镜像安装的Ubuntu是只保留了最小运行环境的Linux内核,所以只能运行基础命令,有很多命令运行不了(例如下图中ls命令可以正常运行 而vim命令咋不能正常运行),此时就需要单独安装。
在这里插入图片描述
在下载安装vim之前需要先试用apt-get update命令进行更新

apt-get update

在这里插入图片描述

然后使用apt-get -y install vim下载需要的命令

apt-get -y install vim

在这里插入图片描述
可以观察到已经可以使用vim命令了
在这里插入图片描述
然后需要将修改过的容器提交,形成一个容器副本使之成为一个新的镜像

docker commit -m="vim commit add ok" -a="cy" 98f2d8dc3d6d cy/myubuntu:1.3

在这里插入图片描述
使用镜像分层最大的一个好处就是共享资源,为了方便复制迁移,实现复用。
比如说多个镜像都是次用相同的base奖项构建而来,那么Docker Host只需要在磁盘上保存一份base镜像;同时内存中也只需要加载一份base镜像,就可以为所有的容器服务了,而且镜像的每一层都可以被共享。

3. 将本地镜像推送到阿里云

此处的信息可以再阿里云网站中找到参考代码
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

4. docker私有库

4.1 下载镜像Docker Registry

docker pull registry

4.2 运行私有库Registry

相当于在本地有一个私有Docker Hub

docker run -d -p 5000:50 -v /myregistry/:/temp/registry --privileged=true registry
/*
-d 后台运行并返回容器ID,就是启动守护式容器

-p(小写) 指定端口映射
-p hostPort:containerPort
-v 部分的内容属于数据卷映射 后续章节会涉及
*/

在这里插入图片描述

4.3 curl验证私服库上有什么镜像

在启动私有库Registry并开启端口映射后,可以使用curl验证私服库上有什么镜像

curl -XGET http://192.168.204.130:5000/v2/_catalog
# 这里的5000之后的参数会在后续内容中讲到

在这里插入图片描述

4.4 将新镜像修改符合私服规范的Tag

docker tag cy/myubuntu:1.4 192.168.204.130:5000/myubuntu:1.4

在这里插入图片描述

4.5 修改配置文件使之支持http

使用vim命令修改

vim /etc/docker/daemon.json

在这里插入图片描述
docker默认不允许http方式推送镜像,通过配置选项来取消这个限制。====> 修改完后如果不生效,建议重启docker

docker run -d -p 3306:3306 --privileged=true -v /mysql/log:/var/log/mysql -v /mysql/data:/var/lib/mysql -v /mysql/conf:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=123  --name mysql1 mysql:5.7
### Docker 基础入门教程 #### 什么是 DockerDocker 是一种开源的应用容器引擎,可以让开发者打包他们的应用以及依赖包到一个可移植的容器中,并将其部署到任何流行的 Linux 或 Windows 机器上[^3]。 #### 安装并配置 Docker 当安装好 Docker 后,可以通过简单的命令来验证其是否正常工作。例如,在终端输入 `docker run hello-world` 并观察是否有输出显示 “Hello from Docker!” 来确认安装成功[^1]。为了使 Docker 随操作系统启动自动运行,可以执行如下命令: ```bash systemctl start docker systemctl enable docker ``` #### 创建第一个镜像 创建自定义镜像通常涉及编写一个名为 **Dockerfile** 的文件。此文件描述了如何构建镜像及其所需的软件环境。正如提到过的那样,“Dockerfile 十分简单”,它允许用户通过指定基础镜像和其他指令来自动生成复杂的项目结构[^2]。完成 Dockerfile 编写后,可以在包含它的目录下运行以下命令以生成新的镜像: ```bash docker build -t 自定义名称 . ``` 这里 `-t` 参数用来给新建立的镜像命名,`.` 表示当前路径作为上下文位置[^4]。 #### 使用现有镜像快速搭建服务 假如需要迅速获得 Ubuntu 运行环境而不必经历繁琐的手动安装流程,则可以直接利用官方提供的现成镜像资源。只需从远程仓库拉取对应版本即可立即投入使用,极大简化了前期准备工作的同时还节省了大量的时间成本: ```bash docker pull ubuntu:latest docker run -it --name my_ubuntu_container ubuntu /bin/bash ``` 以上就是关于 Docker 初学者所需掌握的一些基本概念和技术要点概述。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值