9、阿里云 Ubuntu22.04、安装docker、mysql、mongodb

一、开启远程登录

sudo vim /etc/ssh/sshd_config

修改下面的值
PermitRootLogin yes
PubkeyAuthentication yes

sudo systemctl reload sshd

sudo passwd root

二、安装docker

卸载旧版本

旧版本的 Docker 称为 docker 或者 docker-engine,使用以下命令卸载旧版本:

sudo apt-get remove docker docker-engine docker.io
使用 APT 安装

由于 apt 源使用 HTTPS 以确保软件下载过程中不被篡改。因此,我们首先需要添加使用 HTTPS 传输的软件包以及 CA 证书。

sudo apt-get update
sudo apt-get install apt-transport-https ca-certificates curl gnupg lsb-release

鉴于国内网络问题,强烈建议使用国内源,官方源请在注释中查看。

为了确认所下载软件包的合法性,需要添加软件源的 GPG 密钥。

curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg


# 官方源
# curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

然后,我们需要向 sources.list 中添加 Docker 软件源

echo \
  "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null


# 官方源
# $ echo \
#   "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
#   $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
安装 Docker

更新 apt 软件包缓存,并安装 docker-ce

sudo apt-get update

sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin

# 验证安装版本
docker --version

# 显示出
Docker version 27.1.1, build 6312585

三、安装docker-compose

mkdir /root/folder
cd /root/folder
wget https://github.com/docker/compose/releases/download/v2.29.1/docker-compose-linux-x86_64

# 下载很慢可以浏览器下载后上车到服务器
scp docker-compose-linux-x86_64 root@x.x.x.x:/root/folder

sudo mv /root/folder/docker-compose-linux-x86_64 /usr/local/bin/docker-compose

# 赋予可执行权限:
sudo chmod +x /usr/local/bin/docker-compose

# 验证 Docker Compose 是否正确安装:
docker-compose --version

# 显示出
# Docker Compose version v2.29.1

四、安装mysql和mongodb

mkdir -p /root/folder/docker-data
cd /root/folder/docker-data
mkdir data
mkdir -p data/mysql_data
mkdir -p data/mongodb_data
vim docker-compose.yml
networks:
    docker-net-01:
        driver: bridge

services:
    mysql:
        container_name: mysql_5.7_01
        image: "mysql:5.7"
        restart: always
        ports:
            - 3306:3306
        environment:
            MYSQL_ROOT_PASSWORD: rootpassword
            MYSQL_DATABASE: mydatabase
            MYSQL_USER: myuser
            MYSQL_PASSWORD: mypassword
        volumes:
            - ./data/mysql_data:/var/lib/mysql
        networks:
            - docker-net-01

    mongodb:
        container_name: mongodb_4.0_01
        image: "mongo:4.0"
        restart: always
        ports:
            - 27017:27017
        environment:
            MONGO_INITDB_ROOT_USERNAME: root
            MONGO_INITDB_ROOT_PASSWORD: rootpassword
        volumes:
            - ./data/mongodb_data:/data/db
        networks:
            - docker-net-01

 如果想要安装其他的中间件可以修配配置文件,例如安装Redis

networks:
    docker-net-01:
        driver: bridge

services:
    redis:
        container_name: redis_01
        image: "redis:latest"
        restart: always
        ports:
            - 6379:6379
        volumes:
            - ./data/redis_data:/data
        environment:
            - REDIS_PASSWORD=tiktok
            - ALLOW_EMPTY_PASSWORD=no
        networks:
            - docker-net-01
            
    mysql:
        container_name: mysql_5.7_01
        image: "mysql:5.7"
        restart: always
        ports:
            - 3306:3306
        environment:
            MYSQL_ROOT_PASSWORD: rootpassword
            MYSQL_DATABASE: mydatabase
            MYSQL_USER: myuser
            MYSQL_PASSWORD: mypassword
        volumes:
            - ./data/mysql_data:/var/lib/mysql
        networks:
            - docker-net-01

    mongodb:
        container_name: mongodb_4.0_01
        image: "mongo:4.0"
        restart: always
        ports:
            - 27017:27017
        environment:
            MONGO_INITDB_ROOT_USERNAME: root
            MONGO_INITDB_ROOT_PASSWORD: rootpassword
        volumes:
            - ./data/mongodb_data:/data/db
        networks:
            - docker-net-01

 

root@iZ2vc:~/folder/docker-data# tree
.
├── data
│   ├── mongodb_data
│   └── mysql_data
└── docker-compose.yml

3 directories, 1 file
root@iZ2vc:~/folder/docker-data#
docker-compose up -d
# 下载太慢,还源地址

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
    "registry-mirrors": [
        "https://docker.m.daocloud.io",
        "https://dockerproxy.com",
        "https://docker.mirrors.ustc.edu.cn",
        "https://docker.nju.edu.cn"
    ]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
docker-compose up -d
root@iZ2vc:~/folder/docker-data# docker-compose up -d
[+] Running 25/25
 ✔ mysql Pulled                                                                                                                         31.6s
   ✔ 20e4dcae4c69 Pull complete                                                                                                          
...                                                                                        29.5s
   ✔ df9a4d85569b Pull complete                                                                                                         29.6s
 ✔ mongodb Pulled                                                                                                                       68.7s
   ✔ 58690f9b18fc Pull complete      
...                                                                                                                                                                                                     66.4s
   ✔ 22b97876323d Pull complete                                                                                                         66.4s
[+] Running 3/3
 ✔ Network docker-data_docker-net-01  Created                                                                                            0.1s
 ✔ Container mongodb_4.0_01           Started                                                                                            2.2s
 ✔ Container mysql_5.7_01             Started                                                                                            2.2s
root@iZ2vc:~/folder/docker-data#
docker ps --format "table {{.ID}}\t{{.Ports}}\t{{.Names}}"
root@iZ2vc:~/folder/docker-data# docker ps --format "table {{.ID}}\t{{.Ports}}\t{{.Names}}"
CONTAINER ID   PORTS                                                  NAMES
62c3e40fb1d1   0.0.0.0:27017->27017/tcp, :::27017->27017/tcp          mongodb_4.0_01
9a89fbae8cc2   0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp   mysql_5.7_01
root@iZ2vc:~/folder/docker-data#

链接进入容器,比如进入 “mysql_5.7_01”

docker exec -it mysql_5.7_01 bash

进入容器后,你就可以在容器内执行命令或操作 MySQL 了。如果你需要直接连接到 MySQL 数据库,你可以使用 MySQL 客户端工具(如 mysql 命令行工具),密码在 docker-compose.yml 的配置文件里面有,看自己的设置:

mysql -u root -p

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

虚拟之

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值