前提:Linux必须提前安装docker和docker-compose
Linux 系统中安装 Docker
CentOS
$ sudo yum install yum-utils device-mapper-persistent-data lvm2
$
$ sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
$ sudo yum install docker-ce
$
$ sudo systemctl enable docker
$ sudo systemctl start docker
设置镜像加速器
# 执行如下命令:
mkdir /etc/docker 表示创建一个文件夹
#如果有该文件则进入编辑状态,如果没有,则创建该文件然后进入编辑状态
vi /etc/docker/daemon.json
#编写以下内容,地址换成自己的阿里云镜像加速地址
{
"registry-mirrors": [
"https://registry.docker-cn.com"
]
}
#退出编写执行如下命令
sudo systemctl daemon-reload
sudo systemctl restart docker
要验证我们配置的镜像源是否生效,我们可以通过 docker info
来查阅当前注册的镜像源列表。
$ sudo docker info
## ......
Registry Mirrors:
https://registry.docker-cn.com/
## ......
Docker-compose安装
#国内资源(建议)
curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.4/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
#以上国内资源不行使用这个,可以的话忽略执行下一个命令
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# 设置文件可执行权限
sudo chmod +x /usr/local/bin/docker-compose
# 查看版本信息
docker-compose version
Docker-compose安装常用环境创建一个文件夹
#创建一个文件夹
mkdir environment
#进入该文件夹中
cd environment
#编写docker-compose.yml文件,可复制以下你需要的环境配置
vi docker-compose.yml
#执行文件
docker-compose up -d
version: '3'
services:
mysql:
container_name: mysql
image: mysql:latest
restart: always
environment:
TZ: Asia/Shanghai
MYSQL_ROOT_PASSWORD: root
volumes:
- ./mysql/conf/my.cnf:/etc/my.cnf
- ./mysql/data:/var/lib/mysql
ports:
- "3306:3306"
minion:
container_name: minio
image: minio/minio:RELEASE.2021-04-18T19-26-29Z
restart: always
ports:
- "9001:9000"
volumes:
- ./minion/data:/data
- ./minion/config:/root/.minio
environment:
MINIO_ACCESS_KEY: "minio"
MINIO_SECRET_KEY: "minio123"
command: server /data
redis:
container_name: redis
image: redis:latest
restart: always
environment:
- TZ=Asia/Shanghai
ports:
- "6379:6379"
volumes:
- ./redis:/data
- ./redis/conf/redis.conf:/etc/redis/redis.conf:rw
- ./redis/data:/data:rw
nginx:
container_name: nginx
image: nginx
ports:
- "80:80"
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf nginx
gitlab:
container_name: gitlab
image: twang2218/gitlab-ce-zh:11.1.4
restart: unless-stopped
privileged: true
hostname: 'gitlab'
environment:
TZ: 'Asia/Shanghai'
GITLAB_OMNIBUS_CONFIG: |
gitlab_rails['time_zone'] = 'Asia/Shanghai'
gitlab_rails['gitlab_shell_ssh_port'] = 2224
ports:
- '8083:80'
- '443:443'
- '2224:22'
volumes:
- ./gitlab/config:/etc/gitlab
- ./gitlab/data:/var/opt/gitlab
- ./gitlab/logs:/var/log/gitlab
portainer:
container_name: portainer
image: portainer/portainer
ports:
- "9000:9000"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- portainer_data:/data
volumes:
portainer_data: