Docker基础命令(二)

一、搜索镜像

1.在https://hub.docker.com/u/library 上搜索需要的镜像

image-20191118111227006

2.查看需要的版本

image-20191118111246821

image-20191118111305984

3.下载指定版本

docker pull python:3.6

下载完成查看

docker images

问题:怎样用docker中的Python???

二、交互模式使用容器

1. 运行已经创建的容器中的命令

有时我们需要进入到一个容器内部去操作这个容器,这时我们可以使用 docker exec 指令来实现

docker exec 指令可以执行一个运行着的容器中的命令:

docker exec -it 容器名称 命令

说明:

-it:以实时交互的形式运行(和 -d 正好相反)

注意:

如果要用docker exec,前提是已经有了一个正在运行的docker容器

1.查看当前docker容器: docker ps -a, 如果没有那么我们要创建一个容器

2.创建一个容器 : 

docker run --name==python3.6 -dit python:3.6

3.查看运行状况 : docker ps

4.运行

docker exec -it python3.6 python

执行 exit 指令可以退出容器

2. 创建容器时指定要要运行的命令

一般情况下,容器在制作的时候,都已经设定好了默认运行的命令,即在容器创建成功之后默认要开启的程序

但,如果想要运行其他的命令,也可以在创建容器时指定

可以直接在创建容器时,指定要运行的命令,方式如下

docker run -it 镜像:版本 要运行的命令例如
docker run -it mysql:5.7 /bin/bash

三、挂载硬盘

问题一

数据是保存在容器里的,如果容器删除了数据也就删除了

问题二

每次要修改容器时,必须要进入到容器中去修改,比如要修改my.cnf

为了能够保存(持久化)数据以及共享容器间的数据,Docker 提出了 Volume 的概念

可以使用 -v 这个参数,将容器中的一个目录或者文件 和主机上的目录和文件进行绑定,绑定之后,修改主机上的这个文件就相当于修改了容器中的文件,删除容器之后,绑定的目录和文件还在主机(不会被删除)

为了实现主机和容器之间的数据共享,我们可以在创建容器时添加 -v 参数:

docker run ... -v 主机目录:容器中的目录 ...

demo1

1.创建一个新容器,且设置共享路径

注意:创建时镜像名字放在最后

docker run -it -v /Users/houxiaojun/Desktop/work_dirs/dockerfile/ubuntu_flask:/home ubuntu:16.04

2.真实电脑创建文件、文件夹,容器看到共享成功 

3.容器修改文件内容,真实电脑看到共享数据成功 

demo2

目的:重启docker容器看数据能否再次使用

1.退出容器: exit

2.修改真实电脑文件数据 

3.再次运行容器 : docker start -i 上一次的容器id

4.查看容器是否看到共享数据,结果成功 

demo3

目的:删除容器之后共享文件(夹)是否会丢失

1.退出、删除容器: docker rm (容器id)

2.查看真实电脑文件依然在 

四、复制文件

我们可以使用 docker cp 指令向容器中复制文件,或者从容器中复制文件到主机

docker cp 源目录  目标目录

1.创建一个新的容器: docker run -it ubuntu(容器名)

2.查看真实电脑路径下无文件(夹) 

3.从容器复制文件到真实电脑

   在真实电脑终端执行: docker cp 容器id:文件路径 本地文件路径, 例如: docker cp 8ceb72275be3:/home/world.txt ./

4.从真正电脑复制文件夹到容器

   在真实电脑终端执行: docker cp 本地文件 容器id:文件存放路径      例如: docker cp hello.txt 8ceb72275be3:/home

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/52129.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C#控制台程序+Window增加右键菜单

有时候我们可能会想定制一些自己的右键菜单功能,帮我们减少重复的操作。那么使用控制台程序加自定义右键菜单,就可以很好地满足我们的需求。 1 编写控制台程序 因为我只用到了在文件夹中空白处的右键菜单,所以这里提供了一个对应的模板&…

分布式事务

事务是用户定义的一系列的数据库操作,这些操作可以视为一个完整的逻辑处理工作单元,要么全部成功(全部执行),要么全部失败(全都不执行),是不可分割的工作单元 分布式事务是指会涉及…

uniapp 使用iconfont

问题描述:在开发过程中会遇到使用自定义icon的情况,在uniapp项目中使用iconfont步骤如下。 问题解决 步骤一: 打开iconfont网址------我的项目-----下载至本地 下载成功的文件内容: 步骤二: 以管理员身份运行终端&am…

利用prophet实现时间序列数据结果预测及对预测数据进行年度趋势和月度值分解

第一部分:prophet的介绍 选取一段chatgpt对该插件的解释,如下: Prophet(预言家)是由Facebook开发的开源时间序列分析工具,旨在提供一个简单而强大的框架,用于预测时间序列数据。Prophet的设计目…

kubernetes 集群利用 efk 收集容器日志

文章目录 [toc]前情提要制作 centos 基础镜像准备 efk 二进制文件部署 efk 组件配置 namespace配置 gfs 的 endpoints配置 pv 和 pvc部署 elasticsearchefk-cmefk-svcefk-sts 部署 filebeatfilebeat-cmfilebeat-ds 部署 kibanakibana-cmkibana-svckibana-dp使用 nodeport 访问 …

虹科新品丨RevPi Connect 4系列:基于树莓派CM4计算模块的全新工业树莓派

新品来袭 势不可挡 备受期待的虹科工业树莓派第四代产品—RevPi Connect 4终于来啦!作为全球领先的工业自动化产品,RevPi Connect 4融合了工业树莓派多年技术积累与创新突破,以及现代物联网技术的结晶。无论您是行业领先者、工程师还是智能科…

Android系统APP之SettingsProvider

前言 SettingsProvider顾名思义是一个提供设置数据共享的Provider,SettingsProvider和Android系统其它Provider有很多不一样的地方,如: SettingsProvider只接受int、float、string等基本类型的数据;SettingsProvider由Android系…

2023年我想开信用账户!融资融券开通佣金最低是多少?两融利率低至5%!

2023年融资融券开通佣金最低是多少?两融利率低至5%! 随着科技的不断发展和金融市场的日益完善,2023年的融资融券市场将迎来更加便捷和低成本的交易方式。据悉,融资融券开通佣金最低仅为5%,且利率也将进一步降至5%左右。…

Vue3 watch监听器

概览:watch监听器的定义以及使用场景。在vue3中的监听器的使用方式,watch的三个参数,以及进一步了解第一个参数可以是一个属性,也可以是一个数组的形式包含多个属性。 watch在vue3和vue2中的使用: vue3中&#xff1a…

考研408 | 【计算机网络】概述

计算机网络体系结构 计算机网络概述:1.概念,组成,功能,分类2.标准化工作及相关组织3.性能指标体系结构&参考模型:1.分层结构2.协议,接口,服务3.ISO/OSI模型4.TCP/IP模型 目录 计算机网络体…

使用 LangChain 搭建基于 Amazon DynamoDB 的大语言模型应用

LangChain 是一个旨在简化使用大型语言模型创建应用程序的框架。作为语言模型集成框架,在这个应用场景中,LangChain 将与 Amazon DynamoDB 紧密结合,构建一个完整的基于大语言模型的聊天应用。 本次活动,我们特意邀请了亚马逊云科…

《每天5分钟玩转kubernetes》读书笔记

笔记 概念 Pod是脆弱的,但应用是健壮的。 kubelet运行在Cluster所有节点上,负责启动Pod和容器。kubeadm用于初始化Cluster。kubectl是k8s命令行工具。通过kubectl可以部署和管理应用,查看各种资源,创建、删除和更新各种组件。 …