1.准备实验机

阿里云上申请一台免费试用的Esc服务器,系统Linux CentOS 64bit。

 

2.安装Docker

①安装所需的包

sudo yum install -y yum-utils \device-mapper-persistent-data \lvm2

 

②设置稳定的存储库

sudo yum-config-manager \--add-repo \https://download.docker.com/linux/centos/docker-ce.repo

 

③安装

sudo yum install docker-ce

 

④启动

sudo systemctl start docker

 

sudo docker run hello-world 或者 sudo docker version,如下图示就代表安装成功了。

linux上默认安装路径:/var/lib/docker

linux docker influxDB创建数据库 linux docker iis_docker

3.NetCore程序发布,部署

①发布

程序发布,按正常操作就可以,平时IIS怎么发布这里也怎么发布。

发布后,在发布的的文件夹中添加Dockerfile。Dockerfile内容如下图示。

linux docker influxDB创建数据库 linux docker iis_docker_02

 

②部署

把程序发布的文件和Dockerfile上传到linux服务器上。

这里推荐一个好用的工具MobaXterm,直接拖拉拽就可以把文件上传了。

linux docker influxDB创建数据库 linux docker iis_自动启动_03

构建镜像:docker build -t webtest:v1 . 

查看镜像:docker images

linux docker influxDB创建数据库 linux docker iis_重启_04

创建容器:docker run --name webtest2  -p 8001:6222 -d webtest:v2                   

                  docker run --name webtest2  -p 127.0.0.1:8001:6222   -d webtest:v2   增加127.0.0.1指定只能本机访问。

                  docker run -it --name webtest2 -p 127.0.0.1:8001:6222 -v /home/user/deploy/web/logs:/app/logs -d webtest:v1 挂载了日志目录,这样就方便查看应用的日志。

到这里就部署完了。现在来验证下有没有成功。

 

③验证是否成功

查看容器IP:docker inspect -f '{{.Name}} - {{.NetworkSettings.IPAddress }}' $(docker ps -aq)

查看dockers 内部容器分配的IP。例如容器webtest2,分配了172.17.0.4.

linux docker influxDB创建数据库 linux docker iis_docker_05

用curl http://172.17.0.4可以访问,就代表一切OK啦。

linux docker influxDB创建数据库 linux docker iis_docker_06

 

4.遇到的小细节

①坑1: docker端口映射到宿主机后外网无法访问的问题

解决方法:增加配置net.ipv4.ip_forward=1

# vi /etc/sysctl.conf

或者

# vi /usr/lib/sysctl.d/00-system.conf

添加如下代码:

net.ipv4.ip_forward=1

重启network服务

# systemctl restart network

查看是否修改成功

# sysctl net.ipv4.ip_forward

如果返回为“net.ipv4.ip_forward = 1”则表示成功了

 

②坑2:重启linux后dockers没有自动启动,重启docker后容器没有启动

重启[reboot]操作系统后,发现docker 服务未启动,容器也未启动:

1.docker自动启动设置:

systemctl enable docker.service

2、docker容器自动启动设置

在运行docker容器时可以加如下参数来保证每次docker服务重启后容器也自动重启:

docker run --restart=always

如果已经启动了则可以使用如下命令:

docker update --restart=always CONTAINER_ID

 

5.初学者常用命令

docker停止:service docker stop

docker开启:service docker start

删除镜像:docker rmi webtest:v2

停止容器:docker stop webtest2

开启容器:docker start webtest2

删除容器:docker rm webtest2

查看容器日志:docker logs webtest2

进入容器内部:docker exec -it webtest2 /bin/bash

退出容器内部:exit

进入容器内部后 无法 ping等命令:

先更新包管理:apt-get update

安装ping: apt-get install iputils-ping

安装vim:apt-get install vim

linux docker influxDB创建数据库 linux docker iis_重启_07