Docker系列之二:Docker 入门

系列链接

Docker系列之一:Docker介绍及在Ubuntu上安装

Docker系列之二:Docker 入门

Docker系列之三:使用Docker镜像和仓库

Docker系列之四:Dockerfile的使用

Docker系列之五:Volume 卷的使用——以Redis为例

Docker系列之六:Volume 卷的使用——在Dockerfile中的用法

Docker系列之七:Docker 网络(内部网络、容器之间的连接)

Docker系列之八:在Dockerfile中使用多段构建Muti-stage build

Docker系列之九:Docker用于持续集成,构建Jenkins和Docker服务器

Docker系列之十:Docker Compose的使用

简介

这里只会讲一些日常我们可能会用的比较多的一些命令。  

启动和停止Docker 服务

sudo service docker stop
systemctl stop docker.service

sudo service docker start
systemctl start docker.service

查看docker 的基本信息

docker info

运行容器,-i表示容器中STDIN是开启的,-t表示为容器分配一个伪终端,使用 -i -t来申请一个控制台同容器进行数据交互,-d表示Detached,容器将会运行在后台模式(Detached mode),--name表示容器的名称。

root@iZbp13z6cxj72rb7bxf0smZ:~# docker run -i -t -d -p 5001:80 --name mytest nginx
b652f143b1000414507d67e5ca61ef87ec7cdc2497e289be52b40f48396dc5b3

root@iZbp13z6cxj72rb7bxf0smZ:~# curl localhost:5001
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
    body {
        width: 35em;
        margin: 0 auto;
        font-family: Tahoma, Verdana, Arial, sans-serif;
    }
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>

<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>

<p><em>Thank you for using nginx.</em></p>
</body>
</html>

查看当前运行的的容器,使用docker ps -a 查看所有的容器,包括停止运行的容器

root@iZbp13z6cxj72rb7bxf0smZ:~# docker ps
CONTAINER ID        IMAGE                   COMMAND                  CREATED             STATUS              PORTS                    NAMES
b652f143b100        nginx                   "nginx -g 'daemon of…"   23 seconds ago      Up 22 seconds       0.0.0.0:5001->80/tcp     mytest


停止正在运行的容器

root@iZbp13z6cxj72rb7bxf0smZ:~# docker stop mytest
mytest

启用已经停止的容器

root@iZbp13z6cxj72rb7bxf0smZ:~# docker start mytest
mytest

 重新附着到容器的会话上,打开另一个命令行访问curl localhost:5001,会看到下面多出一条记录。

root@iZbp13z6cxj72rb7bxf0smZ:~# docker attach mytest

172.17.0.1 - - [26/Oct/2018:03:44:05 +0000] "GET / HTTP/1.1" 200 612 "-" "curl/7.47.0" "-"

获取守护式容器的日志, 使用-f 参数来监控Docker的日志,这与tail -f命令很相似。-t为每条日志加上时间戳。

root@iZbp13z6cxj72rb7bxf0smZ:~# docker logs -f mytest

172.17.0.1 - - [26/Oct/2018:03:44:05 +0000] "GET / HTTP/1.1" 200 612 "-" "curl/7.47.0" "-"

root@iZbp13z6cxj72rb7bxf0smZ:~# docker logs -ft mytest
2018-10-26T03:43:07.344823460Z
2018-10-26T03:44:05.704135551Z 172.17.0.1 - - [26/Oct/2018:03:44:05 +0000] "GET / HTTP/1.1" 200 612 "-" "curl/7.47.0" "-"

 查看容器内的所有进程

root@iZbp13z6cxj72rb7bxf0smZ:~# docker top mytest
UID                 PID                 PPID                C                   STIME               TTY                 TIME                CMD
root                18313               18295               0                   11:52               pts/0               00:00:00            nginx: master process nginx -g daemon off;
systemd+            18353               18313               0                   11:52               pts/0               00:00:00            nginx: worker process

在容器内运行交互命令

root@iZbp13z6cxj72rb7bxf0smZ:~# docker exec -it mytest /bin/bash
root@b652f143b100:/# ls
bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
root@b652f143b100:/# hostname
b652f143b100
root@b652f143b100:/# cat /etc/hosts
127.0.0.1       localhost
::1     localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
172.17.0.2      b652f143b100
root@b652f143b100:/#

 从容器中退出,直接输入exit

自动重启容器,如果容器因某种错误导致容器停止,它会自动重启该容器。 --restart=on-failure:5 表示尝试自动重启该容器,最多重启5次。

root@iZbp13z6cxj72rb7bxf0smZ:~# docker run --restart=always --name daemon_dave -d ubuntu /bin/sh -c "while true;do echo hello world; sleep 1; done"
05d4714e972dc927d2df3b38518122fe4d21256f36c795ffcc5baa893b960d1c

 查看容器详细信息

root@iZbp13z6cxj72rb7bxf0smZ:~# docker inspect daemon_dave
[
    {
        "Id": "05d4714e972dc927d2df3b38518122fe4d21256f36c795ffcc5baa893b960d1c",
        "Created": "2018-10-26T04:00:58.713053368Z",
        "Path": "/bin/sh",
        "Args": [
            "-c",
            "while true;do echo hello world; sleep 1; done"
        ],
        "State": {
            "Status": "running",
            "Running": true,
            "Paused": false,
            "Restarting": false,
            "OOMKilled": false,
            "Dead": false,
            "Pid": 18546,
            "ExitCode": 0,
            "Error": "",
            "StartedAt": "2018-10-26T04:00:59.092799529Z",
            "FinishedAt": "0001-01-01T00:00:00Z"
        },
        "Image": "sha256:452a96d81c30a1e426bc250428263ac9ca3f47c9bf086f876d11cb39cf57aeec",
.......................

删除容器,后面加 -f 强制删除正在运行的容器。 

root@iZbp13z6cxj72rb7bxf0smZ:~# docker rm mytest
mytest

删除所有容器, -a 表示所有容器,-q表示只返回容器的ID, -f表示强制删除。

root@iZbp13z6cxj72rb7bxf0smZ:~# docker rm $(docker ps -aq) -f
05d4714e972d
357ed7363dcf
5a1058f58d59

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值