要启动一个新的容器,我们使用 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: 你可以使用 cpuscpu-shares 选项来限制容器的 CPU 使用率。cpus 选项限制容器可以使用的 CPU 核心数量,而 cpu-shares 选项为容器分配相对的 CPU 时间份额。

    docker run --cpus=2 --cpu-shares=512 your-image

  • 内存: 你可以使用 memorymemory-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: 你可以使用 hostnamedns 选项来自定义容器的主机名和 DNS 设置。

    docker run --hostname=my-container --dns=8.8.8.8 your-image

包括这些运行时配置选项将允许你有效地管理容器的资源、安全性和网络需求。有关可用运行时配置选项的完整列表,请参阅 Docker 的官方文档

最后

为了方便其他设备和平台的小伙伴观看往期文章,链接奉上:

公众号 Let us Coding牛客知乎开源中国CSDN思否掘金InfoQ简书博客园慕课51CTOhelloworld腾讯开发者社区阿里开发者社区

看完如果觉得有帮助,欢迎点赞、收藏关注

Docker学习路线9:运行容器的更多相关文章

  1. 优秀的云计算工程师需要学什么?云计算Docker学习路线

    云计算工程师要学什么?随着互联网的快速发展,云计算这个词大家并不陌生,但是云计算究竟是做什么的,想要从事云计算要学习什么,很多都不知道,那么今天就给大家讲一下云计算. 云计算是基于互联网的相关服务的增 ...

  2. docker 学习路线

    docker 学习路线 参考资料 知乎 docker 的学习路线 Docker - 从入门到实践 Docker 核心技术与实现原理 Docker 入门 <Kubernetes in Action ...

  3. Docker学习笔记 - 在运行中的容器内启动新进程

    docker psdoker top dc1 # 容器情况# 在运行中的容器内启动新进程docker exec [-d] [-i] [-t] 容器名 [command] [args]docker ex ...

  4. Docker学习笔记之运行和管理容器

    0x00 概述 容器是基于容器技术所建立和运行的轻量级应用运行环境,它是 Docker 封装和管理应用程序或微服务的“集装箱”.在 Docker 中,容器算是最核心的部分了,掌握容器的操作也是 Doc ...

  5. centos7下安装docker(8.1运行容器)

    从今天开始学习docker container 1.docker run 之前我们在学习制作镜像以及制作私有仓库的时候已经用到docker run -it以及docker run -d来临时运行一个容 ...

  6. Docker学习之搭建MySql容器服务

    描述 MySQL 5.6 SQL数据库服务器Docker镜像,此容器映像包含用于OpenShift的MySQL 5.6 SQL数据库服务器和一般用法.用户可以选择RHEL和基于CentOS的图像.然后 ...

  7. docker学习笔记2:容器操作

    一.列出主机上已经创建的容器 docker ps -a 二.创建交互式容器 命令: docker run -i -t ubuntu /bin/bash 其中-i -t 表示创建一个提供交互式shell ...

  8. Docker学习笔记之为容器配置网络

    0x00 概述 在互联网时代,网络已经成为绝大多数应用进行数据交换的主要通道,Docker 作为集群部署的利器,在网络支持上也下了许多功夫.功能丰富和强大,并不代表使用复杂,在 Docker 的封装下 ...

  9. docker 学习(十) 容器常用命令

    1  docker run -it ubuntu:15.10 /bin/bash 如果有ubuntu:15.10这个镜像,就run,否则会从dockerhub下载,并run. -it 一般连用,表示按 ...

  10. docker学习笔记2--对镜像/容器的命令操作

    Docker启动一个Centos镜像 我们下载完成一个Centos镜像之后,开始启动 docker run -d -i -t <imageID> /bin/bash 这样就能启动一个一直停 ...

随机推荐

  1. 解析Spring中的循环依赖问题:初探三级缓存

    什么是循环依赖? 这个情况很简单,即A对象依赖B对象,同时B对象也依赖A对象,让我们来简单看一下. // A依赖了B class A{ public B b; } // B依赖了A class B{ ...

  2. 【Azure 环境】微软云上主机,服务的安全更新疑问

    [问题一]微软云上的虚拟机,不论是Windows系统or Linux 系统,系统的安全补丁是由微软云平台   打上补丁进行修复,还是使用虚拟机的用户手动更新修复呢? [答]这些补丁不会由平台来直接操作 ...

  3. STL-queue模拟实现

    #include<list> #include<assert.h> #include<deque> #include<iostream> using s ...

  4. Acwing第132场周赛

    AcWing 5366. 大小写转换 签到题,可以用stl里面的tolower函数 #include <bits/stdc++.h> #define ls p<<1 #defi ...

  5. Go和TinyGo

    Go和TinyGo是两种不同的Go语言编译器,它们之间有以下几点区别: 目标平台: Go:Go语言编译器主要面向通用计算机平台,如Windows.Linux.macOS等. TinyGo:TinyGo ...

  6. springl课程整理,图片文档

    学习spring第一步,导入坐标 注入案例 还能给bean取一个或多个别名.格式如下name = "xxx,ooo" 工厂方法也能不用new 造方法 工厂类方法用下面方法 如果不用 ...

  7. nginx rewrite 语法

    nginx rewrite 语法 一 定义 Rewrite主要实现url地址重写, 以及地址重定向,就是将用户请求web服 务器的地址重新定向到其他URL的过程. 二 语法格式 reweite fia ...

  8. vscode 格式化 vue 和 js代码 vetur prettier beautify

    这个文档 不涉及eslint 只专注自动格式化 格式化个性化需求: js中 自动去分号 js中 双引号变单引号 最大空换行数 是2 vue template中 属性自动折行 vue 的自动格式化 需要 ...

  9. 【mac】Alfred 无法调用Terminal

    原因:是从mac app商店安装的Alfred class 解决方案:建议从官网下载安装:https://www.alfredapp.com/ 参考:https://www.alfredforum.c ...

  10. 在运行程序是出现sh: 行 1: cls: 未找到命令

    在运行程序是出现sh: 行 1: cls: 未找到命令 原因是system("cls");--这是在程序中调用系统命令,但是linux识别不了.功能是清除当前的终端显示数据.找到l ...