docker官方仓库
https://hub.docker.com/
账号:201905045210
密码:zxt18700482809

1. 构建本地镜像
进入 centos的wabappdemo项目发布文件夹(比如 /root/temp/wabappdemo),使用docker build命令构建本地镜像。
docker build -t wabappdemo .

wabappdemo 表示镜像名,镜像名必须小写,注意后面个点号(.),并且点号前面有个空格,表示构建镜像到当前目录。

用docker images 命令查看镜像列表
docker images


2.docker创建容器命令,容器是镜像的实例,创建wabappdemo镜像的容器
docker run -d --name my.wabappdemo -p 8002:50002 -v /app/web wabappdemo

docker run --name netcore-mvc -d -p 50879:80 core-mvcdocker ps -a
参数说明
-d ,表示在后台以守护态(daemonized)形式运行容器
-p 外部端口与内部容器端口映射。
--name 指定容器的名称。当然可以不指定,默认会为我们创建
最后一个参数 core-mvc 就是我们刚创建的镜像名称

-d 后台运行容器
--name 容器名
-p 8001:50001 冒号前面的8001表示对象访问的端口,冒号后面的50001表示容器内部端口。
-v 为容器设置卷路径,可随意指定卷路径,这里是在/app/web目录下。
最后面的wabappdemo表示镜像名


3.查看运行中的容器:
docker ps


发布docker
接下来就是登录一个hub帐号了 命令: docker login 如果成功则显示下图
命令登录docker中央仓库:docker login
账户:201905045210
密码:zxt18700482809
输入用户名,密码登陆成功即可

4.commit一个容器 命令: docker commit CONTAINER_ID 仓库路径
docker commit 2907ad80faca 201905045210/zhoutao_test


5.将刚才的镜像push 到你的hub 那里去 命令: docker push 仓库路径:版本号 这个latest其实就是一个tag name 会在hub的Tags那里显示
命令:docker push 仓库的名字:latest
实例:docker push 201905045210/zhoutao_test:latest

成功打印如下:
The push refers to a repository [docker.io/zhangbamboo/test]
d8153f44fb20: Pushing [==================================================>] 128.3 MB
d69483a6face: Pushing [==================================================>] 209.5 MB
success

6.现在验证一下 命令: docker inspect 仓库的名字

可以使用docker inspect来查看该容器的详细信息。
$ sudo docker inspect +容器编号


接下来我们使用该命令进入一个已经在运行的容器

$ sudo docker ps
$ sudo docker exec -it 容器编号 /bin/bash

 


dotnet Asp.NetCoreWeb.Api.dll --urls="http://*:8082"

 

docker info # 查看docker的信息
docker search img_name # 搜索名为img_name的镜像
docker pull img_name # 将名为img_name的镜像下载到本地
docker images # 查看本地已有的镜像
docker rmi img_name # 删除名为img_name的镜像

docker ps # 列出正在运行的容器
docker ps -a # 列出所有的容器
docker run -itd --name=container_name img_name # 使用img_name以交互模式在后台运行分配了伪终端的名为container_name的镜像

docker start container_name/container_id # 通过容器名字或ID启动容器
docker stop container_name/container_id # 通过容器名字或ID停止容器
docker restart container_name/container_id # 通过容器名字或ID重启容器
docker rm container_name/container_id # 通过容器名字或ID删除容器

docker exec -it container_name/container_id /bin/bash # 通过容器名字或ID进入容器
exit # 退出容器

 

==============================================================================阿里云docker容器化部署步骤============================================================================
1.在项目中编写Dockerfile文件
dockerfile是一个文件格式的配置文件,用户可以使用dockerfile来快速构建自定义的镜像。由一行行命令语句组成,并且支持#开头的注释行。
dockerfile主题内容一般分为4部分
(1)基础镜像信息
(2)维护者信息使用label指令
(3)镜像操作指令
(4)容器启动时执行指令


dockerfile文件指令说明:
FROM -指定所创建镜像的基础镜像
WORKDIR-配置工作目录
EXPOSE-声明镜像内服务监听的端口
COPY-复制内容到镜像
ENTRYPOINT-启动镜像的默认人口命令


2.发布并上传相关的项目文件到服务器的目录下。
进入 centos的wabappdemo项目发布文件夹(比如 /root/temp/wabappdemo),使用docker build命令构建本地镜像。
命令:
docker build -t 镜像名称 .
例如:docker build -t wabappdemo .

wabappdemo 表示镜像名,镜像名必须小写,注意后面个点号(.),并且点号前面有个空格,表示构建镜像到当前目录。
用docker images 命令查看镜像列表
docker images


2.docker创建容器命令,容器是镜像的实例,创建wabappdemo镜像的容器
docker run -d --name my.wabappdemo -p 8002:50002 -v /app/web wabappdemo
docker run --name netcore-mvc -d -p 50879:80 core-mvc

参数说明
-d ,表示在后台以守护态(daemonized)形式运行容器
-p 外部端口与内部容器端口映射。
--name 指定容器的名称。当然可以不指定,默认会为我们创建
最后一个参数 core-mvc 就是我们刚创建的镜像名称
-d 后台运行容器
--name 容器名
-p 8001:50001 冒号前面的8001表示对象访问的端口,冒号后面的50001表示容器内部端口。
-v 为容器设置卷路径,可随意指定卷路径,这里是在/app/web目录下。最后面的wabappdemo表示镜像名

 

3.查看运行中的容器:
docker ps

4.登录阿里云的docker镜像仓库(网址:https://cr.console.aliyun.com/),命令:
sudo docker login --username=阿里云账户名 registry.cn-hangzhou.aliyuncs.com
账户名:zxt201619891010
密码:zxt18117108330

将镜像推送到Registry
$ sudo docker login --username=zxt201619891010 registry.cn-hangzhou.aliyuncs.com
$ sudo docker tag [ImageId] registry.cn-hangzhou.aliyuncs.com/zhouxiantao/zxt_dockers:[镜像版本号]
$ sudo docker push registry.cn-hangzhou.aliyuncs.com/zhouxiantao/zxt_dockers:[镜像版本号]

请根据实际镜像信息替换示例中的[ImageId]和[镜像版本号]参数。


5.从Registry中拉取镜像
$ sudo docker pull registry.cn-hangzhou.aliyuncs.com/zhouxiantao/zxt_dockers:[镜像版本号]
6.运行获取下来的镜像
docker run -d --name testapi -p 8082:8082 -v /app/web testapi1(镜像的名称)

7.进入容器里面,启动项目才可以在外网通过telnet+ip+端口号访问到
命令:
docker exec -it 容器编号 /bin/bash
启动项目命令:
dotnet Asp.NetCoreWeb.Api.dll --urls="http://*:8082"
8082端口号就是容器内部的端口号

8.通过http://ip+端口号就可以访问项目了