前言
Docker是目前比较火的一个概念,同时也是微服务中比较关键的一个容器化技术。但是,单从理论上好难看出Docker的优势,因此,我希望在这篇文章中提供一些Docker的使用示例,希望从实际应用上帮助大家理解Docker的优势,同时也对自己的Docker使用进行简单的记录。
目录
准备事项
一、启动.Net Core
二、启动静态Html
三、启动Mysql
四、启动MongoDB
五、启动Redis
六、启动RabbitMQ
七、启动Nginx
八、启动Eureka
九、启动Config Server
准备事项
1. 安装Docker
我使用的操作系统是CentOS 7/7.1,如何安装Docker,可以参考园子里的这篇文章:《Centos安装Docker》。
2. Docker加速
Docker的标准镜像库Docker Hub在国外,不进行Docker加速的话拉取镜像会比较慢,这里我使用道客(DaoCloud)来进行Dokcer加速。在“配置Docker加速器”里有配置加速的指令:

在Linux中进行配置
执行sudo su -,获取root权限,如果本身是root帐号,可跳过:

执行道客的配置指令:

执行systemctl restart docker,重启Docker:

一、启动.Net Core
1. 拉取dotnet标准镜像,镜像地址:https://hub.docker.com/r/micro...
2. 拉取镜像:docker pull microsoft/dotnet

3. 执行docker images查看已下好的镜像

4. 新建一个.Net Core HelloWorld程序并发布

5. 准备Dockerfile,并把Dockerfile拷贝到HelloWorld程序同级目录。注:.Net Core运行的默认端口是5000,这里通过环境变量的方式把端口修改为8080
1 2 3 4 5 6 7 8 | FROM microsoft/dotnet:latestCOPY . /appWORKDIR /appEXPOSE 8080/tcpENV ASPNETCORE_URLS http://*:8080ENTRYPOINT ["dotnet", "HelloWorld.dll"] |
6. 定位到程序目录,执行指令把HelloWorld程序打包成Docker镜像
docker build -t hello-world:1.0 .


7. 运行Docker容器
docker run --name hello-world -p 8080:8080 -d hello-world:1.0

8. 检查结果

二、启动静态Html
1. 拉取Nginx官方镜像,镜像地址:https://hub.docker.com/_/nginx...
2. 拉取镜像:docker pull nginx
3. 准备html程序,可以使用我之前的一个Durandal的示例:https://github.com/ErikXu/Dura...

4. 准备Dockerfile,并把Dockerfile拷贝到Html程序同级目录。注:程序中需要有一个入口页面,如index.html
1 2 | FROM nginx:latestCOPY . /usr/share/nginx/html |
5. 定位到程序目录,执行指令把Html程序打包成Docker镜像
docker build -t html:1.0 .

6. 运行Docker容器,注:这里把容器中的80端口映射到虚拟机的81端口
docker run --name html -p 81:80 -d html:1.0

7. 检查结果

三、启动Mysql
1. 拉取官方镜像,镜像地址:https://hub.docker.com/_/mysql...
2. 拉取镜像:docker pull mysql
3. 准备Mysql数据存放目录,我这里是:/home/erikxu/mysql
4. 执行指令启动Mysql
docker run --name mysql -v /home/erikxu/mysql:/var/lib/mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:latest

5. 检查结果


四、启动MongoDB
1. 拉取官方镜像,镜像地址:https://hub.docker.com/_/mongo...
2. 拉取镜像:docker pull mongo
3. 准备MongoDB数据存放目录,我这里是:/home/erikxu/mongo
4. 执行指令启动MongoDB
docker run --name mongo -v /home/erikxu/mongo:/data/db -p 27017:27017 -d mongo:latest

5. 检查结果


风险提示:本文所述仅代表作者个人观点,不代表 Followme 的官方立场。Followme 不对内容的准确性、完整性或可靠性作出任何保证,对于基于该内容所采取的任何行为,不承担任何责任,除非另有书面明确说明。


加载失败()