前言
本章不包含.netCore接口发布内容,将在第3篇文章中介绍
获取镜像
获取命令:docker pull dockerjsak/bale:1.0.0
1.0.0: Pulling from dockerjsak/bale
8d691f585fa8: Pull complete
a9e6ceefc5a0: Pull complete
……
公以镜像不需要密码,私有镜像 先挖个坑… 等我会了回来补
运行镜像
方式一:docker run --name=xxxtest -p 80:80 -d dockerjsak/bale:1.0.0
方式二:docker run --name=xxxtest --net=host -d dockerjsak/bale:1.0.0
方式三:docker run --name=xxxtest --link=redis-docker:redis-docker -p 5001:80 -d dockerjsak/bale:1.0.0
--link=xxx:bbb:意为连接别的容器,xxx为别的容器名字,bbb为别名
--net=host:意为同容器于本机同网络
--name:指定容器名称为testbale
-p:指定容器端口,左边80代表宿主机端口,右边80代表容器端口,即将容器的80端口映射到宿主机80端口
-d:指定容器后台运行,如果不指定此命令,当前终端关闭或者被占用程序,则会退出
.net Core 项目中的Dockerfile文件中的EXPOSE必须是80(目的是与上面运行命令中的端口一致)
成果检验:xxx.xxx.xx.xx/api/Values/… 输出 ["value1","value2"]
成果检验:xxx.xxx.xx.xx:80 输出 hello world
常见问题
1.使用“方式3”运行,会出现容器无法访问网络问题
解决办法: vim /usr/lib/sysctl.d/00-system.conf,增加net.ipv4.ip_forward=1 然后保存,重启systemctl restart network
常用命令附录
| 命令说明 | 命令语句 | 备注 |
|---|---|---|
| 列出本机的所有 image 文件 | docker image ls | |
| 删除 image 文件 | docker image rm [imageName] | |
| 从仓库拉取镜像 | docker image pull library/hello-world | |
| 删除一个imageid的镜像 | docker rmi [image_id] | |
| 强制删除一个imageid的镜像 | docker rmi -f [image_id] | |
| 删除所有镜像 | docker rmi $(docker images -q) | |
| 查看所有容器运行状态 | docker ps -a | |
| 删除一个containerid的容器(实例) | docker rm [container_id] | |
| 删除所有容器 | docker rm $(docker ps -a -q) | |
| 列出本机正在运行的容器 | docker container ls | |
| 列出本机所有容器,包括终止运行的容器 | docker container ls --all | |
| 启动已经生成、已经停止运行的容器文件 | docker container start [containerID] | |
| 停止运行的容器文件 | docker container stop [containerID] | |
| 用来查看 docker 容器的输出 | docker container logs [containerID] | |
| 修改容器自启动状态 | docker update --restart=always [containerID] | no不重启,on-failure 非0状态重启, always 自动重启 |