docker入门之用ubuntu16.04下载gcc编译helloworld

docker入门之用ubuntu16.04下载gcc编译helloworld

docker简介

Docker 使用客户端-服务器 (C/S) 架构模式,使用远程API来管理和创建Docker容器,通过 Docker 镜像来创建,是一种轻量化的方式,与虚拟机相比,它没有硬件虚拟化层,其在内存访问,文件系统,网络速度上明显快的多

性能测试工具 主机 Docker
CPU sysbench 1
写内存 sysbench 1
读内存 sysbench 1
磁盘I/O sysbench 1
网络 sysbench 1

docker安装

ubuntu16.04

$ sudo apt-get update
$ sudo apt-get install docker
$ sudo apt-get install docker.io

CentOS 7

$sudo yum install docker

docker基本命令

使用search命令搜索镜像

$ sudo docker search [镜像]

使用pull命令下载镜像

$ sudo docker pull [镜像:版本]

使用images命令列出镜像目录

$ sudo docker images

使用run命令创建容器

$ sudo docker run -dit [镜像:版本] [命令]

!-d: 表示后台运行

-i:允许你对容器内的标准输入 (STDIN) 进行交互。

-t:在新容器内指定一个伪终端或终端。

使用ps命令查看容器列表

$ sudo docker ps -a

使用stop命令终止容器

$ sudo docker stop [容器名称]

Docker 编译c++文件

编译环境:ubuntu:16.04

$ sudo docker pull ubuntu:16.04

由于笔者已经pull了ubuntu:16.04了,所以就不再展示pull的过程。

$ sudo docker images

这里写图片描述

文件目录

.
├── Dockerfile
└── helloworld.cpp

撰写Dockerfile文件

由于笔者也是初次接触Dockerfile文件,只会一些基础的Dockerfile语法。

FROM ubuntu:16.04               #基于哪个镜像进行
COPY . .                        #复制文件 [复制文件在本地的路径] [文件在容器的路径]
WORKDIR .                       #用于设置RUN、CMD、ENTRYPOINT命令的目录
RUN apt-get update              #执行命令
RUN apt-get install g++ -y
expose 5000                     #用于设置与主机相连的端口号
创建镜像

$ sudo docker image build -t mohk/helloworld . #.表示当前目录

$ sudo docker images

这里写图片描述

运行容器

$ sudo docker run -it mohk/helloworld

$ g++ helloworld.cpp -o helloworld -w -g

$ ./helloworld

这里写图片描述

到此,我们的hellworld基于ubuntu:16.04环境下已经执行完成。

其实,我们还可以将自己要执行的命令写进Dockerfile里面,这样可以省去自己很多时间,有点类似makefile,有兴趣的话可以自己去尝试一下。

还可以自己去docker官网注册一个账号,把自己的容器上传上去到自己的主页(类似github的仓库)。

这里写图片描述

猜你喜欢

转载自blog.csdn.net/mohuak/article/details/80238792