探索Docker

Docker

  • Dockerfile: 用来创建自定义镜像

  • docker-compose.yml: 可整合多个镜像, 常用于在启动容器时配置运行参数,便于命令行操作

以上是常见的文件命名方法, 也可取其他文件名. 例如 abc.yml.

启动镜像等于创建容器. 若容器需要接管本地流量, 则可开启映射端口

1
docker run -d --name=code-server -p8080:80

运行 code-server

假如我们运行一个 code-server,我们想给一些参数

1
2
3
4
5
6
7
8
9
10
11
12
docker run -d \
--name=code-server \
-e PUID=1000 \
-e PGID=1000 \
-e TZ=Asia/Shanghai \
-e PASSWORD=password `#optional` \
-e SUDO_PASSWORD=password `#optional` \
-e DEFAULT_WORKSPACE=/config/workspace `#optional` \
-p 8443:8443 \
-v /path/to/appdata/config:/config \
--restart unless-stopped \
lscr.io/linuxserver/code-server:latest

以上代码来自linuxserver/code-server

显然不易维护. 利用 docker-compose 读取 docker-compose.yml 文件并启动容器

1
docker-compose up -d

默认读取当前文件夹下的 docker-compose.yml, 选项 -d 意为 daemon 使它运行在后台,每次运行容器只需这一个命令和一个配置文件. 例如给出 code-server 的配置文件 docker-compose.yml:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
---
version: "2.1"
services:
code-server:
image: lscr.io/linuxserver/code-server:latest
container_name: code-server
environment:
- PUID=1000
- PGID=1000
- TZ=Asia/Shanghai
- PASSWORD=password #optional
- SUDO_PASSWORD=password #optional
- DEFAULT_WORKSPACE=/config/workspace #optional
volumes:
- /path/to/appdata/config:/config
ports:
- 8443:8443
restart: unless-stopped

以上代码来自linuxserver/code-server

修改文件比修改命令更容易

测试

构建镜像

通常在开发完工后会将项目打包成生产环境, 也就是产品.

1
docker build -t celiae/ceblog:latest .

稍等片刻,可以得到镜像名为”celiae/ceblog”,标签名为”latest”的镜像.latest 以为最新版.

启用容器

1
docker run -p 1024:3000 celiae/ceblog:latest

端口映射, 浏览器输入”localhost:1024”,OK

查询

1
docker ps -a

它会列出正在运行中的容器进程

DockerHub

测试成功后推到 dockerhub

1
docker push celiae/ceblog:latest

在 dockerhub 登陆账号在仓库(repository)中能看到 celiae/ceblog 的最新版本

获取镜像

1
docker pull celiae/ceblog:latest

run 的步骤基本一样

服务器上运行镜像

1
docker run -d -p 1024:3000 celiae/ceblog:latest

-d 运行在 daemon 后台


探索Docker
https://celiae.github.io/2022/05/14/探索Docker/
作者
celiae
发布于
2022年5月14日
许可协议