Docker入门实践笔记-基本使用
容器是一个系统中被隔离的特殊环境,进程可以在其中不受干扰地运行,使用Docker来实现容器化
容器化
运行容器时,要先拉取一个镜像(image),再通过这个镜像来启动容器:
$ sudo docker pull busybox
$ docker run busybox echo hello world
使用docker pull 拉取一个镜像,再通过这个镜像启动容器。镜像将运行程序所需要的文件系统、依赖库、环境变量、启动参数等所有信息打包整合到了一起,和常见的tar、rpm、deb等安装包一样,都打包了应用程序,但镜像中不仅有基本的可执行文件,还有应用运行时的整个系统环境。这让镜像具有较好的非常好的跨平台便携性和兼容性,能够让开发者在一个系统上开发。
docker pull busybox就是获取了一个打包了busybox应用的镜像,里面固化了busybox程序及其所需的完整运行环境
docker run busybox echo hello world提取了镜像中的各种信息,运用namespace、cgroup、chroot创建出隔离环境,然后运行busybox中的echo命令,输出hello world字符串
所谓的容器化的应用,就是指应用程序不再直接和操作系统打交道,而是封装成镜像,再交给容器环境去运行

常用操作
docker pull从远端仓库拉取镜像,docker images列出当前本地已有的镜像
镜像的完整名字格式: 名字:标签,名字表明身份,比如busybox、Alpine、Nginx...。标签(tag)则可以理解成是为了区分不同版本的应用而做的额外标记,任何字符串都可以。
例如:
docker pull alpine:3.15
docker pull ubuntu:jammy
docker pull nginx:1.21-alpine
使用docker images命令查看所有镜像的具体信息:
$ sudo docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
busybox latest 62aedd01bd85 5 weeks ago 1.24MB
ubuntu jammy 27941809078c 5 weeks ago 77.8MB
nginx 1.21-alpine b1c3acb28882 2 months ago 23.4MB
alpine 3.15 0ac33e5f5afa 3 months ago 5.57MB
第一列REPOSITORY是镜像的名字,第二列TAG是这个镜像的标签。第三列IMAGE ID是唯一标志,是16进制且唯一的,在本地使用镜像的时候,写出前3位就能快速定位
使用docker rmi删除不再使用的镜像:
sudo docker rmi alpine:3.15
sudo docker rmi b1c
第二处删除仅仅使用ID的前3位即可删除
使用docker run可以运行应用:
sudo docker run -h srv alpine hostname
这里的 -h srv 就是容器的运行参数,alpine 是镜像名,它后面的 hostname 表示要在容器里运行的“hostname”这个程序,输出主机名
-it 表示开启一个交互式操作的 Shell,这样可以直接进入容器内部,就好像是登录虚拟机一样。(它实际上是“-i”和“-t”两个参数的组合形式)
-d 表示让容器在后台运行,这在启动 Nginx、Redis 等服务器程序的时候非常有用
--name 可以为容器起一个名字,方便查看,不过它不是必须的,如果不用这个参数,Docker 会分配一个随机的名字
sudo docker run -it --name ubuntu 279 sh
该命令启动了ubuntu镜像(用了前缀)运行了一个终端
# ps -ef
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 13:18 pts/0 00:00:00 sh
root 11 1 0 13:30 pts/0 00:00:00 ps -ef
运行ps -ef查看进程,只看到两个进程
输入exit退出终端,输入docker ps -a可以查看所有所有(包括已经退出的)
$ sudo docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
57f2e79c7a67 279 "sh" 24 minutes ago Exited (127) 23 minutes ago ubuntu
d99d9ab2cba8 alpine "hostname" 46 minutes ago Exited (0) 46 minutes ago mystifying_edison
d20922c97d54 busybox "echo hello world" 45 hours ago Exited (0) 45 hours ago elegant_boyd
24cc4f7a033f busybox "echo helloworld" 45 hours ago Exited (0) 45 hours ago funny_fermat
使用docker stop可以强制停止某个容器,例如输入docker stop 279就停止了刚刚的ubuntu(如果在运行的话),使用docker start可以启动停止的容器,使用docker rm可以删除容器,在ps列表中就看不到了
总结
docker run: 从镜像中启动容器,运行容器化应用
| 常用参数 | 作用 |
|---|---|
| -it | 开启一个交互式操作的shell |
| -d | 让容器在后台运行 |
| --name | 为容器命名 |
| --rm | 不保存容器,运行完自动清除 |
docker ps: 列出正在运行的容器,添加-a可以列出已经停止在内的容器的所有容器
docker exec: 在容器内执行另一个程序
docker stop: 强制停止容器
docker start: 再次启动已经停止的容器
docker rm: 彻底删除容器
Docker入门实践笔记-基本使用的更多相关文章
- 【实战】Docker入门实践二:Docker服务基本操作 和 测试Hello World
操作环境 操作系统:CentOS7.2 内存:1GB CPU:2核 Docker服务常用命令 docker服务操作命令如下 service docker start #启动服务 service doc ...
- 这是一次 docker 入门实践
前言 其实接触 docker 也有一段时间了,但是一直没有做下总结,现在网上关于 docker 的介绍也有很多了,本着好记性不如烂笔头的原则,还是自己再记录一波吧. 实现目标 安装 docker ce ...
- Docker 入门实践
欢迎大家前往腾讯云技术社区,获取更多腾讯海量技术实践干货哦~ 作者:张戈 导语 本文从新手视角记录了一个实际的Dokcer应用场景从创建.上传直到部署的详细过程,并简单的介绍了腾讯云容器服务的使用方法 ...
- Docker入门实践(三) 基本操作
Docker安装完毕.我们就能够试着来执行一些命令了.看看docker能够干什么. (一) 创建一个容器 首先.让我们执行一个最简单的容器,hello-world.假设安装没有问题.并执行正确的话,应 ...
- docker入门-学习笔记
docker可以类比成window下的VMware或者virtualbox软件.docker有两个基本的概念:容器(container)和镜像(image),分别对应为VMware中的系统镜像和系统镜 ...
- docker入门实战笔记
1.什么是docker: docker翻译为搬运工,在这里应该可以理解为搬运应用的工具,也就是云.先了解其运用场景之后更容易对他形成深刻理解. Docker提供了一种可移植的配置标准化机制,允许你一致 ...
- Docker入门实践
Docker是一门很成熟的容器技术,类似虚拟机技术主要用做环境的隔离,方便环境的复制镜像,虚拟机是基于操作系统这一层的,而Docker更加的轻量级,像是“应用”层级的.比如我需要一个MySQL环境.一 ...
- Docker入门学习笔记
Docker 什么是Docker 虚拟化技术 在计算机中,虚拟化是一种资源管理技术,将计算机中的各种实体资源如:CPU.硬盘.内存等予以抽象.转换后呈现出来打破实体结构间的不可切割的障碍,使用户可以比 ...
- 【实战】Docker 入门实战一:ubuntu 和 centos 安装Docker
Docker是什么 Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源.Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级.可移植的容器中,然后发布 ...
- Python编程从入门到实践笔记——异常和存储数据
Python编程从入门到实践笔记——异常和存储数据 #coding=gbk #Python编程从入门到实践笔记——异常和存储数据 #10.3异常 #Python使用被称为异常的特殊对象来管理程序执行期 ...
随机推荐
- 安卓手机qpython使用感觉
我是写C#的,最佳一时兴起,下载了个qpython来玩儿,发现这东西写点简单的爬虫还行,配合sqlite,可以做一些简单的事情,于是乎想写一个有趣的东西,在qpython写一个脚本,去收蚂蚁森林的能量 ...
- 查看shell 用户连接数
w | grep pts |wc -l
- linux/windows常见文件系统最大支持单个文件大小
windows常见文件系统:FAT12/FAT16/FAT32/NTFS/NTFS5.0 对应支持大小: 8M/2G/4G/64G/2TB linux常见文件系统:ext2/ext3/ext ...
- luffy项目settings
一: 二:. 设置调整 1.修改manage.py配置路径 os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'luffyApi.settings.de ...
- mysql索引类型详解
转载网址: http://c.biancheng.net/view/7897.html
- IDEA学生认证的步骤详解
步骤详解 在上次使用学生认证的方法对jetbrains认证成功之后,咱们在IDEA这里认证一下吧! 一.点击help这里的register 如图所示: 进入这样一个界面: 然后点击左下角的的Log I ...
- Cesium渲染模块之Command
1. 引言 Cesium是一款三维地球和地图可视化开源JavaScript库,使用WebGL来进行硬件加速图形,使用时不需要任何插件支持,基于Apache2.0许可的开源程序,可以免费用于商业和非商业 ...
- Gym - 101845E (图形转换思维)
题意:给你个边长为n(1 <= n <= 50)的下图这种三角形,图形所有点构成集合.找多少对a,b满足条件,条件为:ab两点之间还有其他点. 题解:刚开始以为直接找规律就行,wa了两次发 ...
- Unity绘制圆和缓动雷达图
Unity绘制圆和缓动雷达图 之前在做UI模块的时候遇到过需要做雷达图的效果,所以简单复习了一下 关于网格绘制 我们都知道Unity绘制图形是通过Mesh网格添加顶点进行绘制,那么知道顶点信息后如何实 ...
- 8.XSS和CSRF漏洞
XSS和CSRF漏洞 目录 XSS和CSRF漏洞 XSS漏洞介绍 XSS分类 利用XSS漏洞如何实行攻击 利用XSS盗取用户的Cookie 利用XSS实行钓鱼 利用XSS进行键盘监控 CSRF漏洞介绍 ...