Docker学习路线9:运行容器
要启动一个新的容器,我们使用 docker run 命令,后跟镜像名称。基本语法如下:
docker run [选项] 镜像 [COMMAND] [ARG...]
例如,要运行官方的 Nginx 镜像,我们可以使用:
docker run -d -p 8080:80 nginx
这会启动一个新的容器,并将主机的端口 8080 映射到容器的端口 80。
列出容器
要列出所有正在运行的容器,请使用 docker ps 命令。要查看所有容器(包括已停止的容器),请使用 -a 标志:
docker container ls -a
访问容器
要访问正在运行的容器的 shell,请使用 docker exec 命令:
docker exec -it CONTAINER_ID bash
将 CONTAINER_ID 替换为所需容器的 ID 或名称。您可以在 docker ps 的输出中找到它。
停止容器
要停止运行中的容器,请使用 docker stop 命令,后跟容器 ID 或名称:
docker container stop CONTAINER_ID
删除容器
停止容器后,我们可以使用 docker rm 命令,后跟容器 ID 或名称,将其删除:
docker container rm CONTAINER_ID
要在退出时自动删除容器,请在运行容器时添加 --rm 标志:
docker run --rm IMAGE
Docker Compose
Docker Compose 是一个用于定义和运行多容器 Docker 应用程序的工具。它允许您使用一个简单的名为 docker-compose.yml 的 YAML 文件创建、管理和运行应用程序。此文件描述了你的应用程序的服务、网络和卷,只需使用一个命令就可以轻松运行和管理你的容器。
使用 Docker Compose 的一些好处包括:
- 简化容器管理: Docker Compose 允许您在一个地方定义和配置所有服务、网络和卷,使其易于管理和维护。
- 可重复构建: 共享你的
docker-compose.yml文件,以确保他人运行相同的环境和服务。 - 版本支持: Docker Compose 文件可以进行版本控制,以便更容易地与不同版本的 Docker Compose 工具进行兼容。
创建 Docker Compose 文件:
要创建一个 docker-compose.yml 文件,首先指定您想要使用的 Docker Compose 版本,然后是您想要定义的服务。下面是一个基本的 docker-compose.yml 文件示例:
version: "3.9"services: web: image: nginx:latest ports: - "80:80" db: image: mysql:latest environment: MYSQL_ROOT_PASSWORD: mysecretpassword
在这个示例中,我们指定了两个服务:一个运行最新版本 nginx 镜像的 Web 服务器(web),以及运行 MySQL 的数据库服务器(db)。Web 服务器将其端口 80 暴露给主机,而数据库服务器则设置了根密码的环境变量。
运行 Docker Compose:
要运行你的 Docker Compose 应用程序,只需导航到包含你的 docker-compose.yml 文件的目录,并运行以下命令:
docker-compose up
Docker Compose 将读取文件并按指定的顺序启动定义的服务。
其他有用的命令:
docker-compose down:停止并删除在docker-compose.yml文件中定义的所有正在运行的容器、网络和卷。docker-compose ps:列出在docker-compose.yml文件中定义的所有容器的状态。docker-compose logs:显示在docker-compose.yml文件中定义的所有容器的日志。docker-compose build:构建在docker-compose.yml文件中定义的所有镜像。
这是一个关于 Docker Compose 的简要介绍!了解更多信息,请查看官方的 Docker Compose 文档。
运行时配置选项
运行时配置选项允许你在运行 Docker 容器时自定义容器的行为和资源。这些选项对于管理容器的资源、安全性和网络非常有帮助。以下是一些常用的运行时配置选项的简要概述:
资源管理
CPU: 你可以使用
cpus和cpu-shares选项来限制容器的 CPU 使用率。cpus选项限制容器可以使用的 CPU 核心数量,而cpu-shares选项为容器分配相对的 CPU 时间份额。docker run --cpus=2 --cpu-shares=512 your-image内存: 你可以使用
memory和memory-reservation选项来限制和预留容器的内存。这可以帮助防止容器占用过多的系统资源。docker run --memory=1G --memory-reservation=500M your-image
安全性
用户: 默认情况下,容器作为
root用户运行。为了增加安全性,你可以使用user选项将容器作为其他用户或 UID 运行。docker run --user 1000 your-image只读根文件系统: 为了防止容器对文件系统进行不必要的更改,你可以使用
read-only选项将根文件系统挂载为只读。docker run --read-only your-image
网络
发布端口: 你可以使用
publish(或p)选项将容器的端口发布到主机系统上。这允许外部系统访问容器化的服务。docker run -p 80:80 your-image主机名和 DNS: 你可以使用
hostname和dns选项来自定义容器的主机名和 DNS 设置。docker run --hostname=my-container --dns=8.8.8.8 your-image
包括这些运行时配置选项将允许你有效地管理容器的资源、安全性和网络需求。有关可用运行时配置选项的完整列表,请参阅 Docker 的官方文档。
最后
为了方便其他设备和平台的小伙伴观看往期文章,链接奉上:
公众号 Let us Coding,牛客,知乎,开源中国,CSDN,思否,掘金,InfoQ,简书,博客园,慕课,51CTO,helloworld,腾讯开发者社区,阿里开发者社区
看完如果觉得有帮助,欢迎点赞、收藏和关注
Docker学习路线9:运行容器的更多相关文章
- 优秀的云计算工程师需要学什么?云计算Docker学习路线
云计算工程师要学什么?随着互联网的快速发展,云计算这个词大家并不陌生,但是云计算究竟是做什么的,想要从事云计算要学习什么,很多都不知道,那么今天就给大家讲一下云计算. 云计算是基于互联网的相关服务的增 ...
- docker 学习路线
docker 学习路线 参考资料 知乎 docker 的学习路线 Docker - 从入门到实践 Docker 核心技术与实现原理 Docker 入门 <Kubernetes in Action ...
- Docker学习笔记 - 在运行中的容器内启动新进程
docker psdoker top dc1 # 容器情况# 在运行中的容器内启动新进程docker exec [-d] [-i] [-t] 容器名 [command] [args]docker ex ...
- Docker学习笔记之运行和管理容器
0x00 概述 容器是基于容器技术所建立和运行的轻量级应用运行环境,它是 Docker 封装和管理应用程序或微服务的“集装箱”.在 Docker 中,容器算是最核心的部分了,掌握容器的操作也是 Doc ...
- centos7下安装docker(8.1运行容器)
从今天开始学习docker container 1.docker run 之前我们在学习制作镜像以及制作私有仓库的时候已经用到docker run -it以及docker run -d来临时运行一个容 ...
- Docker学习之搭建MySql容器服务
描述 MySQL 5.6 SQL数据库服务器Docker镜像,此容器映像包含用于OpenShift的MySQL 5.6 SQL数据库服务器和一般用法.用户可以选择RHEL和基于CentOS的图像.然后 ...
- docker学习笔记2:容器操作
一.列出主机上已经创建的容器 docker ps -a 二.创建交互式容器 命令: docker run -i -t ubuntu /bin/bash 其中-i -t 表示创建一个提供交互式shell ...
- Docker学习笔记之为容器配置网络
0x00 概述 在互联网时代,网络已经成为绝大多数应用进行数据交换的主要通道,Docker 作为集群部署的利器,在网络支持上也下了许多功夫.功能丰富和强大,并不代表使用复杂,在 Docker 的封装下 ...
- docker 学习(十) 容器常用命令
1 docker run -it ubuntu:15.10 /bin/bash 如果有ubuntu:15.10这个镜像,就run,否则会从dockerhub下载,并run. -it 一般连用,表示按 ...
- docker学习笔记2--对镜像/容器的命令操作
Docker启动一个Centos镜像 我们下载完成一个Centos镜像之后,开始启动 docker run -d -i -t <imageID> /bin/bash 这样就能启动一个一直停 ...
随机推荐
- 【算法day1】复杂度和简单排序算法(1)
复杂度和简单排序算法 时间复杂度 以一个排序(选择排序)操作举例 假设我有一个数组,我要找出其中的最小值放到0的位置上 那么 第一次我会遍历数组中N个数(在0位置处),找出最小的数交换到0位置[看了( ...
- Geospatial Data 在 Nebula Graph 中的实践
本文首发于 Nebula Graph Community 公众号 本文主要介绍了地理空间数据(Geospatial Data)以及它在 Nebula Graph 中的具体实践. Geospatial ...
- 玩转SpringBoot:SpringBoot的几种定时任务实现方式
引言 在现代软件开发中,定时任务是一种常见的需求,用于执行周期性的任务或在特定的时间点执行任务.这些任务可能涉及数据同步.数据备份.报表生成.缓存刷新等方面,对系统的稳定性和可靠性有着重要的影响.Sp ...
- vue开发过程常用的JSX语法
参考资料:https://juejin.cn/post/7114063575122984973 在Vue项目的开发过程,经常会使用到JSX语法,对常用的JSX语法分类做个笔记,方便需要之时查阅 动态绑 ...
- 音频重采样48kk转16k
作为一个音频算法工程师,不懂重采样怎么可以呢?这里做一个常用的方法介绍: pcm转wav: ffmpeg -f s16le -ar 8000 -ac 2 -i out.pcm -ar 44100 -a ...
- Android 桌面小组件使用
原文: Android 桌面小组件使用-Stars-One的杂货小窝 借助公司上的几个项目,算是学习了Android桌面小组件的用法,记下踩坑记录 基本步骤 1.创建小组件布局 这里需要注意的事,小组 ...
- (二)Linux环境的学习环境的搭建
Xshell的安装和连接 由于我们打算通过Xshell进行命令的输入,就不再进行VMWARE-TOOLS的安装. 我们直接进行安装Xshell 并开始连接我们创建的创建的虚拟机 我们可以通过Xshel ...
- 使用docker-compose管理freeswitch容器
概述 之前的文章我们介绍过如何将freeswitch做成docker镜像,也使用命令行模式正常启动了fs的docker容器. 但是当我们需要同时管理多个docker容器的时候,还是使用docker-c ...
- C++11 中运行代码块耗时的方法以及坑(chrono 方法)
PS:要转载请注明出处,本人版权所有. PS: 这个只是基于<我自己>的理解, 如果和你的原则及想法相冲突,请谅解,勿喷. 前置说明 本文作为本人csdn blog的主站的备份.(Bl ...
- 宁波市ctf线下赛awd总结
这是第四届宁波市ctf比赛的线下awd经验总结. 由于主办方的服务器出错,原定于14:00开始的比赛,最后17:30才开始,一直打到20:30. 并且突然改了一部分比赛方式,取消了前30分钟的加固时间 ...