Docker 语法快速预览

安装

基本概念

  • 镜像: 一个操作系统
  • 容器: 一个操作系统的实例
  • 仓库: 存储镜像的地方

镜像使用

查找镜像
docker search
获取镜像
docker pull ubuntu:18.04
列出本地镜像
docker image ls
本地占用空间
docker system df
删除镜像
docker image rm [镜像名|镜像Id]
docker image rm ubuntu

操作容器

启动

  • 运行之后终止docker run ubuntu:18.04 /bin/echo 'Hello world'
  • 进入终端docker run -t -i ubuntu:18.04 /bin/bash
  • 后台运行
    docker run -d ubuntu:18.04 /bin/sh -c "while true; do echo hello world; sleep 1; done"
    docker run -dit ubuntu
    • 后台运行的容器 docker container ls
    • 重新进入 docker exec -it [container id] bash
    • 终止后的容器 docker container ls -a
    • 启动终止后的容器docker container start [container id]
    • 终止容器docker container stop [container id]

退出
在容器终端 exit

导出
docker container ls -a
docker export [container id] > ubuntu.tar

导入

$ cat ubuntu.tar | docker import - test/ubuntu:1.0
$ docker image ls

删除

  • docker container prune 删除全部终止的容器
  • docker container rm [container id] 删除终止后的容器
  • docker container rm -f [contaienr id] 删除正在运行的容器

构建镜像

  1. 编写Dockerfile 2. 运行命令
$ mkdir docker;cd docer; touch t/1.txt;vi Dockerfile

// Dockerfile
#以本地 ubuntu 为基础
FROM ubuntu
#定义变量
ENV VERSION 7.2

#复制本地文件到镜像里
COPY t/* /root/
#在镜像里运行shell命令
RUN mkdir /root/test \
 && mkdir /root/test2
 && touch "$VERSION"
$ docker build -t test:1.0 .
$ docker image ls

访问容器服务

将本机5000端口映射到容器5000
$ docker run -d -p 5000:5000 training/webapp python app.py

案例

构建node服务器

// 开发环境 ubuntu
// ubuntu:18.04 不存在会自动下载
$ docker run -it ubuntu:18.04 /bin/bash
// 进入了ubuntu:18.04 终端
$ apt-get update
$ apt-get install curl; apt-get install vim
// node 安装 https://github.com/nodejs/help/wiki/Installation#how-to-install-nodejs-via-binary-archive-on-linux
$ cd /root; mkdir server; cd server;  npm init -y; npm i koa; vi sever.js;

// server.js---------
const Koa = require('koa')
const app = new Koa()
app.use(async (ctx, next) => {
    ctx.set('Access-Control-Allow-Origin','*')
    await next();
}); 
app.use(async (ctx)=>{
    ctx.response.body = "<h1>hello</h1>"
})
app.listen(3000);
console.log('app started at port 3000...');
// ----

$ exit
$ docker run -d -p 3000:3000 ubuntu:18.04 /bin/sh -c ". ~/.profile; node /root/server/server.js"
$ docker container logs [container id]
// 返回<h1>hello</h1> 成功了
$ curl 127.0.0.1:3000
$ docker export [container id] > node.tar
// 迁移到其他服务器时直接导入
$ cat node.tar | docker import - node:1.0
$ docker image ls
// 启动
$ docker run -d -p 3000:3000 node:1.0 /bin/sh -c ". ~/.profile; node /root/server/server.js"

Docker 入门

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值