DEV Community

ChengLiang
ChengLiang

Posted on

Docker使用

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

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

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

有了镜像就要启动, 启动成容器运行在计算机上. 如果容器需要接管本地流量, 则宿主机作代理, 开启映射端口

docker run -d --name=code-server -p8080:80
Enter fullscreen mode Exit fullscreen mode

运行 code-server

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

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
Enter fullscreen mode Exit fullscreen mode

以上代码来自linuxserver/code-server

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

docker-compose up -d
Enter fullscreen mode Exit fullscreen mode

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

---
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
Enter fullscreen mode Exit fullscreen mode

以上代码来自linuxserver/code-server

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

测试

构建镜像

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

docker build -t celiae/ceblog:latest .
Enter fullscreen mode Exit fullscreen mode

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

启用容器

docker run -p 1024:3000 celiae/ceblog:latest
Enter fullscreen mode Exit fullscreen mode

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

查询

docker ps -a
Enter fullscreen mode Exit fullscreen mode

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

DockerHub

测试成功后推到 dockerhub

docker push celiae/ceblog:latest
Enter fullscreen mode Exit fullscreen mode

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

获取镜像

docker pull celiae/ceblog:latest
Enter fullscreen mode Exit fullscreen mode

run 的步骤基本一样

服务器上运行镜像

docker run -d -p 1024:3000 celiae/ceblog:latest
Enter fullscreen mode Exit fullscreen mode

-d 运行在 daemon 后台

Top comments (0)