Docker

2023/11/29 docker

Docker为应用程序实现了一种部署方案,将运行环境和应用程序抽象为一个整体,解耦了部署过程。这个方案提高了系统的可移植性、可维护性。

# 相关概念

镜像:运行环境和应用程序抽象为一个整体,具体为一个文件。

容器:容器通过镜像来创建,创建的容器有其自身的生命周期。

仓库:存放各个镜像的仓库。

# 安装

前提:用VMware装好Ubuntu虚拟机,然后在Ubuntu上安装Docker。

1.使用官方安装脚本安装:

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

2.配置Docker镜像加速

a.创建或修改 /etc/docker/daemon.json 文件,并写入以下内容:

{
   "registry-mirrors": [
       "https://mirror.ccs.tencentyun.com"
  ]
}
1
2
3
4
5

b.依次执行以下命令,重新启动 Docker (opens new window) 服务。

systemctl daemon-reload
service docker restart
1
2

c.检查是否生效

docker info
1

在返回信息最底下有如下信息则表示成功

Registry Mirrors:
 https://mirror.ccs.tencentyun.com
1
2

# 使用

  1. 准备Dockerfile文件
FROM nginx
COPY dist/ /usr/share/nginx/html/
COPY default.conf /etc/nginx/conf.d/default.conf
1
2
3
  1. 开始构建镜像并推送镜像
VERSION=1.1.28-SNAPSHOT # 项目开发版本(每次打包手动更改,例,下次打包:1.1.29-SNAPSHOT)
PROJECT_NAME=dev1 # 项目组名称
APP_NAME=hello-world # 项目名称

docker build -t ${PROJECT_NAME}/${APP_NAME}:${VERSION} .

docker tag ${PROJECT_NAME}/${APP_NAME}:${VERSION} harbor.aiagain.com/${PROJECT_NAME}/${APP_NAME}:${VERSION}

docker push harbor.aiagain.com/${PROJECT_NAME}/${APP_NAME}:${VERSION}
1
2
3
4
5
6
7
8
9
  1. 运行镜像
docker run -d -p 5000:5000 容器名称
docker ps 
1
2

# 实践场景

学会docker的基本用法,这让我也很方便地部署一个软件系统,之前那个easy-mock系统我终于可以部署到腾讯云服务器了

目前基本有两种使用方式:

  • 一种是批处理的方式运行docker的命令

  • 另一种是以更为内聚的方式Dockerfile来构建镜像,再运行简单运行镜像

# 其他

https://www.runoob.com/docker/docker-tutorial.html

https://www.docker.com/

https://cloud.tencent.com/document/product/213/46000

更新时间: 2023/11/29 15:42:16