Fork me on GitHub

Docker笔记

一、安装docker

1,卸载旧版本

$ sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

2,获取安装脚本,并安装 wget -qO- https://get.docker.com/ | sh 

3,将docker配置为开启启动

systemctl enable docker
systemctl is-enabled docker

4,启动docker  systemctl start docker 

5,查询docker版本 docker --version 

6,查询docker信息 docker system info 

 

二、镜像

下载镜像: docker image pull <repository>:<tag> 

返回废墟镜像: docker image ls --filter dangling=true 

移除全部的废墟镜像: docker image prune 

过滤查询: docker image ls --filter=reference="*:latest" 

在docker hub上搜索镜像:  docker search mysql --filter="is-official=true" --limit 100 

--filter="is-official=true" :只查询官方的

--limit 100 :返回条数

查看镜像分层: docker image inspect ubuntu:latest  

删除镜像: docker image rm alpine:latest 

 

三、容器

启动ubuntu liunx并运行Bash Shell作为其应用: docker container run -it ubuntu /bin/bash 

-it 参数可以将当前终端连接到容器的Shell终端之上

Ctrl+PQ 退出容器(没有终止容器)

链接到运行容器的终端中: docker container exec -it <name or id> bash 

启动容器: docker container run -d --name webservice -p 80:8080 nigelpoulton/pluralsight-docker-ci 

-d 后台运行

-p 80:8080 docker上80端口映射到容器内8080端口

查看容器: docker container ls 

-a 查询所有的容器

停止容器: docker container stop 6b4857fe6314 

删除容器: docker container rm 6b4857fe6314 

启动容器: docker container start percy 

重启策略: docker container run -d --name always --restrart always alpine 

always:除非明确docker container stop停止该容器,否则该策略会一直尝试重启处于停止状态的容器

unless-stopped:和always的区别是不会再docker daemon重启的时候被启动

on-failure:会在退出容器并且返回值不是0的时候重启容器

清理所有的容器: docker container rm $(docker container ls -aq) -f  

 

四、netcore应用容器化

1,Dockerfile

aspnetcore Dockerfile指导链接

demo下载:链接: https://pan.baidu.com/s/1tej3V3S6_oqOKhFB5BSMmw 提取码: ia8a 

FROM mcr.microsoft.com/dotnet/core/sdk:2.2 AS build
WORKDIR /app

COPY *.csproj .
RUN dotnet restore

COPY . .
RUN dotnet publish -c Release -o out


FROM mcr.microsoft.com/dotnet/core/aspnet:2.2 AS runtime
WORKDIR /app
COPY --from=build /app/out ./
EXPOSE 5000
ENTRYPOINT ["dotnet", "netcoremvc_demo.dll"]
Dockerfile

 

FROM:指定要构建的镜像的基础镜像

RUN:在镜像中执行命命令,会创建新的镜像层

COPY:将文件作为新的层添加到镜像中,通常使用COPY将应用代码赋值到镜像中

EXPOSE:声明容器运行的服务端口 EXPOSE 80 443 

ENTERPOINT:指定镜像以容器方式启动后默认运行的程序

ENV:设置环境变量 ENV MYSQL_ROOT_PASSWORD 123456 

ADD:和COPY一样,支持自动下载和自动解压 ADD https://xxx.com/html.tar.gz /var/www/html 

WORKDIR:定位到指定目录(为RUN、CMD、ENTRYPOINT以及COPY和AND设置工作目录)

 

2,构建docker 镜像

打包镜像: docker image build -t demo:latest . 

查询构建过程(size>0的会新建镜像层): docker image history demo:latest 

 

3,将镜像推送到docker hub

登录docker docker login 

为镜像重新打一个标签(因为需要推送的到我们自己的docker hub下): docker image tag alpine:latest 962410314/alpine:latest 

推送: docker image push 962410314/alpine 

 

posted on 2020-05-05 13:05  *Hunter  阅读(208)  评论(0编辑  收藏  举报

导航

AmazingCounters.com