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


    一、开启远程登录

    1. sudo vim /etc/ssh/sshd_config
    2. 修改下面的值
    3. PermitRootLogin yes
    4. PubkeyAuthentication yes
    5. sudo systemctl reload sshd
    6. sudo passwd root

    二、安装docker

    卸载旧版本

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

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

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

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

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

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

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

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

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

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

    1. sudo apt-get update
    2. sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin
    3. # 验证安装版本
    4. docker --version
    5. # 显示出
    6. Docker version 27.1.1, build 6312585

    三、安装docker-compose

    1. mkdir /root/folder
    2. cd /root/folder
    3. wget https://github.com/docker/compose/releases/download/v2.29.1/docker-compose-linux-x86_64
    4. # 下载很慢可以浏览器下载后上车到服务器
    5. scp docker-compose-linux-x86_64 root@x.x.x.x:/root/folder
    6. sudo mv /root/folder/docker-compose-linux-x86_64 /usr/local/bin/docker-compose
    7. # 赋予可执行权限:
    8. sudo chmod +x /usr/local/bin/docker-compose
    9. # 验证 Docker Compose 是否正确安装:
    10. docker-compose --version
    11. # 显示出
    12. # Docker Compose version v2.29.1

    四、安装mysql和mongodb

    1. mkdir -p /root/folder/docker-data
    2. cd /root/folder/docker-data
    3. mkdir data
    4. mkdir -p data/mysql_data
    5. mkdir -p data/mongodb_data
    vim docker-compose.yml
    1. networks:
    2. docker-net-01:
    3. driver: bridge
    4. services:
    5. mysql:
    6. container_name: mysql_5.7_01
    7. image: "mysql:5.7"
    8. restart: always
    9. ports:
    10. - 3306:3306
    11. environment:
    12. MYSQL_ROOT_PASSWORD: rootpassword
    13. MYSQL_DATABASE: mydatabase
    14. MYSQL_USER: myuser
    15. MYSQL_PASSWORD: mypassword
    16. volumes:
    17. - ./data/mysql_data:/var/lib/mysql
    18. networks:
    19. - docker-net-01
    20. mongodb:
    21. container_name: mongodb_4.0_01
    22. image: "mongo:4.0"
    23. restart: always
    24. ports:
    25. - 27017:27017
    26. environment:
    27. MONGO_INITDB_ROOT_USERNAME: root
    28. MONGO_INITDB_ROOT_PASSWORD: rootpassword
    29. volumes:
    30. - ./data/mongodb_data:/data/db
    31. networks:
    32. - docker-net-01

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

    1. networks:
    2. docker-net-01:
    3. driver: bridge
    4. services:
    5. redis:
    6. container_name: redis_01
    7. image: "redis:latest"
    8. restart: always
    9. ports:
    10. - 6379:6379
    11. volumes:
    12. - ./data/redis_data:/data
    13. environment:
    14. - REDIS_PASSWORD=tiktok
    15. - ALLOW_EMPTY_PASSWORD=no
    16. networks:
    17. - docker-net-01
    18. mysql:
    19. container_name: mysql_5.7_01
    20. image: "mysql:5.7"
    21. restart: always
    22. ports:
    23. - 3306:3306
    24. environment:
    25. MYSQL_ROOT_PASSWORD: rootpassword
    26. MYSQL_DATABASE: mydatabase
    27. MYSQL_USER: myuser
    28. MYSQL_PASSWORD: mypassword
    29. volumes:
    30. - ./data/mysql_data:/var/lib/mysql
    31. networks:
    32. - docker-net-01
    33. mongodb:
    34. container_name: mongodb_4.0_01
    35. image: "mongo:4.0"
    36. restart: always
    37. ports:
    38. - 27017:27017
    39. environment:
    40. MONGO_INITDB_ROOT_USERNAME: root
    41. MONGO_INITDB_ROOT_PASSWORD: rootpassword
    42. volumes:
    43. - ./data/mongodb_data:/data/db
    44. networks:
    45. - docker-net-01

     

    1. root@iZ2vc:~/folder/docker-data# tree
    2. .
    3. ├── data
    4. │   ├── mongodb_data
    5. │   └── mysql_data
    6. └── docker-compose.yml
    7. 3 directories, 1 file
    8. root@iZ2vc:~/folder/docker-data#
    docker-compose up -d
    1. # 下载太慢,还源地址
    2. sudo mkdir -p /etc/docker
    1. sudo tee /etc/docker/daemon.json <<-'EOF'
    2. {
    3. "registry-mirrors": [
    4. "https://docker.m.daocloud.io",
    5. "https://dockerproxy.com",
    6. "https://docker.mirrors.ustc.edu.cn",
    7. "https://docker.nju.edu.cn"
    8. ]
    9. }
    10. EOF
    1. sudo systemctl daemon-reload
    2. sudo systemctl restart docker
    docker-compose up -d
    1. root@iZ2vc:~/folder/docker-data# docker-compose up -d
    2. [+] Running 25/25
    3. ✔ mysql Pulled 31.6s
    4. ✔ 20e4dcae4c69 Pull complete
    5. ... 29.5s
    6. ✔ df9a4d85569b Pull complete 29.6s
    7. ✔ mongodb Pulled 68.7s
    8. ✔ 58690f9b18fc Pull complete
    9. ... 66.4s
    10. ✔ 22b97876323d Pull complete 66.4s
    11. [+] Running 3/3
    12. ✔ Network docker-data_docker-net-01 Created 0.1s
    13. ✔ Container mongodb_4.0_01 Started 2.2s
    14. ✔ Container mysql_5.7_01 Started 2.2s
    15. root@iZ2vc:~/folder/docker-data#
    docker ps --format "table {{.ID}}\t{{.Ports}}\t{{.Names}}"
    
    1. root@iZ2vc:~/folder/docker-data# docker ps --format "table {{.ID}}\t{{.Ports}}\t{{.Names}}"
    2. CONTAINER ID PORTS NAMES
    3. 62c3e40fb1d1 0.0.0.0:27017->27017/tcp, :::27017->27017/tcp mongodb_4.0_01
    4. 9a89fbae8cc2 0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp mysql_5.7_01
    5. 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

  • 相关阅读:
    SPA项目开发之动态树+数据表格+分页
    初识C++
    Netty使用
    网络编程04-UDP的广播、组播
    【深度学习】 Python 和 NumPy 系列教程(十六):Matplotlib详解:2、3d绘图类型(2)3D散点图(3D Scatter Plot)
    简单学懂链式编程
    PB从入坑到放弃(六)动态SQL应用
    【Java基础】深入理解反射、反射的应用(工厂模式、代理模式)
    mac(M1)卸载miniconda3
    初识Java
  • 原文地址:https://blog.csdn.net/m0_63008237/article/details/141092209