安装docker
官网搬运:在 Ubuntu 上安装 Docker 引擎 |码头工人文档
一、设置存储库
1. 更新软件包索引并安装软件包以允许使用 基于 HTTPS 的存储库
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg
2. 添加 Docker 的官方 GPG 密钥
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
3. 使用以下命令设置存储库
echo \
"deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
"$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
二、安装 Docker 引擎
1. 更新包索引
sudo apt-get update
2. 安装 Docker Engine、containerd 和 Docker Compose
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
3. 通过运行映像验证 Docker 引擎安装是否成功
sudo docker run hello-world
出现以下代表docker安装成功
安装docker-compose
1. 更新及安装
sudo apt-get update
sudo apt-get install docker-compose-plugin
2. 检验是否安装成功
docker compose version
出现版本号代表成功
3. 设置Docker Group,为了能在非sudo模式下使用Docker, 需要将当前用户加入Docker Group.
sudo usermod -aG docker $USER
设置Docker镜像加速
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://XXXXXXXX.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
上方XXXX,去阿里云搜索:镜像容器服务,再点击左边菜单:镜像工具 -> 镜像加速器查看
docker compose 部署
1. 准备好docker-compose.yaml
version: "3.7"
services:
nginx:
container_name: "lnmp_nginx"
image: nginx:1.24
restart: always
ports:
- "80:80"
- "443:443"
#depends_on:
# - "php"
volumes:
- /docker-lnmp/nginx/conf.d:/etc/nginx/conf.d
- /docker-lnmp/nginx/log:/var/log/nginx
- /www:/usr/share/nginx/html
environment:
- TZ=Asia/Shanghai
- MYSQL_ROOT_PASSWORD=123456
mysql:
container_name: "lnmp_mysql"
image: mysql:5.7
ports:
- "3306:3306"
volumes:
- /docker-lnmp/mysql/data:/var/lib/mysql
- /docker-lnmp/mysql/conf.d:/etc/mysql/conf.d
- /docker-lnmp/mysql/log:/var/log/mysql
restart: always
environment:
- TZ=Asia/Shanghai
- MYSQL_ROOT_PASSWORD=123456
php:
build:
context: ./php
container_name: "lnmp_php"
#image: php:7.4-fpm
ports:
- "9000:9000"
volumes:
- /www:/var/www/html
- /docker-lnmp/php/phpfile:/usr/local/etc/php
- /docker-lnmp/php/phpfile/conf.d:/usr/local/etc/php/conf.d
- /docker-lnmp/php/log:/var/log/php
restart: always
#stdin_open: true
#tty: true
environment:
- TZ=Asia/Shanghai
redis:
container_name: "lnmp_redis"
image: redis:5
ports:
- "6379:6379"
volumes:
#- D:\docker-lnmp\redis\conf:/usr/local/etc/redis
- /docker-lnmp/redis/data:/data
#- D:\docker-lnmp\redis\log:/var/log/redis
restart: always
#command:
#redis-server /usr/local/etc/redis/redis.conf --requirepass 123456
environment:
- TZ=Asia/Shanghai
2. 到指定路径,执行下面命令
docker compose up -d
遇到错误:
Err:1 http://deb.debian.org/debian bullseye InRelease Could not connect to deb.debian.org:80 (151.101.110.132), connection timed out
Err:2 http://deb.debian.org/debian-security bullseye-security InRelease Unable to connect to deb.debian.org:80:
方法一 :编辑/etc/apt/sources.list文件(需要使用sudo), 在文件最前面添加以下条目(操作前请做好相应备份)
# deb http://snapshot.debian.org/archive/debian/20211220T000000Z bullseye main
deb http://deb.debian.org/debian bullseye main
# deb http://snapshot.debian.org/archive/debian-security/20211220T000000Z bullseye-security main
deb http://security.debian.org/debian-security bullseye-security main
# deb http://snapshot.debian.org/archive/debian/20211220T000000Z bullseye-updates main
deb http://deb.debian.org/debian bullseye-updates main
方法二:参考 https://developer.aliyun.com/mirror/debian 修改尝试
方法三:在build 安装扩展前执行
RUN mv /etc/apt/sources.list /etc/apt/sources.list.bak && \
echo "deb https://mirrors.aliyun.com/debian/ bullseye main non-free contrib" >/etc/apt/sources.list && \
echo "deb-src https://mirrors.aliyun.com/debian/ bullseye main non-free contrib" >/etc/apt/sources.list && \
echo "deb https://mirrors.aliyun.com/debian-security/ bullseye-security main" >/etc/apt/sources.list && \
echo "deb-src https://mirrors.aliyun.com/debian-security/ bullseye-security main" >/etc/apt/sources.list && \
echo "deb https://mirrors.aliyun.com/debian/ bullseye-updates main non-free contrib" >/etc/apt/sources.list && \
echo "deb-src https://mirrors.aliyun.com/debian/ bullseye-updates main non-free contrib" >/etc/apt/sources.list && \
echo "deb https://mirrors.aliyun.com/debian/ bullseye-backports main non-free contrib" >/etc/apt/sources.list && \
echo "deb-src https://mirrors.aliyun.com/debian/ bullseye-backports main non-free contrib" >/etc/apt/sources.list
远程输入IP时,发现404错误;把/etc/nginx/conf.d/default.conf修改成下面;服务器和容器访问问题
server {
listen 80;
listen [::]:80;
server_name localhost;
location / {
root /usr/share/nginx/html;
index index.html index.htm index.php ;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /www;
}
}
使用windows安装docker时可能遇到问题
1. windows上docker的IP特别慢;
开启opcache | 修改cifs内核模块 | 不使用挂载,直接文件同步到docker
2. 能访问HTML,访问不了PHP,主要是ngxin里的server【$document_root】解析失败