Docker启动
时间: 2025-03-14 21:05:49 浏览: 30
### 如何启动 Docker 服务或容器
要启动 Docker 服务本身以及运行特定类型的容器,可以通过一系列标准命令完成。以下是详细的说明:
#### 启动 Docker 服务
为了确保 Docker 可以正常工作,首先需要启动 Docker 的守护进程。这通常通过 `systemctl` 工具来实现。
```bash
systemctl start docker # 启动 Docker 服务[^2]
```
如果希望在系统重启后自动启动 Docker 服务,则可以启用该服务:
```bash
systemctl enable docker # 设置开机自启 Docker 服务
```
停止和重新启动 Docker 服务也可以分别使用以下命令:
```bash
systemctl stop docker # 停止 Docker 服务
systemctl restart docker # 重启 Docker 服务
```
---
#### 启动常见容器的命令及配置
##### 1. **MySQL**
启动 MySQL 容器时,可以选择指定数据库名称、用户名和密码等参数。
```bash
docker run --name mysql-container -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:latest
```
上述命令会创建并启动一个名为 `mysql-container` 的容器,并设置 root 用户的密码为 `my-secret-pw`[^1]。
---
##### 2. **Nginx**
启动 Nginx 容器时,可以挂载本地目录到容器内部以便于调试网页文件。
```bash
docker run --name nginx-container -v /path/to/host/html:/usr/share/nginx/html:ro -p 80:80 -d nginx:alpine
```
此命令将主机上的 `/path/to/host/html` 文件夹映射到容器内的默认 HTML 路径,并开放端口 80。
---
##### 3. **Redis**
启动 Redis 容器时,可选配持久化存储路径或其他环境变量。
```bash
docker run --name redis-container -v /path/on/host/redis-data:/data -d redis:alpine redis-server --appendonly yes
```
这里 `-v` 参数用于绑定数据卷至宿主机上,而 `--appendonly yes` 表示开启 AOF 持久化模式。
---
##### 4. **RabbitMQ**
对于消息队列 RabbitMQ 来说,默认情况下它已经包含了管理界面插件。
```bash
docker run --name rabbitmq-container -p 5672:5672 -p 15672:15672 -d rabbitmq:management
```
其中两个端口号分别是 AMQP 协议通信端口 (5672) 和 Web 控制台访问地址 (15672)。
---
##### 5. **Kafka**
由于 Kafka 需依赖 Zookeeper 才能正常运作,因此一般先启动后者再接着前者。
```bash
# Step One: Start Zookeeper Container First.
docker run --name zookeeper-container -p 2181:2181 -d confluentinc/cp-zookeeper:latest
# Then Launch Apache Kafka Instance Afterward.
docker run --name kafka-container --link zookeeper-container:zookeeper \
-e KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181 \
-e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://localhost:9092 \
-p 9092:9092 -d confluentinc/cp-kafka:latest
```
以上脚本定义了一个简单的单节点集群结构。
---
##### 6. **Tomcat**
当需要部署 Java 应用程序时,Tomcat 是一种常见的选择。
```bash
docker run --name tomcat-container -p 8080:8080 -d tomcat:9-jdk11-openjdk
```
这条语句指定了 Tomcat 版本号及其基础 JDK 映像版本。
---
##### 7. **JAR 包应用**
如果有自己的 Spring Boot 或其他基于 JAR 构建的应用项目,可以直接利用官方 OpenJDK 图片加载执行。
```bash
docker run --name my-java-app -p 8080:8080 -v $(pwd)/app.jar:/app/app.jar -t openjdk:11 java -jar /app/app.jar
```
注意替换实际项目的 jar 名字位置即可。
---
##### 8. **PostgreSQL**
类似于 MySQL 数据库操作方式一样简单明了。
```bash
docker run --name postgresql-container -e POSTGRES_PASSWORD=dbpass -d postgres:13-alpine
```
此处设定了初始管理员账户密码为 dbpass。
---
##### 9. **Elasticsearch**
最后介绍 Elasticsearch 日志搜索引擎实例建立方法如下所示。
```bash
docker run --name elasticsearch-container -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -d elasticsearch:7.10.1
```
特别强调一点就是必须声明 discovery 类型防止多节点发现错误发生。
---
### 注意事项
- 如果曾经安装过较早版次的软件包可能引起冲突问题,那么应当先行清理干净后再继续安装最新稳定发行版本[^3]。
- 使用 Docker 进行开发测试或者生产环境中都推荐采用镜像标签锁定具体修订编号而非总是跟随 latest 更新以防意外兼容性破坏风险存在[^4]。
阅读全文
相关推荐










