Docker 常用命令
- 列出全部的镜像: docker image ls (或是 docker images)
Docker 教程:
https://yeasy.gitbook.io/docker_practice/basic_concept/container
笔记
- 镜像(Image)和容器(Container)的关系,就像 类 和 实例 一样.
- 下载镜像 pull,一点要开启全局代理。
- Docker 国内镜像,加速器,配置过程:
运行一个 Dockerfile 文件
- 先启动 Docker Desktop
- 比如这个仓库 https://github.com/mlflow/mlflow, 它有一个 Dockerfile
- 下载 -- 解压 -- 进入这个仓库
- 创建 docker 容器(环境)
docker build ./ -f Dockerfile -t tag_name 或是
docker build ./ -t tag_name 或是
docker build -t tag_name . - 运行 docker 容器(环境)
docker run env_name # 这里其实是运行一个命令 - 进入这个 docker 容器(环境)
docker run -it env_name /bin/bash # 交互式的命令,并给出一个终端 exit 退出
运行一个 Docker 镜像
- docker run redis 最简单的方式
- docker run -d -p 3080:80 docker/getting-started
-d 脱离模式,后台运行
-p port 系统端口号: 容器的端口号
-然后打开 http://localhost:3080
创建一个 Docker 镜像
- 编写一个 Dockerfile 文件, 具体见例子
- docker build --tag py_docker_1 . # 最后那个 . 不能忽略了
创建一个容器
- 写一个 Dockerfile 文件,
- 在 Dockerfile 所在的目录下运行:
$ docker build -t get_start . - 之后会生成一个名为 get_start的 容器。
- 运行这个容器 get_start,参考运行。
Dockerfile 例子
bash
FROM node:12-alpine
RUN apk add --no-cache python g++ make
WORKDIR /app
COPY . .
RUN yarn install --production
CMD ["node", "src/index.js"]
分享一个容器
- 注册登录 https://hub.docker.com/
- 创建一个容器。就是点击按钮等等。
- 本地客户端登录一下:
$ docker login -u buxuele - 把自己的镜像搞一个标签名字
$ docker tag get_start buxuele/get_start - 然后把本地的镜像上传到 hub
$ docker push buxuele/get_start
多个容器共享一个文件 ,比如一个数据库文件.
- 创建一个 文件卷
$ docker volume create todo-db - 运行的时候,把数据库单独加载进来。
$ 每次运行这个项目的时候,都是使用下面这个命令。不然会清除数据库的。
$ docker run -dp 3000:3000 -v todo-db:/etc/todos get_start