9、阿里云 Ubuntu22.04、安装docker、mysql、mongodb
一、开启远程登录
sudo vim /etc/ssh/sshd_config修改下面的值
PermitRootLogin yes
PubkeyAuthentication yessudo systemctl reload sshdsudo 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 updatesudo 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/foldersudo 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: bridgeservices:mysql:container_name: mysql_5.7_01image: "mysql:5.7"restart: alwaysports:- 3306:3306environment:MYSQL_ROOT_PASSWORD: rootpasswordMYSQL_DATABASE: mydatabaseMYSQL_USER: myuserMYSQL_PASSWORD: mypasswordvolumes:- ./data/mysql_data:/var/lib/mysqlnetworks:- docker-net-01mongodb:container_name: mongodb_4.0_01image: "mongo:4.0"restart: alwaysports:- 27017:27017environment:MONGO_INITDB_ROOT_USERNAME: rootMONGO_INITDB_ROOT_PASSWORD: rootpasswordvolumes:- ./data/mongodb_data:/data/dbnetworks:- docker-net-01
如果想要安装其他的中间件可以修配配置文件,例如安装Redis
networks:docker-net-01:driver: bridgeservices:redis:container_name: redis_01image: "redis:latest"restart: alwaysports:- 6379:6379volumes:- ./data/redis_data:/dataenvironment:- REDIS_PASSWORD=tiktok- ALLOW_EMPTY_PASSWORD=nonetworks:- docker-net-01mysql:container_name: mysql_5.7_01image: "mysql:5.7"restart: alwaysports:- 3306:3306environment:MYSQL_ROOT_PASSWORD: rootpasswordMYSQL_DATABASE: mydatabaseMYSQL_USER: myuserMYSQL_PASSWORD: mypasswordvolumes:- ./data/mysql_data:/var/lib/mysqlnetworks:- docker-net-01mongodb:container_name: mongodb_4.0_01image: "mongo:4.0"restart: alwaysports:- 27017:27017environment:MONGO_INITDB_ROOT_USERNAME: rootMONGO_INITDB_ROOT_PASSWORD: rootpasswordvolumes:- ./data/mongodb_data:/data/dbnetworks:- docker-net-01
root@iZ2vc:~/folder/docker-data# tree
.
├── data
│ ├── mongodb_data
│ └── mysql_data
└── docker-compose.yml3 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