Docker笔记

  1. 命令
    1. docker pull
    2. docker build
    3. docker images
    4. docker run
    5. docker ps
    6. docker rm
    7. docker rmi
    8. docker cp
    9. docker commit
  2. dockerfile
  3. 使用docker步骤
    1. 安装docker
    2. 下载镜像
    3. 创建镜像
    4. 生成容器
    5. 保存镜像

可以粗糙的理解为轻量级的虚拟机,把程序放在单独的环境中运行

http://www.ruanyifeng.com/blog/2018/02/docker-tutorial.html

update:K8s的pod才可以理解为虚拟机,容器其实就是一个进程,被修饰过,有点特殊的进程。

命令

docker pull

获取image

docker build

创建image

docker images

列出image

docker run

运行container,跑一个项目

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
	docker run \
--name ${pjName} \
# 容器名
--rm \
# 停止运行后自动删除当前容器
-ti \
# t for terminal,i for interact
-v $$(pwd):/var/www/html \
# 映射当前目录到容器指定目录
-p 3000:3000 \
# 映射端口到容器端口
mooxe/node \
/bin/bash
# 额外加一个命令,只能加一个
# 这是运行bash shell

docker ps

列出container,项目们
-a

列出隐藏的

docker rm

删除container

docker rmi

删除image

docker cp

在host和container之间拷贝文件

docker commit

保存改动为新的image

dockerfile

FROM: base image

RUN: 执行命令

ADD: 添加文件

COPY: 拷贝文件

CMD: 执行命令,打包完成之后

EXPOSE: 暴露端口

WORKDIR: 指定路径

MAINTAINER: 维护者

ENV: 设定环境变量

ENTRYPOINT: 容器入口

USER: 指定用户

VOLUME: mount point

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# 可以指定依赖的node镜像的版本 node:<version>,如果不指定,就会是最新的
FROM node:8.6.0

# 创建工作目录,对应的是应用代码存放在容器内的路径
WORKDIR /usr/src/app

# 把 package.json,package-lock.json(npm@5+) 或 yarn.lock 复制到工作目录(相对路径)
COPY package.json *.lock .

# 只安装dependencies依赖
# node镜像自带yarn
RUN yarn --only=prod --registry=https://registry.npm.taobao.org

# 把其他源文件复制到工作目录
COPY . .

# 替换成应用实际的端口号
EXPOSE ${app_port}

# 这里根据实际起动命令做修改
CMD [ "npm", "start" ]
1
2
3
4
touch Dockerfile

docker build -t hello_docker .
使用.目录下的dockerfile文件创建一个叫做hello_docker的镜像,

使用docker步骤

安装docker

下载镜像

1
2
3
4
<!-- 拉取镜像 -->
docker image pull imagename
<!-- 查看镜像 -->
docker images

创建镜像

docker commit将指定容器保存为新的镜像

1
2
docker commit <Container ID> <Name>:<Tag>
docker commit fldhsa5342hkjhs bitcoin:0.1

根据dockerfile创建镜像

1
docker build -t imagename .

生成容器

image 文件生成的容器实例,本身也是一个文件,称为容器文件。也就是说,一旦容器生成,就会同时存在两个文件: image 文件和容器文件。而且关闭容器并不会删除容器文件,只是容器停止运行而已。

1
2
3
4
5
# 运行镜像 
docker run -p 8000:3000 -it koa-demo:0.0.1 /bin/bash

# 删除容器
docker rm [containerID]

  • -p参数:容器的 3000 端口映射到本机的 8000 端口。
  • -it参数:容器的 Shell 映射到当前的 Shell,然后你在本机窗口输入的命令,就会传入容器。
  • koa-demo:0.0.1:image 文件的名字(如果有标签,还需要提供标签,默认是 latest 标签)。
  • /bin/bash:容器启动以后,内部第一个执行的命令。这里是启动 Bash,保证用户可以使用 Shell。

保存镜像

文章标题:Docker笔记

本文作者:Benny

发布时间:2020-06-08, 19:49:32

最后更新:2019-10-10, 16:21:00

原始链接:https://benny233.github.io/2020/06/08/Docker笔记/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。

目录