首页 > 其他分享 >3. docker的实践玩法

3. docker的实践玩法

时间:2023-06-11 14:11:35浏览次数:32  
标签:容器 sudo 玩法 实践 镜像 docker ID 运行

1. docker的进程架构

  • docker服务进程:就是针对docker服务的命令,启动,重启
  • 接口:通过参数指定容器的IP和端口,实现对容器的远程操作
  • 客户端命令行:对docker的操作命令 
  • 最后学会管理容器的网络,进程,容器等

2. docker的命令

  • 镜像的拉取
    sudo docker search  镜像名称 # 搜索镜像文件
    sudo docker pull 镜像名称
  • 查看镜像
    sudo docker images
  • 运行容器
    # 简单运行一下,通常会执行一下容器就会挂掉
    docker run 镜像名称
    # 交互式的运行一个的docker容器,-i:交互式命令, -t:开启一个终端
    docker run -it 镜像名称 /bin/bash
    
    # 后台运行一个docker容器,并指定运行shell代码 -d:让容器后台运行, -c:运行的shell命令
    docker run -d 镜像名称 /bin/sh -c "while true;do echo 辛苦了,学习linux; sleep 1;done"
    
    # 运行容器并指定名称
    docker run --name xxx -it 镜像名称 /bin/bash
    # 运行容器并指定端口映射
    docker run --name xxx -it 镜像名称 -p 6000:5000
    # 运行容器并制定端口映射,文件夹映射和环境PATH映射
    docker run --name xxx -it 镜像名称 -p 6000:5000 -v 宿主机目录:容器目录 -e

    # 运行容器指定容器的网络模式
    docker run -d --name xxx --net=host
    # 进入一个存活的容器 docker exec -it 容器id /bin/bash 

    # 退出容器
    exit
  • 停止容器
    sudo docker stop 容器ID/容器名字
  • 查看容器
    sudo docker ps # 查看存活的容器
    sudo docker ps -a # 查看所有的容器
  • 启动容器
    sudo docker start 容器名称/容器ID
  • 查看容器的详情
     sudo dockder inspect 容器名称/容器ID
    sudo docker inspect e6b | grep -i ipaddr

  • 停止一个容器

    sudo docker stop 容器ID/容器名字
  • 重启一个容器

     sudo docker restart 容器ID/容器名字
  • 删除一个容器

     sudo docker rm 容器ID/容器名称  # 必须是非正在运行的容器
  • 删除一个镜像

    sudo docker rmi image的名字/镜像ID  # 确保没有容器使用该镜像(运行或者停止的容器)

     

     

     

3. 访问容器内的nginx

3.1 搜索并下载nginx

sudo docker search nginx

 根据镜像的名字下载镜像

sudo docker pull nginx

 查看本地的镜像文件

sudo docker images

 

3.2 运行并访问nginx

3.2.1 运行nginx镜像

返回该容器的一个ID值

sudo docker run -d -p 80:80 nginx # d:后台运行,p实现容器和宿主机端口的映射

 查看存活的容器

sudo docker ps

 在本地浏览器中输入宿主机IP即可访问nginx

 网络流量走向

 

4. 下载常用的docker

4.1 下载redis

sudo docker search redis
sudo docker pull redis

 

4.2 下载ubutun

sudo docker search ubuntu
sudo docker pull ubuntu

 

5. docker 镜像分层原理

我们在下载一个镜像的时候,细心一点会发现,下载的时候会分层下载

 

原因就是镜像会分层保存,很多容器共用一些层次,分层储存就可以节省容器的内存空间

 

6. 批量操作容器

只查看容器的ID

sudo docker ps -q

 

6.1 停止所有正在运行的容器

sudo docker stop `sudo docker ps -q`

 

6.2 删除所有的容器

sudo docker rm `sudo docker ps -aq`

 

 

7. 查看某个镜像可用的所有版本

但是有一点,需要使用外网才可以,以centos为例

https://hub.docker.com/v2/repositories/library/centos/tags/
curl -s https://hub.docker.com/v2/repositories/library/centos/tags/ | jq 

然后下载指定的版本

 

8. 操作dockerHub

以下操作必须使用外网才可以

8.1 注册一个docker hub

link:https://hub.docker.com/

 

8.2 登录个人账号

 

8.3 在宿主机登录个人docker账号

sudo docker login

 

 

8.4 生成本地镜像

以hello-word镜像为例,发送到自己的docker hub中,使用如下命令

sudo docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]

 

 

8.5 推送本地镜像到自己账号中

sudo docker push IMAGE

 

 

此时自己的dockerhub中就有该镜像了

 

8.6 将自己账号的镜像拉下来

我需要将本地的删除,然后拉取

 

 

9 根据容器生成新的image

通常我们根据一个image,然后安装了很多的服务,我们希望以后基于该容器进行部署,我们就可以将该容器生成一个新的image

 

9.1 将容器生成image

sudo docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]

 

9.2 推送image

 

 

 

10. 本地镜像的导出和导入

10.1.1 导出

sudo docker save 镜像ID/镜像名称  > 文件名.tar # 导出的文件时tar的格式

  

 

10.1.2 导入

sudo docker load -i  文件名.tar # 导出的文件时tar的格式

 

标签:容器,sudo,玩法,实践,镜像,docker,ID,运行
From: https://www.cnblogs.com/victor1234/p/17471314.html

相关文章

  • STL实践指南
    这是一篇指导您如何在Microsoft Visual Studio下学习STL并进行实践的文章。这篇文章从STL的基础知识讲起,循序渐进,逐步深入,涉及到了STL编写代码的方法、STL代码的编译和调试、命名空间(namespace)、STL中的ANSI / ISO字符串、各种不同类型的容器(container)、......
  • 在Windows上无docker直接将基于Solon的jar包通过IDEA部署到Linux的docker上
    为何会选择学习solon?springboot对于我开发小企业应用太重,启动太慢,下班太晚!为何都用windows,还想着不安装dockerdesktop洁癖,运行路径能短就短。步骤(以solon官网的helloword为例)1、下载helloworld代码传送阵:点击我2、通过IDEA打开代码,并运行它(我是下载基于maven版本的)。3......
  • 10、Docker利用数据卷实现容器数据持久化与数据卷容器
    Docker利用数据卷实现容器数据持久化docker容器的分层容器的数据分层目录LowerDir:image镜像层,即镜像本身,只读UpperDir:容器的上层,可读写,容器变化的数据存放在此处,创建好容器,修改了数据,新生的的修改数据放在此处MergedDir:容器的文件系统,使用UnionFS(联合文件系统)......
  • ubuntu安装docker 记录
    2023.6.11上午sudoaptinstalldocker-io//安装systemctlstatusdocker//查看运行状态sudodockerrunhello-world//测试 为学习操作系统做准备,在docker中运行 docker安装以下 nasmgccbinnutilsqemu-system-i386mtools//《30天自制操作系统》......
  • docker 安装并配置nacos2.2.2 单机
    docker拉取文件找镜像参考mysql安装找镜像步骤:https://www.cnblogs.com/CodeLuckly/p/15710643.html拉取命令:dockerpullnacos/nacos-server:v2.2.2挂载目录:就是为了让nacos的容器中文件映射到宿主机上mkdir-p/mydata/nacos/logs/#新建logs目录......
  • tink google 加密安全实践的框架
    tink是google多年加密实践的框架,提供了安全的加密处理方法,可以简化不少我们的加密处理参考使用publicstaticvoidmain(String[]args)throwsGeneralSecurityException,IOException{AeadConfig.register();//1.Generatethekeymaterial.KeysetHandlekeysetHandle=Key......
  • 看看Angular有啥新玩法!手把手教你在Angular15中集成Excel报表插件
    Angular15新特性Angular框架(以下简称“Angular”)作为一款由谷歌开发的Web应用程序框架,其强大的依赖注入系统、可重复使用的模块化开发理念和响应式编程模式等特点让Angular一问世便取得了巨大的关注和流量。截止目前为止,Angular已经迭代了15个版本,而Angular15又有哪些新的亮眼表现......
  • nas使用docker部署alist​
    一、下载镜像xhofe/alist:latest二、创建容器第一行:文件/文件夹:此处填写在nas上事先创建好的目录位置装载路径:/opt/alist/data类型选读写启动容器,检查日志是否有报错项。如没有报错,容器应该为运行中的状态。三、打开alist页面点击快捷方式查看应用网址打开alist登录页面http://192......
  • postgresql/lightdb批量导入导出数据系列copy/ltuldr/ltldr/lt_bulkload及最佳实践推
    文件位于服务器上,这就限制了使用范围。为此,对于导出,lightdb提供了高性能导出版本ltuldr。对于导入,lightdb在23.1之前提供lt_bulkload,见下文;从23.1开始,支持和oraclesql*loader对应的ltldr。copy可用于快速导入和导出数据,主要用途如下:TheCOPYcommandmovesdatabetweenPostg......
  • 深入理解MySQL Binlog:从原理到实践
    binlog介绍记录了所有的DDL和DML(除了数据查询语句)语句,以事件形式记录,还包含语句所执行的消耗的时间,MySQL的二进制日志是事务安全型的。作用:复制:MySQLReplication在Master端开启binlog,Master把它的二进制日志传递给slaves并回放来达到master-slave数据一致的目的数据恢复:......