文章目录
Docker官网:
Docker镜像仓库:
Docker安装
安装curl(可选)
如果已经安装了curl,则跳过此步骤
# 更新包缓存sudoapt update
sudoaptinstallcurl
使用安装脚本自动安装
安装命令如下:
# 方式一curl-fsSL https://get.docker.com |bash-sdocker--mirror Aliyun
# 方式二exportDOWNLOAD_URL="https://mirrors.tuna.tsinghua.edu.cn/docker-ce"# 如您使用 curlcurl-fsSL https://get.docker.com/ |sh# 如您使用 wgetwget -O- https://get.docker.com/ |sh# 方式三curl-fsSL https://test.docker.com -o test-docker.sh
sh test-docker.sh
Docker 在 get.docker.com 和 test.docker.com 上提供了方便脚本,用于将快速安装 Docker Engine-Community 的边缘版本和测试版本。脚本的源代码在 docker-install 仓库中。 不建议在生产环境中使用这些脚本,在使用它们之前,您应该了解潜在的风险:
- 脚本需要运行 root 或具有 sudo 特权。因此,在运行脚本之前,应仔细检查和审核脚本。
- 这些脚本尝试检测 Linux 发行版和版本,并为您配置软件包管理系统。此外,脚本不允许您自定义任何安装参数。从 Docker 的角度或您自己组织的准则和标准的角度来看,这可能导致不支持的配置。
- 这些脚本将安装软件包管理器的所有依赖项和建议,而无需进行确认。这可能会安装大量软件包,具体取决于主机的当前配置。
- 该脚本未提供用于指定要安装哪个版本的 Docker 的选项,而是安装了在 edge 通道中发布的最新版本。
- 如果已使用其他机制将 Docker 安装在主机上,请不要使用便捷脚本。
本示例使用 get.docker.com 上的脚本在 Linux 上安装最新版本的Docker Engine-Community。要安装最新的测试版本,请改用 test.docker.com。在下面的每个命令,取代每次出现 get 用 test。
$ curl -fsSL https://get.docker.com -o get-docker.sh $ sudo sh get-docker.sh
验证安装
docker-v
配置镜像加速
国内从 DockerHub 拉取镜像有时会遇到困难,此时可以配置镜像加速器。Docker 官方和国内很多云服务商都提供了国内加速器服务,例如:
- 科大镜像:https://docker.mirrors.ustc.edu.cn/
- 网易:**https://hub-mirror.c.163.com/****【这个可以】**
- 阿里云:https://<你的ID>.mirror.aliyuncs.com****【这个可以】
- 七牛云加速器:https://reg-mirror.qiniu.com
- 百度:https://mirror.baidubce.com 【这个可以】
安装阿里云镜像加速器
访问阿里云官网,通过点击产品-容器与中间件-容器镜像服务-镜像加速器,找到镜像工具-镜像加速器,找到Ubuntu对应的Docker安装说明,
# 请在 vim /etc/docker/daemon.json 中写入如下内容(如果文件不存在请新建该文件):sudomkdir-p /etc/docker
sudotee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": [
"https://zdzuxfik.mirror.aliyuncs.com"
]
}
EOF# 重新加载sudo systemctl daemon-reload
# 之后重新启动服务:sudo systemctl restart docker# 查看日志grepdocker /var/log/syslog
tailf /var/log/messages
检查加速器是否生效
检查加速器是否生效配置加速器之后,如果拉取镜像仍然十分缓慢,请手动检查加速器配置是否生效,在命令行执行 docker info,如果从结果中看到了如下内容,说明配置成功。
docker info
docker info |grep "Registry Mirrors“
Registry Mirrors:
https://reg-mirror.qiniu.com
指定使用代理下载镜像
docker pull registry.cn-hangzhou.aliyuncs.com/image_name:tag_name
常用命令
# 列出当前正在运行的容器dockerps# 列出所有容器,包括未运行的dockerps-a# 运行一个新容器docker run [OPTIONS] IMAGE [COMMAND][ARG...]# 停止一个或多个正在运行的容器docker stop CONTAINER [CONTAINER...]# 强制停止一个或多个正在运行的容器dockerkill CONTAINER [CONTAINER...]# 删除一个或多个容器dockerrm CONTAINER [CONTAINER...]# 删除一个或多个镜像docker rmi IMAGE [IMAGE...]# 启动一个或多个已经被停止的容器docker start CONTAINER [CONTAINER...]# 重启容器docker restart CONTAINER [CONTAINER...]# 进入正在运行的容器dockerexec-it CONTAINER COMMAND
# 构建一个镜像docker build -t IMAGE PATH# 将当前目录的Dockerfile上下文发送给守护进程,并在那里构建镜像docker build -t IMAGE .# 拉取一个镜像或仓库docker pull NAME[:TAG]# 推送一个镜像或仓库到仓库docker push NAME[:TAG]# 查看镜像信息docker inspect IMAGE|ID [OPTIONS]# 查看容器信息docker inspect CONTAINER [CONTAINER...]# 查看Docker的守护进程状态docker info
# 删除所有容器docker container prune -f# 删除所有未使用的镜像docker image prune -a-f# 清理不再使用的镜像、容器、网络和卷docker system prune
docker system prune -a-f# 查看Docker守护进程的日志docker logs -f
Docker Compose安装
下载安装包
# 最新版本curl-L"https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname-s)-$(uname-m)"-o /usr/local/bin/docker-compose
# 指定版本v2.21.0curl-L"https://github.com/docker/compose/releases/download/v2.21.0/docker-compose-$(uname-s)-$(uname-m)"-o /usr/local/bin/docker-compose
设置权限
chmod +x /usr/local/bin/docker-compose
设置软链
ln-s /usr/local/bin/docker-compose /usr/bin/docker-compose
测试是否安装成功
docker-compose version
常用命令
# 列出由Compose管理的正在运行的容器docker-composeps# 自动完成包括构建镜像,(重新)创建服务,启动服务docker-compose up
# 后台执行docker-compose up -d# 启动指定组件docker-compose up mysql
docker-compose up -d my_service
# 此命令将会停止 up 命令所启动的容器,并移除网络docker-compose down
# -v删除所有卷的选项docker-compose down -v# 将根据 docker-compose.yml 文件中的 build 部分 重构所有服务的镜像。docker-compose build
# 使用 --build 参数将重新构建服务的镜像,然后启动服务。docker-compose up --build# 重启所有服务docker-compose restart
docker-compose start
docker-compose stop
示例
前端Dockerfile示例
node历史版本安装网址:
node-sass和node版本:
node版本: 16.13.2
node-sass版本: cnpm i [email protected] -S
sass-loader版本: cnpm i [email protected] -S
node版本: 12.16.0
node-sass版本: cnpm i [email protected] -S
sass-loader版本: cnpm i [email protected] -S
更换淘宝镜像
yarn config set registry https://registry.npmmirror.com
npm install -g cnpm --registry=https://registry.npmmirror.com
npm config set registry https://registry.npmmirror.com
Dockerfile
# 打包
FROM node:16.17.1 as build-stage
RUN mkdir /opt/easy-admin
WORKDIR /opt/easy-admin
COPY /easy-admin/package.json /opt/easy-admin/package.json
RUN yarn config set registry https://registry.npmmirror.com
RUN yarn config set ignore-engines true
RUN yarn install
COPY /easy-admin /opt/easy-admin
RUN npm run build
# 部署nginx
FROM nginx:1.25.2 as production-stage
COPY --from=build-stage /opt/easy-admin/dist /opt/dist
# 替换配置文件
RUN rm /etc/nginx/conf.d/default.conf
RUN rm /etc/nginx/nginx.conf
COPY /docker/nginx.conf /etc/nginx/
CMD ["nginx", "-g", "daemon off;"]
nginx.conf
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log notice;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
server {
listen 8088;
charset utf-8;
server_name localhost;
root /opt/dist;
index index.html;
location / {
try_files $uri $uri/ /index.html;
}
}
}
版权归原作者 lakernote 所有, 如有侵权,请联系我们删除。