Docker使用
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)
确认虚拟化开启
离线安装包
启用虚拟机和容器
配置环境变量
注册服务
设置服务开机自启
启动服务
- 创建文件 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 配置成功