Skip to content

docker

介绍

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

  • 镜像(Image):Docker 镜像(Image),就相当于是一个 root 文件系统。比如官方镜像 ubuntu:18.
  • 容器(Container):镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态 代码,容器是运行代码
  • 仓库(Repository):仓库可看成一个代码控制中心,用来保存镜像,可以理解为代码控制中心,用来保存、更新镜像

安装

linux 安装依赖

bash
yum install -y yum-utils
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.rep
yum install -y docker-ce

启动 docker

sh
systemctl start docker

配置 docker

sh
vim /etc/docker/daemon.json
{
    "registry-mirrors": ["https://hub-mirror.c.163.com"]
}

重启 docker

sh
systemctl restart docker

dockerfile

创建一个 dockerfile

sh
# 设置基础镜像
FROM node:lts-alpine
# 设置工作目录
WORKDIR /build
COPY ./package.json /build/package.json
# 设置npm镜像
RUN npm config set registry https://registry.npm.taobao.org
COPY package.json /build/package.json
RUN yarn
COPY ./ /build
RUN npm run build

FROM nginx
RUN mkdir /app
COPY --from=0 /build/dist /app
COPY --from=0 /build/nginx.conf /etc/nginx/nginx.conf

# 暴露映射端口
EXPOSE 80
# 启动参数
CMD ["/usr/sbin/httpd", "-DFOREGROUND"]

常用命令

bash
docker ps //查看当前运行中的容器
docker ps -a //查看所有运行过的容器
docker inspect containerId(容器ID或容器名)//查看对应容器的具体配置信息
docker port containerId //查看对应容器端口映射
docker run --name containerName -it -p 80:80 -d // --name是为容器取一个别名,-p 80:80是端口映射,将宿主机的80端口映射到容器的80端口上,-d是指后台运行容器,即容器启动后不会停止,-it是-i 和-t的合并,以交互模式运行容器。
docker images //查看所有镜像
docker exec -it containerName /bin/bash //进入已启动的容器内,新启一个进程,执行命令。
docker stop containerName // 停止一个容器
docker start -i containerName //重启启动一个运行过的容器
docker rm containerName //移除一个容器
docker build -t <imagename>:<tag> dir  // 根据DockerFile 构建一个镜像
docker rmi <imageId> // 删除镜像
docker tag <imageId> <imagename>:<tag> // 给镜像设置一个新tag

docker-compose

  • docker compose 命令是用来管理和运行多个容器的应用的工具 docker compose 命令的用法主要如下:

  • 命令必须在 docker-compose.yml 文件所在的目录下执行

  • docker compose -f, --file FILE 指定使用的 Compose 模板文件,默认为 docker-compose.yml,可以多次指定。 -p, --project-name NAME 指定项目名称,默认将使用所在目录名称作为项目名。 --verbose 输出更多调试信息。 -v, --version 打印版本并退出。

  • docker-compose up

后台启动, 启动所有服务并在后台运行。

  • docker-compose up -d

停止所有服务。

  • docker-compose stop

restart

  • docker-compose restart重启服务容器。
  • docker-compose restart # 重启工程中所有服务的容器
  • docker-compose restart nginx # 重启工程中指定服务的容器

start

  • docker-compose start启动服务容器。
  • docker-compose start # 启动工程中所有服务的容器
  • docker-compose start nginx # 启动工程中指定服务的容器

stop

  • docker-compose stop停止服务容器。
  • docker-compose stop # 停止工程中所有服务的容器
  • docker-compose stop nginx # 停止工程中指定服务的容器

构建服务的镜像

  • docker-compose build

如果服务镜像不存在则构建镜像并启动服务。

  • docker-compose up –build

重构服务。

  • docker-compose up --force-recreate

  • docker-compose ps

查看容器的日志。

  • docker-compose logs

Released under the MIT License.