Origin

docker 基本使用

拉取运行

docker pull arthurlixin/chat

docker run -d -p 5000:5000 --name chat chat

生成镜像

docker build -f [ExamManager.Web/Dockerfile](http://exammanager.web/Dockerfile) -t exam .

打tag

➜  DockerSiteDemo git:(master) docker tag core_invt arthurlixin/core_invt
➜  DockerSiteDemo git:(master) docker push arthurlixin/core_invt:latest

(base) lixin in ~/Desktop/core6 λ docker tag 9d3c16078b29 arthurlixin/webapp:latest
(base) lixin in ~/Desktop/core6 λ docker push arthurlixin/webapp:latest

docker tag 9d3c16078b29 124.221.98:5000/9d3c16078b29

docker push 124.221.98:5000/9d3c16078b29

导出导入

docker save -o webapp.tar webapp

docker load --input webapp.tar

Docker Compose

  • windows 和linux 配置文件制定路径会稍有不同,win10 和 winserver 也不一样
version: '3.0'

services:

  gateway:
    image: gatewaycore 
    restart: always
    container_name: "gateway" 
    ports:
      - 30080:80
    build: 
      context: . 
      dockerfile: Gateway/Dockerfile.original    
    volumes: 
      - c:/logs:/app/logs 
      - c:/logs/gateway/ocelot.json:/app/ocelot.json  
      - c:/logs/gateway/appsettings.json:/app/appsettings.json  
      #- /Users/lixin/Desktop/logs:/app/logs # linux
    networks:
      - "default"

networks:
  default:

Dockerfile

FROM mcr.microsoft.com/dotnet/aspnet:6.0 AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443

FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build
WORKDIR /src
COPY ["Api/Api.csproj", "Api/"]

RUN dotnet restore "Api/Api.csproj"
COPY . .
WORKDIR "/src/Api"
RUN dotnet build "Api.csproj" -c Release -o /app/build

FROM build AS publish
RUN dotnet publish "Api.csproj" -c Release -o /app/publish

FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
RUN echo 'Asia/Shanghai' >/etc/timezone
RUN sed -i 's/TLSv1.2/TLSv1.0/g' /etc/ssl/openssl.cnf

ENTRYPOINT ["dotnet", "Api.dll"]

Docker 基本操作

  • 查看所有镜像 docker images
  • 获取镜像 docker pull
  • 删除镜像 docker rmi
  • 运行容器 docker run -i -t docker.io/ansible/centos7 /bin/bash
  • 查看所有容器 docker ps 正在运行的程序 -a
  • 退出容器在后台运行 ctrl +p +q / docker run -it -d 镜像名 /bin/bash
  • 移除镜像 docker rm
  • 停止 docker stop
  • 开始容器 docker start
  • 进入正运行的 docker attach
  • 查看容器信息 docker inspect
  • 添加集群 docker swarm join-token manager
  • swarm 添加工作者 docker swarm join-token worker
  • 显示集群里所有的结点 docker node ls
  • 提升工作者为管理者 docker node promote 结点id
  • 创建 dockerfile docker build docker login docker push 发布到docker hub上
  • 创建私有镜像 docker build -t 镜像名称 .
  • 删除之前的镜像 docker image prune
  • docker-compose build
  • 运行 compose docker-compose up
  • 停止删除 docker-compose down
  • 网络 docker network
  • docker cp default.conf nginx1:/etc/nginx/conf.d/default.conf
  • docker cp nginx1:/etc/nginx/conf.d/default.conf .
  • docker restart nginx1

windows server2019 安装(补充2022-11)

确认虚拟化开启

确认虚拟化开启

离线安装包

离线安装包

启用虚拟机和容器

启用hyperv 启用容器 启用网卡

配置环境变量

编辑Path 新增docker路径

注册服务

注册服务

设置服务开机自启

开机自启服务 开机自启服务

启动服务

  • 创建文件 C:/ProgramData/docker/config/daemon.json
{
	"registry-mirrors":["https://docker.mirrors.ustc.edu.cn"],
	"experimental":true
}
  • powershell 执行命令开启linux 内核
 [Environment]::SetEnvironmentVariable("LCOW_SUPPORTED", "1", "Machine")

找到服务 服务自启

验证

  • 重启机器,在powershell 输入验证
   docker pull nginx

   docker images

   docker run -d -p 8999:80 --name nginx nginx
  • 在浏览器输入 http://localhost:8999 如果可以访问nginx 配置成功