Ubuntu安装Docker和Docker Compose

lakernote 2024-08-10 16:37:05 阅读 99

文章目录

Docker安装Docker Compose安装示例前端Dockerfile示例

Docker官网

https://docs.docker.com/

Docker镜像仓库

https://hub.docker.com/

Docker安装

安装curl(可选)

如果已经安装了curl,则跳过此步骤

<code># 更新包缓存

sudo apt update

sudo apt install curl

使用安装脚本自动安装

安装命令如下

# 方式一

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

# 方式二

export DOWNLOAD_URL="https://mirrors.tuna.tsinghua.edu.cn/docker-ce"code>

# 如您使用 curl

curl -fsSL https://get.docker.com/ | sh

# 如您使用 wget

wget -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安装说明,

https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors

# 请在 vim /etc/docker/daemon.json 中写入如下内容(如果文件不存在请新建该文件):

sudo mkdir -p /etc/docker

sudo tee /etc/docker/daemon.json <<-'EOF'

{

"registry-mirrors": [

"https://zdzuxfik.mirror.aliyuncs.com"

]

}

EOF

# 重新加载

sudo systemctl daemon-reload

# 之后重新启动服务:

sudo systemctl restart docker

# 查看日志

grep docker /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

常用命令

# 列出当前正在运行的容器

docker ps

# 列出所有容器,包括未运行的

docker ps -a

# 运行一个新容器

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

# 停止一个或多个正在运行的容器

docker stop CONTAINER [CONTAINER...]

# 强制停止一个或多个正在运行的容器

docker kill CONTAINER [CONTAINER...]

# 删除一个或多个容器

docker rm CONTAINER [CONTAINER...]

# 删除一个或多个镜像

docker rmi IMAGE [IMAGE...]

# 启动一个或多个已经被停止的容器

docker start CONTAINER [CONTAINER...]

# 重启容器

docker restart CONTAINER [CONTAINER...]

# 进入正在运行的容器

docker exec -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.0

curl -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-compose ps

# 自动完成包括构建镜像,(重新)创建服务,启动服务

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历史版本安装网址

https://nodejs.org/en/download/releases/

node-sass和node版本

https://github.com/sass/node-sass

node版本: 16.13.2

node-sass版本: cnpm i node-sass@6.0.1 -S

sass-loader版本: cnpm i sass-loader@10.2.1 -S

node版本: 12.16.0

node-sass版本: cnpm i node-sass@4.14.1 -S

sass-loader版本: cnpm i sass-loader@8.0.2 -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;

}

}

}



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。