Docker安装及常用环境部署

Docker安装及常用环境部署

技术背景

Docker 是一个用于开发、部署和运行应用程序的开源平台,它使用容器化技术将应用及其依赖项打包成一个独立的容器,实现了应用的快速部署和隔离运行。在不同的项目中,我们可能需要部署各种不同的环境,如数据库、缓存等,使用 Docker 可以方便地管理这些环境。

实现步骤

卸载 Docker

不同的 Linux 发行版卸载 Docker 的命令不同:

  • Ubuntu
1
sudo apt-get remove docker docker-engine
  • Centos
1
2
3
4
5
sudo yum remove docker \
docker-common \
container-selinux \
docker-selinux \
docker-engine
  • Fedora
1
2
3
4
5
sudo dnf remove docker \
docker-common \
container-selinux \
docker-selinux \
docker-engine

卸载完成后,清除旧文件:

1
rm -fr /var/lib/docker/

在 Linux 上安装 Docker

1
curl -sSL https://get.daocloud.io/docker | sh

安装完成后,启动 Docker:

1
sudo systemctl start docker

安装 Docker Compose

1
2
curl -L https://get.daocloud.io/docker/compose/releases/download/v2.5.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

常用命令

1
2
3
4
5
6
# 设置容器自启动
docker container update --restart=always 容器名字
# 重启 Docker
systemctl restart docker
# 设置 Docker 开机自启动
systemctl enable docker

部署常用环境

MySQL

  1. 创建 my.cnf 配置文件:
1
2
3
4
5
6
7
8
[mysqld]
user=mysql
default-time_zone = '+8:00'
character-set-server=utf8
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
  1. 安装 MySQL:
1
2
3
4
5
docker run --restart=always -p 3306:3306 --name mysql57 \
-v /home/docker/mysql/config:/etc/mysql/conf.d \
-v /home/docker/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:5.7
  1. 进入 MySQL 命令行:
1
docker exec -t -i c3e mysql -uroot -p

MongoDB

  1. 启动 MongoDB 容器:
1
docker run --restart=always -itd --name mongo -p 27017:27017 mongo --auth
  1. 配置 MongoDB 用户:
1
2
3
4
5
6
// 进入 Mongo
docker exec -it mongo mongo admin
// 创建用户
db.createUser({ user:'root',pwd:'password',roles:[ { role:'userAdminAnyDatabase', db: 'admin'},"readWriteAnyDatabase"]});
// 验证
db.auth('root', 'password')

Redis

1
2
3
4
# 简单启动
docker run --restart=always -p 6379:6379 --name redis -d redis:latest
# 挂载配置文件启动
docker run -v /myredis/conf:/usr/local/etc/redis --name myredis redis redis-server /usr/local/etc/redis/redis.conf

HDFS

  1. 创建 docker-compose.yml 文件:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
version: "2"

services:
namenode:
image: singularities/hadoop
command: start-hadoop namenode
hostname: namenode
environment:
HDFS_USER: root
ports:
- "8020:8020"
- "14000:14000"
- "50070:50070"
- "50075:50075"
- "10020:10020"
- "13562:13562"
- "19888:19888"
datanode:
image: singularities/hadoop
command: start-hadoop datanode namenode
environment:
HDFS_USER: hdfsuser
links:
- namenode
  1. 使用 Docker Compose 启动:
1
docker-compose up -d

Neo4j

1
2
docker run -p7474:7474 -p7687:7687 -e NEO4J_AUTH=neo4j/password neo4j
# 然后打开 http://localhost:7474 连接 Neo4j Browser

ES

1
docker run --name es7_12_0 -d -e ES_JAVA_OPTS="-Xms512m -Xmx512m" -e "discovery.type=single-node" -p 9200:9200 -p 9300:9300 elasticsearch:7.12.0

核心代码

上述实现步骤中的代码即为核心代码,包含了 Docker 安装、卸载、常用命令以及各种常用环境的部署命令。

最佳实践

  • 在部署环境时,建议使用 --restart=always 参数,确保容器在系统重启后自动启动。
  • 对于有数据存储需求的环境,如 MySQL、MongoDB 等,使用数据卷(-v 参数)将数据挂载到宿主机,避免数据丢失。

常见问题

  • Docker 安装失败:检查网络连接是否正常,或者尝试更换安装源。
  • 容器启动失败:查看容器日志(docker logs 容器名),根据日志信息排查问题,可能是端口冲突、配置文件错误等原因。
  • 环境无法访问:检查端口映射是否正确,防火墙是否开放了相应的端口。

Docker安装及常用环境部署
https://119291.xyz/posts/2025-04-15.docker-installation-and-common-environment-deployment/
作者
ww
发布于
2025年4月15日
许可协议