- sudo vim /etc/ssh/sshd_config
-
- 修改下面的值
- PermitRootLogin yes
- PubkeyAuthentication yes
-
- sudo systemctl reload sshd
-
- sudo passwd root
旧版本的 Docker 称为 docker 或者 docker-engine,使用以下命令卸载旧版本:
sudo apt-get remove docker docker-engine docker.io
由于 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
更新 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
- 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
- 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