start docker daemon linux

  • Post author:
  • Post category:linux


ubuntu docker环境配置

https://blog.csdn.net/fareast_mzh/article/details/88820445

代码以及命令行下载

git clone git://github.com/luksa/kubernetes-in-action

Start the Docker daemon

Start manually

Once Docker is installed, you need to start the Docker daemon. Most Linux distributions use

systemctl

to start services. If you do not have

systemctl

, use the

service

command.



  • systemctl


    :

    $ sudo systemctl start docker
    


  • service


    :

    $ sudo service docker start

docker run busybox echo “Hello world”

* kubernetes代码下载

git clone

https://github.com/kubernetes/kubernetes

* 创建一个简单的node.js docker应用

app.js

const http = require('http');
const os = require('os');

console.log("Kubia server starting...");

var handler = function(request, response) {
    console.log("Received require from " + request.connection.remoteAddress);
    response.writeHead(200);
    response.end("You'v hit " + os.hostname() + "\n");
}

var www = http.createServer(handler);
www.listen(8080);

* 直接在主机上运行

node app.js > ./local.log 2>&1 &

curl http://localhost:8080/

You’v hit

chenhuimingdeMacBook-Pro.local

fg %1

Ctrl + C kill process

* Dockerfile

FROM node:7
ADD app.js /app.js
ENTRYPOINT ["node", "app.js"]

L1 使用的是node镜像的tag 7版本

L2 把app.js文件从本地文件夹添加到镜像的根目录, 保持app.js这个文件名

L3 定义了当镜像被运行时需要被执行的命令  node app.js

* 构建容器镜像

$ tree kubia/

kubia/

|– Dockerfile

|– Dockerfile~

|– app.js

`– local.log

0 directories, 4 files

cd kubia
docker build -t kubia .

Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

启动docker服务,  再次执行  docker build -t kubia .

# 以下展示镜像构建的过程。

# 用户告诉Docker需要机遇当前目录 . 构建一个叫kubia的镜像, Docker会在目录中寻找Dockerfile,

# 然后基于其中的指令构建镜像

ending build context to Docker daemon   5.12kB

Step 1/3 : FROM node:7

Get https://registry-1.docker.io/v2/: net/http: TLS handshake timeout

需要Shadowsocks,开启global mode.

* 列出本地存储的镜像

docker images

* 运行容器镜像

docker run –name kubia-container -p 8080:8080 -d kubia

# 基于kubia镜像创建新容器named  kubia-container

# -d –deamon

# 本机上的8080端口会映射到容器内的8080端口(-p 8080:8080)

# 所以可以通过http://localhost:8080访问这个应用

095e11426a7d2b3fe108e3e218a40313318ca0a102963ac6715fafeb733f3bb0

$ curl http://localhost:8080

You’v hit

095e11426a7d

# 主机名现在不是宿主的主机名, 而是container ID

$ hostname

chenhuimingdeMacBook-Pro.local

$ docker ps

CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                    NAMES

095e11426a7d        kubia               “node app.js”       2 minutes ago       Up 2 minutes        0.0.0.0:8080->8080/tcp   kubia-container

$ docker inspect kubia-container

# 查看container底层信息的长json

* 在已有容器内部运行shell

$ docker exec -it kubia-container bash

root@095e11426a7d:/# cat app.js 
const http = require('http');
const os = require('os');

console.log("Kubia server starting...");

var handler = function(request, response) {
    console.log("Received require from " + request.connection.remoteAddress);
    response.writeHead(200);
    response.end("You'v hhit " + os.hostname() + "\n");
}

var www = http.createServer(handler);
www.listen(8080);
root@095e11426a7d:/# ps aux
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.2  1.2 614432 26340 ?        Ssl  06:35   0:00 node app.js
root        28  0.4  0.1  20244  3232 pts/0    Ss   06:42   0:00 bash
root        34  0.0  0.1  17500  2064 pts/0    R+   06:42   0:00 ps aux

容器内的进程仍然运行在主机操作系统上 (Linux上可以查看,Mac/Windows需要登录到Docker守护进程的vm中查看)

sudo ps aux | grep app.js

Password:

Mch              14789   0.0  0.0  4277236    796 s002  S+    2:46PM   0:00.00 grep

app.js


* 停止和删除容器

$ docker stop kubia-container

$ docker rm kubia-container



版权声明:本文为fareast_mzh原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。