Docker Note

常用命令

  • docker version
  • systemctl start docker

镜像

  • docker image ls
  • docker image rm [imageName]
  • docker image pull [imageName]
  • docker inspect [imageName] 获取元数据

容器

  • docker container run [imageName]
  • docker container run -it [imageName] bash
  • docker container kill [containerID] id不用填完整 , 能够唯一定位到即可
  • docker container ls
  • docker container ls --all
  • docker container rm [containerID]
  • docker container stop [containerID] //container 可省略
  • docker container start [containerID]
  • docker container logs [containerID]
  • docker container exec -it [containerID] /bin/bash
  • docker container inspect [containerID/Name]

Dockerfile

.dockerignore

忽略内容 , 和 git 的 .gitignore 一个意思

1
2
node_modules
npm-debug.log

Dockerfile

1
2
3
4
5
FROM node:8.4
COPY . /app
WORKDIR /app
RUN npm install --registry=https://registry.npm.taobao.org
EXPOSE 3000
  • FROM node:8.4:该 image 文件继承官方的 node image,冒号表示标签,这里标签是8.4,即8.4版本的 node
  • COPY . /app:将当前目录下的所有文件(除了.dockerignore排除的路径),都拷贝进入 image 文件的/app目录
  • WORKDIR /app:指定接下来的工作路径为/app
  • RUN npm install:在/app目录下,运行npm install命令安装依赖。注意,安装后所有的依赖,都将打包进入 image 文件
  • EXPOSE 3000:将容器 3000 端口暴露出来, 允许外部连接这个端口
  • 👉镜像构建上下文

创建 image 镜像

  • docker image build -t [name] .
  • docker image build -t [name]:0.0.1 .
  • . 表示上下文路径
  • -t 指定名称

生成容器

  • docker container run -p 2222:3333 -it [name] /bin/bash
  • docker container run -p 2222:3333 -it [name]:0.0.1 /bin/bash
  • -p 映射端口 , 本机:容器 { 127.0.0.1:2222:3333 / [ip]:2222:3333 / [不填]2222:3333 默认为 0.0.0.0:2222:3333 }
  • -it 容器的 Shell 映射到当前的 Shell,在本机窗口输入的命令,就会传入容器
  • /bin/bash 启动容器内 bash

Docker Compose

  • docker-compose --version
  • docker-compose.yml

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    mysql:
    image: mysql:5.7
    environment:
    - MYSQL_ROOT_PASSWORD=123456
    - MYSQL_DATABASE=wordpress
    web:
    image: wordpress
    links:
    - mysql
    environment:
    - WORDPRESS_DB_PASSWORD=123456
    ports:
    - "127.0.0.3:8080:80"
    working_dir: /var/www/html
    volumes:
    - wordpress:/var/www/html
  • docker-compose up

  • docker-compose stop
  • docker-compose rm

修改镜像源

  • 在阿里云找到镜像加速器

  • 在服务器 /etc/docker 下 , 新建 daemon.json , 添加镜像地址

    1
    2
    3
    {
    "registry-mirrors": ["https://0f2b6859.mirror.aliyuncs.com"]
    }

参考内容

< - 僕らは知らない - >