利用 Docker 安装常见组件

安装 Docker

可以直接一键安装

curl -fsSL https://gist.githubusercontent.com/ImSingee/a3a0e3b6fd830599bc30124a410e5f4b/raw/install-docker-on-centos.sh | bash

利用阿里云 yum 仓库进行安装

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine

sudo yum install -y yum-utils

sudo yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

sudo yum install -y docker-ce docker-ce-cli containerd.io

Cent OS 8 在安装过程中可能出现问题,解决方案有两个:手动安装 containerd.io 新版本或是在 yum install 时指定 —nobest 选项

配置使用阿里云镜像

1
2
3
4
5
6
7
8
9
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://reg-mirror.qiniu.com", "https://hub-mirror.c.163.com/"]
}
EOF

# 如果提前启动了 docker 则需要重启
# sudo systemctl restart docker

启动并测试 docker

1
2
sudo systemctl start docker
sudo docker run hello-world

如果查看镜像是否修改成功可以利用 docker info 命令查看 Registry Mirrors

修改 Docker 数据存储路径

一次修改

在 Docker 的启动命令中添加 --data-root 新的数据路径 即可

永久修改

在 Docker 的启动配置文件中添加上述命令

在 CentOS 中,这一配置文件位于 /usr/lib/systemd/system/docker.service ,修改其 ExecStart 即可

安装 Redis

非持久存储

1
docker run -d --name redis -p 0.0.0.0:6379:6379 redis:5

持久存储

1
docker run -d --name redis -p 0.0.0.0:6379:6379 -v redis:/data --restart always redis:5 redis-server --appendonly yes

CLI

1
docker run -it --network host --rm redis:5 redis-cli # 后面加上 CLI 的参数

安装 MongoDB

非持久存储

1
docker run -d --name mongo -p 0.0.0.0:27017:27017 mongo:4

持久存储

1
docker run -d --name mongo -p 0.0.0.0:27017:27017 -v mongo:/data/db mongo:4

CLI

1
docker run -it --network host --rm mongo:4 mongo

安装 GridStudio

1
2
3
4
5
# 首先需要先克隆项目,因为源码并没有在 docker 分发
# git clone https://github.com/ricklamers/gridstudio.git
# cd gridstudio

docker run --name=gridstudio --rm=false -v $PWD/grid-app:/home/source -v $PWD/grid-app/proxy/userdata:/home/userdata -p 0.0.0.0:9988:8080 -p 0.0.0.0:9989:4430 ricklamers/gridstudio:release

安装 MySQL 8

1
docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root -d mysql:8

CLI

1
docker run -it --network host --rm mysql:8 mysql --protocol tcp -proot

安装 etcd

1
docker run -d -p 4001:4001 -p 2380:2380 -p 2379:2379 -e ALLOW_NONE_AUTHENTICATION=yes --name etcd bitnami/etcd

IBM DB2

Installing the Db2 Community Edition Docker image on Linux systems

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
docker pull ibmcom/db2

tee .env_list <<-'EOF'
LICENSE=accept
DB2INSTANCE=db2inst1
DB2INST1_PASSWORD=password
DBNAME=testdb
BLU=false
ENABLE_ORACLE_COMPATIBILITY=false
UPDATEAVAIL=NO
TO_CREATE_SAMPLEDB=false
REPODB=false
IS_OSXFS=false
PERSISTENT_HOME=true
HADR_ENABLED=false
ETCD_ENDPOINT=
ETCD_USERNAME=
ETCD_PASSWORD=
EOF

docker run -h db2server --name db2server --detach --privileged=true -p 0.0.0.0:50000:50000 --env-file .env_list ibmcom/db2

进入数据库容器:

1
docker exec -ti db2server bash -c "su - db2inst1"