新手零基础快速入门Docker
Docker学习
前言
今天第一次学习docker,跟着一位up主的视频进行了练习,把一些视频中讲到的内容记录了下来,并结合菜鸟教程中docker教程写下本文。
本文是我零基础入门docker的第一篇文章,供大家参考,自身实力不足,难免出现纰漏,恳请指出,希望大家共同努力,一起变强!
什么是docker
Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。
Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。
如何练习
Play With Docker( PWD )是一个利用云主机搭建的在线实验环境,具有开源免费、 Web 端友好、指引步骤详细、开箱即用等特性,用户可以构建、运行Docker容器,甚至可以在Docker Swarm模式下创建集群。
https://labs.play-with-docker.com/
新手常见命令
docker pull
docker pull : 从镜像仓库中拉取或者更新指定镜像
docker pull [OPTIONS] NAME[:TAG|@DIGEST]
docker pull nginx
完成从仓库 通过pull 构建成镜像
docker images查看镜像
查看有哪些镜像
docker run创建容器
docker run -d -p 80:80 nginx
创建一个新的容器并运行一个命令
语法docker run [OPTIONS] IMAGE [COMMAND] [ARG…]
-d 为后台运行容器 返回容器ID
-p 指定端口映射 主机端口:容器端口
用docker run -d -p 81:80 nginx
可以创建一个新的外部端口映射到相同的容器端口,打开的页面相同
以命令行模式进入容器
$ docker run -it ubuntu /bin/bash
参数说明:
- -i: 交互式操作。
- -t: 终端。
- ubuntu: ubuntu 镜像。
- /bin/bash:放在镜像名后的是命令,这里我们希望有个交互式 Shell,因此用的是 /bin/bash。
docker ps查看运行的容器
查看正在运行的容器
docker exec执行命令
exec命令退出容器终端,不会导致容器的停止
在运行的容器中执行命令
docker exec [OPTIONS] CONTAINER COMMAND [ARG…]
OPTIONS说明:
- -d 分离模式: 在后台运行
- **-i ** 即使没有附加也保持STDIN 打开
- -t **分配一个伪终端
容器的进入与退出
##### 进入bash界面
docker exec -it 90 bash
(90为CONTAINER ID的前两位)
docker exec -it 90 /bin/bash
不知上述两种方法是否等价
进入容器后 使用linux命令
ls
cd /usr/share/nginx/html/
显示html文件
cat index.html
cat的作用是显示整个文件
echo hello >index.html
修改文件
打开80端口的html文件 发现页面被修改 81保持不变
bash参考资料
在容器中以root@c0c.....:/#
开头
exit退出容器
exit
或者使用CTRL+D
root@IP:~# 表明我们已经退出了当前的容器,返回到当前的主机中。
docker stop停止容器
docker stop c0(container id)
docker rm -f删除容器
强制删除容器
docker commit 指定镜像名字
docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
实例
将容器a404c6c174a2 保存为新的镜像,并添加提交人信息和说明信息。
runoob@runoob:~$ docker commit -a "runoob.com" -m "my apache" a404c6c174a2 mymysql:v1
sha256:37af1236adef1544e8886be23010b66577647a40bc02c0885a6600b33ee28057
runoob@runoob:~$ docker images mymysql:v1
REPOSITORY TAG IMAGE ID CREATED SIZE
mymysql v1 37af1236adef 15 seconds ago 329 MB
dockerfile
Dockerfile 是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明。
#### 新建dockerfile文件
vim Dockerfile
vim操作不会的自行搜索
输入如下内容
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yCQwKUly-1617546827392)(C:\Users\Zilong\AppData\Roaming\Typora\typora-user-images\image-20210404200510834.png)]
创建主页
vim index.html
docker build
docker build -t name2 .
用docker images
查看镜像 发现已经创建name2的镜像
使用 docker run -d -p 91:80 name2
运行镜像
通过91号端口即可进入新的容器html主页
docker save 保存容器到镜像
docker save name2 > 1.tar
docker load
导入使用 docker save 命令导出的镜像。
docker load < 1.tar
参考资料
docker10分钟入门
docker菜鸟教程
新手零基础快速入门Docker相关推荐
- 【Python零基础快速入门系列 | 03】AI数据容器底层核心之Python列表
• 这是机器未来的第7篇文章 原文首发地址:https://blog.csdn.net/RobotFutures/article/details/124957520 <Python零基础快速入门 ...
- rust放置木箱转向_[易学易懂系列|rustlang语言|零基础|快速入门|(17)|装箱crates]...
[易学易懂系列|rustlang语言|零基础|快速入门|(17)|装箱crates] 实用知识 装箱crates 我们今天来讲讲装箱技术crates. 什么是crates? 英语翻译是: 英 [kre ...
- 零基础快速入门web学习路线(含视频教程)
下面小编专门为广大web学习爱好者汇总了一条完整的自学线路:零基础快速入门web学习路线(含视频教程)(绝对纯干货)适合初学者的最新WEB前端学习路线汇总! 在当下来说web前端开发工程师可谓是高福利 ...
- python海龟教程_Python 零基础 快速入门 趣味教程 (咪博士 海龟绘图 turtle) 7. 条件循环...
条件循环能够让程序在条件成立时(即为真时)重复执行循环体中的语句.如果条件一直成立(即永远不会为假),则循环会一直进行下去,不会停止.如果初始时,条件不成立,则循环 1 次也不会执行.Python 中 ...
- 【Python零基础快速入门系列 | 07】浪漫的数据容器:成双成对之字典
这是机器未来的第11篇文章 原文首发链接:https://blog.csdn.net/RobotFutures/article/details/125038890 <Python零基础快速入门系 ...
- ROS2零基础快速入门
ROS2入门最快需要多少时间?3天: ROS2开发一款基础机器人需要多久?3个星期: ROS2怎么才能算"精通"?不可能,3年也不行-- 如何判断一款通用性软件成熟并可以投入精力去 ...
- 零基础快速入门SpringBoot2.0教程 (三)
一.SpringBoot Starter讲解 简介:介绍什么是SpringBoot Starter和主要作用 1.官网地址:https://docs.spring.io/spring-boot/doc ...
- 【PR】零基础快速入门教程
[PR]零基础快速入门教程 PR(Premiere)能做什么? PR欢迎界面及新建项目 工作区及窗口说明 导入文件 建立序列 视频剪辑 添加字幕 导出视频 使用软件:Premiere2020 新年卷起 ...
- 《Kubernetes零基础快速入门》简介
容器技术快速入门书<Kubernetes零基础快速入门>,京东当当天猫都有发售.定价59元,打折一下更合适. Kubernetes为容器化的应用提供了资源调度.部署.运行.服务发现.扩容和 ...
最新文章
- 【微信小程序canvas】实现小程序手写板用户签名(附代码)
- 科大星云诗社动态20210423
- Android WebView 致安卓应用闪退,mPaaS 助你规避这波 Bug
- (C语言版)链表(三)——实现双向链表创建、删除、插入、释放内存等简单操作
- Day Two(Beta)
- 用python进行多页数据爬取_Python Scrapy如何实现多页数据爬取?
- DDD:四色原型、DDD、DCI之间的关系
- 从王者荣耀里我学会的前端新手指引
- 不使用资源文件动态创建对话框的做法
- H3C nat转换实验
- Spring Security 11 种过滤器介绍
- 大唐杯 5G协议与信令 任务六、任务七(24:30-35:00)
- [Matlab] norm函数用法(用于RMSE和R2)
- 在三维空间中表示平面和直线
- 学计算机的女生选择公务员还是考研,女生本科毕业!考研好,还是考公务员更好?...
- vulcan 编程_Vulcan和AUSK之间的比较:如何充分利用Node,React和GraphQL
- 安卓手机真的不行了,搞不定卡顿问题,只能抄袭苹果iOS系统,然而各怀鬼胎的它们终究画虎不成反类犬...
- [分享] 【强烈推荐】要速度更要方便!75款实用Chrome插件推荐
- 【XSY3126】异或II 数学
- brk系统调用和copy-on-write机制
热门文章
- vue 使用table2excel导出excel表格(带图片)
- 問題の解決策 [USACO18JAN]Lifeguards P(题解)
- 会计记账公式、六要素、记账流程
- C语言编程从键盘输入n值
- 以人工智能或无人化、自动化技术影响世界
- 非计算机专业有前景吗,十大最有前景的专业,第一名居然不是计算机
- oracle.jdbc.driver.OracleDriver和oracle.jdbc.OracleDriver这两个驱动有什么区别?
- 推荐几款HTML5开发工具
- Docker、nvidia-container-toolkit安装与常用docker命令及docker镜像和容器的更新维护
- 击中击不中变换的作用理解