Docker的基本操作

Docker基本操作

镜像操作

镜像相关命令
  • 镜像名称一般分两部分组成:[repository]:[tag]。

  • 在没有指定tag时,默认是latest,代表最新版本的镜像

image-20220503151353393

镜像操作命令

image-20220503151719882

容器操作

容器相关操作

image-20220503153633068

创建运行一个Nginx容器
  • 步骤一:去docker hub查看Nginx的容器运行命令
 docker run --name my-nginx -d -p 80:80 nginx

命令解读:

  • docker run:创建并运行一个容器

  • –name:给容器起一个名字,比如叫做my-nginx

  • -p:将宿主机端口与容器端口映射,冒号左侧是宿主机端口,右侧是容器端口

  • -d:后台运行容器

  • nginx:镜像名称,例如nginx

image-20220503154310736

进入Ngix容器,修改HTML文件内容,添加“Hello World"

步骤一:进入容器。进入我们刚刚创建的nginx容器的命令为:

docker exec -it my-nginx bash

命令解读:

  • docker exec:进入容器内部,执行一个命令
  • -t:给当前进入的容器创建一个标准输入、输出终端,允许我们与容器交互
  • mn:要进入的容器的名称
  • bash:进入容器后执行的命令,bash是一个inux终端交互命令

步骤二:进入nginx的HTML所在目录/usr/share/nginx./html

cd /usr/share/nginx/html

步骤三:修改index.html的内容

sed -i 's#Welcome to nginx#Hello World#g' index.html
sed -i 's#<head>#<head><meta charset="utf-8"></head>#g' index.html 

image-20220503161537739

数据卷(容器数据管理)

数据卷

容器与数据耦合的问题

image-20220503162930913

**数据卷(volume)**是一个虚拟目录,指向宿主机文件系统中的某个目录。

image-20220503163158296

操作数据卷

数据卷操作的基本语法如下:

docker volume [COMMAND]

docker volume命令是数据卷操作,根据命令后跟随的command来确定下一步的操作:

  • create 创建一个volume

  • inspect 显示一个或多个volume的信息

  • ls 列出所有的volume

  • prune 删除未使用的volume

  • rm 删除一个或多个指定的volume

创建一个数据卷,并查看数据卷在宿主机的目录位置

① 创建数据卷

[root@VM-20-16-centos ~]# docker volume create html

② 查看所有数据

[root@VM-20-16-centos ~]# docker volume ls
DRIVER    VOLUME NAME
local     197836aa84ede063a7fd0892650dff3f73fd94871e1e49f7c784d40a14c5d742
local     html

③ 查看数据卷详细信息卷

[root@VM-20-16-centos ~]# docker volume inspect html
[
    {
        "CreatedAt": "2022-05-03T16:36:33+08:00",
        "Driver": "local",
        "Labels": {},
        "Mountpoint": "/var/lib/docker/volumes/html/_data",
        "Name": "html",
        "Options": {},
        "Scope": "local"
    }
]
挂载数据卷

我们在创建容器时,可以通过-v参数来挂载一个数据卷到某个容器目录

image-20220503164545859

创建一个nginx容器,修改容器内的html目录内的index.html内容

需求说明:上个案例中,我们进入nginx容器内部,已经知道nginx的html目录所在位置
/usr/share/nginx/html,我们需要把这个目录挂载到html这个数据卷上,方便操作其中的内容。
提示:运行容器时使用-v参数挂载数据卷
步骤:
① 创建容器并挂载数据卷到容器内的HTML目录

docker run --name my-nginx -d -p 7777:80 -v html:/usr/share/nginx/html  nginx:latest 

② 进入html数据卷所在位置,并修改HTML内容

image-20220503165518786

vi index.html

Dockerfile自定义镜像

镜像结构
  • 镜像是将应用程序及其需要的系统函数库、环境、配置、依赖打包而成。

image-20220503171118132

镜像是分层结构,每一层称为一个Layer

  • Baselmage层:包含基本的系统函数库、环境变量、文件系统
  • Entrypoint:入口,是镜像中应用启动的命令
  • 其它:在Baselmage基础上添加依赖、安装程序、完成整个应用的安装和配置
Dockerfile语法
什么是DockerFile

Dockerfile就是一个文本文件,其中包含一个个的**指令(Instruction),**用指令来说明要执行什么操作来构建镜像。每一个指令都会形成一层Layer。

image-20220503171327979

构建Java项目

基于Ubuntus镜像构建一个新镜像,运行一个java项目

步骤1:新建一个空文件夹docker-demo

步骤2:拷贝课前资料中的docker–demo.jar文件到docker-demo这个目录

步骤3:拷贝课前资料中的jdk8.tar.gz文件到docker-demo这个目录

步骤4:拷贝课前资料提供的Dockerfile到docker-demo这个目录

步骤5:进入docker-demo

步骤6:运行命令:

-t 表示-tag 标签的意思

.代表Dockerfile所在目录,当前目录即一个点

docker build -t javaweb:1.0 .

image-20220503173106077

总结
  1. Dockerfile的本质是一个文件,通过指令描述镜像的构建过程
  2. Dockerfile的第一行必须是FROM,从一个基础镜像来构建
  3. 基础镜像可以是基本操作系统,如Ubuntu。也可以是其他人制作好的镜像,例如:java:8-alpine

DockerCompose

什么是DockerCompose
  • Docker Compose可以基于Compose文件帮我们快速的部署分布式应用,而无需手动一个个创建和运行容器!
  • Compose文件是一个文本文件,通过指令定义集群中的每个容器如何运行。

image-20220503190105441

安装见:https://blog.csdn.net/weixin_44744094/article/details/124555437

DockerCompose有什么作用?

帮助我们快速部署分布式应用,无需一个个微服务去构建镜像和部署。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
docker基本操作包括镜像操作和容器操作。在镜像操作方面,可以使用docker命令进行搜索镜像、下载镜像、查看镜像列表、获取镜像信息、添加镜像标签、删除镜像等操作。可以使用docker search命令搜索镜像,使用docker pull命令下载镜像,使用docker images命令查看镜像列表,使用docker inspect命令获取镜像信息,使用docker tag命令添加镜像标签,使用docker rmi命令删除镜像。此外,还可以使用docker save/load命令进行镜像的导出和导入。在容器操作方面,可以使用docker命令进行查询容器运行状态、创建容器、启动容器进入容器、导出容器、删除容器等操作。可以使用docker ps命令查询所有容器运行状态,使用docker create命令创建容器,使用docker start命令启动容器,使用docker exec命令进入容器,使用docker export命令导出容器,使用docker rm命令删除容器。此外,还可以使用docker exec命令连接到容器内部,进行操作,可以通过exit退出容器,不影响容器运行。\[1\]\[2\] #### 引用[.reference_title] - *1* *2* [docker镜像与容器基本的基本操作](https://blog.csdn.net/m0_51160032/article/details/122444960)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [docker基本操作](https://blog.csdn.net/weixin_55614692/article/details/119510577)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值