Ubuntu安装Docker和Docker Compose

打印 上一主题 下一主题

主题 800|帖子 800|积分 2400

Docker官网


  • https://docs.docker.com/
Docker镜像仓库


  • https://hub.docker.com/
Docker安装

安装curl(可选)
   如果已经安装了curl,则跳过此步调
  1. # 更新包缓存
  2. sudo apt update
  3. sudo apt install curl
复制代码
使用安装脚本自动安装
安装命令如下
  1. # 方式一
  2. curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
  3. # 方式二
  4. export DOWNLOAD_URL="https://mirrors.tuna.tsinghua.edu.cn/docker-ce"
  5. # 如您使用 curl
  6. curl -fsSL https://get.docker.com/ | sh
  7. # 如您使用 wget
  8. wget -O- https://get.docker.com/ | sh
  9. # 方式三
  10. curl -fsSL https://test.docker.com -o test-docker.sh
  11. 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。
  1. $ curl -fsSL https://get.docker.com -o get-docker.sh
  2. $ sudo sh get-docker.sh
复制代码
验证安装
  1. 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安装说明,
  https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors
  1. # 请在 vim /etc/docker/daemon.json 中写入如下内容(如果文件不存在请新建该文件):
  2. sudo mkdir -p /etc/docker
  3. sudo tee /etc/docker/daemon.json <<-'EOF'
  4. {
  5.   "registry-mirrors": [
  6.     "https://zdzuxfik.mirror.aliyuncs.com"
  7.   ]
  8. }
  9. EOF
  10. # 重新加载
  11. sudo systemctl daemon-reload
  12. # 之后重新启动服务:
  13. sudo systemctl restart docker
  14. # 查看日志
  15. grep docker /var/log/syslog
  16. tailf /var/log/messages
复制代码
检查加快器是否见效
检查加快器是否见效配置加快器之后,如果拉取镜像仍然十分痴钝,请手动检查加快器配置是否见效,在命令行执行 docker info,如果从结果中看到了如下内容,说明配置乐成。
  1. docker info
  2. docker info | grep "Registry Mirrors“
  3. Registry Mirrors:
  4.     https://reg-mirror.qiniu.com
复制代码
指定使用代理下载镜像
  1. docker pull registry.cn-hangzhou.aliyuncs.com/image_name:tag_name
复制代码
常用命令
  1. # 列出当前正在运行的容器
  2. docker ps
  3. # 列出所有容器,包括未运行的
  4. docker ps -a
  5. # 运行一个新容器
  6. docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
  7. # 停止一个或多个正在运行的容器
  8. docker stop CONTAINER [CONTAINER...]
  9. # 强制停止一个或多个正在运行的容器
  10. docker kill CONTAINER [CONTAINER...]
  11. # 删除一个或多个容器
  12. docker rm CONTAINER [CONTAINER...]
  13. # 删除一个或多个镜像
  14. docker rmi IMAGE [IMAGE...]
  15. # 启动一个或多个已经被停止的容器
  16. docker start CONTAINER [CONTAINER...]
  17. # 重启容器
  18. docker restart CONTAINER [CONTAINER...]
  19. # 进入正在运行的容器
  20. docker exec -it CONTAINER COMMAND
  21. # 构建一个镜像
  22. docker build -t IMAGE PATH
  23. # 将当前目录的Dockerfile上下文发送给守护进程,并在那里构建镜像
  24. docker build -t IMAGE .
  25. # 拉取一个镜像或仓库
  26. docker pull NAME[:TAG]
  27. # 推送一个镜像或仓库到仓库
  28. docker push NAME[:TAG]
  29. # 查看镜像信息
  30. docker inspect IMAGE|ID [OPTIONS]
  31. # 查看容器信息
  32. docker inspect CONTAINER [CONTAINER...]
  33. # 查看Docker的守护进程状态
  34. docker info
  35. # 删除所有容器
  36. docker container prune -f
  37. # 删除所有未使用的镜像
  38. docker image prune -a -f
  39. # 清理不再使用的镜像、容器、网络和卷
  40. docker system prune
  41. docker system prune -a -f
  42. # 查看Docker守护进程的日志
  43. docker logs -f
复制代码
Docker Compose安装

下载安装包
  1. # 最新版本
  2. curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
  3. # 指定版本v2.21.0
  4. curl -L "https://github.com/docker/compose/releases/download/v2.21.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
复制代码
设置权限
  1. chmod +x /usr/local/bin/docker-compose
复制代码
设置软链
  1. ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
复制代码
测试是否安装乐成
  1. docker-compose version
复制代码
常用命令
  1. # 列出由Compose管理的正在运行的容器
  2. docker-compose ps
  3. # 自动完成包括构建镜像,(重新)创建服务,启动服务
  4. docker-compose up
  5. # 后台执行
  6. docker-compose up -d
  7. # 启动指定组件
  8. docker-compose up mysql
  9. docker-compose up -d my_service
  10. # 此命令将会停止 up 命令所启动的容器,并移除网络
  11. docker-compose down
  12. # -v删除所有卷的选项
  13. docker-compose down -v
  14. # 将根据 docker-compose.yml 文件中的 build 部分 重构所有服务的镜像。
  15. docker-compose build
  16. # 使用 --build 参数将重新构建服务的镜像,然后启动服务。
  17. docker-compose up --build
  18. # 重启所有服务
  19. docker-compose restart
  20. docker-compose start
  21. docker-compose stop
复制代码
示例

前端Dockerfile示例

node汗青版本安装网址


  • https://nodejs.org/en/download/releases/
node-sass和node版本


  • https://github.com/sass/node-sass
  1. node版本: 16.13.2
  2. node-sass版本: cnpm i node-sass@6.0.1 -S
  3. sass-loader版本: cnpm i sass-loader@10.2.1 -S
  4. node版本: 12.16.0
  5. node-sass版本: cnpm i node-sass@4.14.1 -S
  6. sass-loader版本: cnpm i sass-loader@8.0.2 -S
  7. 更换淘宝镜像
  8. yarn config set registry https://registry.npmmirror.com
  9. npm install -g cnpm --registry=https://registry.npmmirror.com
  10. npm config set registry https://registry.npmmirror.com
复制代码
Dockerfile
  1. # 打包
  2. FROM node:16.17.1 as build-stage
  3. RUN mkdir /opt/easy-admin
  4. WORKDIR /opt/easy-admin
  5. COPY /easy-admin/package.json /opt/easy-admin/package.json
  6. RUN yarn config set registry https://registry.npmmirror.com
  7. RUN yarn config set ignore-engines true
  8. RUN yarn install
  9. COPY /easy-admin /opt/easy-admin
  10. RUN npm run build
  11. # 部署nginx
  12. FROM nginx:1.25.2 as production-stage
  13. COPY --from=build-stage /opt/easy-admin/dist /opt/dist
  14. # 替换配置文件
  15. RUN rm /etc/nginx/conf.d/default.conf
  16. RUN rm /etc/nginx/nginx.conf
  17. COPY /docker/nginx.conf /etc/nginx/
  18. CMD ["nginx", "-g", "daemon off;"]
复制代码
nginx.conf
  1. user  nginx;
  2. worker_processes  auto;
  3. error_log  /var/log/nginx/error.log notice;
  4. pid        /var/run/nginx.pid;
  5. events {
  6.     worker_connections  1024;
  7. }
  8. http {
  9.     include  /etc/nginx/mime.types;
  10.     default_type  application/octet-stream;
  11.     log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
  12.                       '$status $body_bytes_sent "$http_referer" '
  13.                       '"$http_user_agent" "$http_x_forwarded_for"';
  14.     access_log  /var/log/nginx/access.log  main;
  15.     sendfile    on;
  16.     #tcp_nopush     on;
  17.     keepalive_timeout  65;
  18.     #gzip  on;
  19.     server {
  20.         listen  8088;
  21.         charset utf-8;
  22.         server_name  localhost;
  23.         root /opt/dist;
  24.         index index.html;
  25.         location / {
  26.            try_files $uri $uri/ /index.html;
  27.         }
  28.    }
  29. }
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

惊落一身雪

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表