docker-容器的基本操作(一)

docker-容器的基本操作(一)

Docker run 命令

docker run :创建一个新的容器并运行一个命令
语法
docker run [OPTIONS] IMAGE [COMMAND] [ARG…]

OPTIONS说明:
-a stdin: 指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项;
-d: 后台运行容器,并返回容器ID-i: 以交互模式运行容器,通常与 -t 同时使用;
-t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
--name="nginx-lb": 为容器指定一个名称;
--dns 8.8.8.8: 指定容器使用的DNS服务器,默认和宿主一致;
--dns-search example.com: 指定容器DNS搜索域名,默认和宿主一致;
-h "mars": 指定容器的hostname;
-e username="ritchie": 设置环境变量;
--env-file=[]: 从指定文件读入环境变量;
--cpuset="0-2" or --cpuset="0,1,2": 绑定容器到指定CPU运行;
-m :设置容器使用内存最大值;
--net="bridge": 指定容器的网络连接类型,支持 bridge/host/none/container: 四种类型;
--link=[]: 添加链接到另一个容器;
--expose=[]: 开放一个端口或一组端

启动容器:
docker run IMAGE[COMMAND][ARG…]

[root@izwz93cxtzylaaouqzjj4sz ~]# docker run ubuntu echo 'hello world'
Unable to find image 'ubuntu:latest' locally
Trying to pull repository docker.io/library/ubuntu ... 
latest: Pulling from docker.io/library/ubuntu
8f7c85c2269a: Pull complete 
9e72e494a6dd: Pull complete 
3009ec50c887: Pull complete 
9d5ffccbec91: Pull complete 
e872a2642ce1: Pull complete 
Digest: sha256:55c3bcbe279b387e344c3e8dddec74115dbb3b4f4c91f97f4d1827e2ab9aba17
hello world

启动交互式容器:
docker run -i -t IMAGE /bin/bash
-i –interactice=true | flase 默认是false
-t –tty=true|false 默认是false

[root@izwz93cxtzylaaouqzjj4sz ~]# docker run -i -t ubuntu  /bin/bash
root@accfa265b7c6:/# ps -ef 
UID        PID  PPID  C STIME TTY          TIME CMD
root         1     0  0 12:34 ?        00:00:00 /bin/bash
root         9     1  0 12:34 ?        00:00:00 ps -ef

使用docker镜像nginx:latest以后台模式启动一个容器,并将容器命名为mynginx。
docker run –name mynginx -d nginx:latest

使用镜像nginx:latest以后台模式启动一个容器,并将容器的80端口映射到主机随机端口。
docker run -P -d nginx:latest

使用镜像nginx:latest以后台模式启动一个容器,将容器的80端口映射到主机的80端口,主机的目录/data映射到容器的/data。
docker run -p 80:80 -v /data:/data -d nginx:latest

使用镜像nginx:latest以交互模式启动一个容器,在容器内执行/bin/bash命令。
runoob@runoob:~$ docker run -it nginx:latest /bin/bash root@b8573233d675:/#

Docker ps 命令

docker ps : 列出容器
语法
docker ps [OPTIONS]

OPTIONS说明:
-a :显示所有的容器,包括未运行的。
-f :根据条件过滤显示的内容。
--format :指定返回值的模板文件。
-l :显示最近创建的容器。
-n :列出最近创建的n个容器。
--no-trunc :不截断输出。
-q :静默模式,只显示容器编号。
-s :显示总的文件大小。

实例
列出所有在运行的容器信息。

runoob@runoob:~$ docker ps 
CONTAINER    ID I       MAGE    COMMAND ...     PORTS   NAMES 
09b93464c2f7 nginx:latest "nginx -g 'daemon off" ... 80/tcp, 443/tcp myrunoob 
96f7f14e99ab mysql:5.6 "docker-entrypoint.sh" ... 0.0.0.0:3306->3306/tcp mymysql
列出最近创建的5个容器信息。
runoob@runoob:~$ docker ps -n 5
CONTAINER   ID IMAGE     COMMAND             CREATED 
09b93464c2f7 nginx:latest "nginx -g 'daemon off" 2 days ago ...
b8573233d675 nginx:latest "/bin/bash" 2 days ago ... 
b1a0703e41e7 nginx:latest "nginx -g 'daemon off" 2 days ago ... 
f46fb1dec520 5c6e1090e771 "/bin/sh -c 'set -x \t" 2 days ago ...
a63b4a5597de 860c279d2fec "bash" 2 days ago ...

列出所有创建的容器ID。

runoob@runoob:~$ docker ps -a -q 
09b93464c2f7 
b8573233d675 
b1a0703e41e7 
f46fb1dec520 
a63b4a5597de 
6a4aa42e947b 
de7bb36e7968 
43a432b73776
664a8ab1a585 
ba52eb632bbd ...

查看正在运行的docker容器:

[root@izwz93cxtzylaaouqzjj4sz ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

查看所有容器:

[root@izwz93cxtzylaaouqzjj4sz ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                CREATED             STATUS                            PORTS               NAMES
accfa265b7c6        ubuntu              "/bin/bash"            10 minutes ago      Exited (127) About a minute ago                       mad_williams
6b3a924ae442        ubuntu              "echo 'hello world'"   14 minutes ago      Exited (0) 14 minutes ago                             focused_payne

查看单独docker详细信息:

[root@izwz93cxtzylaaouqzjj4sz ~]# docker inspect accfa265b7c6 

自定义容器名:

docker run --name=CONTAINER -i -t IMAGE /bin/bash
[root@izwz93cxtzylaaouqzjj4sz ~]# docker run --name=container01 -i -t ubuntu /bin/bash
[root@izwz93cxtzylaaouqzjj4sz ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                CREATED             STATUS                        PORTS               NAMES
50e2a58d8727        ubuntu              "/bin/bash"            19 seconds ago      Exited (0) 15 seconds ago                         container01
accfa265b7c6        ubuntu              "/bin/bash"            27 minutes ago      Exited (127) 18 minutes ago                       mad_williams
6b3a924ae442        ubuntu              "echo 'hello world'"   32 minutes ago      Exited (0) 32 minutes ago                         focused_payne


重启停止的容器:

docker start [-i] 容器名
[root@izwz93cxtzylaaouqzjj4sz ~]# docker start -i container01
root@50e2a58d8727:/# exit;

删除停止的容器:

docker rm 容器名
[root@izwz93cxtzylaaouqzjj4sz ~]# docker rm container01
container01

以守护形式运行容器:

docker run -i -t IMAGE /bin/bash
ctrl+P OR ctrl+Q to create backstage container

root@izwz93cxtzylaaouqzjj4sz ~]# docker start -i accfa265b7c6
root@accfa265b7c6:/# [root@izwz93cxtzylaaouqzjj4sz ~]# 
[root@izwz93cxtzylaaouqzjj4sz ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
accfa265b7c6        ubuntu              "/bin/bash"         37 minutes ago      Up 48 seconds                           mad_williams

附加到运行中的容器
docker attach 容器名字

[root@izwz93cxtzylaaouqzjj4sz ~]# docker attach accfa265b7c6
root@accfa265b7c6:/# 

启动守护式容器:
docker run -d 镜像名【ACOMMAND】【ARG..】

[root@izwz93cxtzylaaouqzjj4sz ~]# docker run --name dc1 -d ubuntu /bin/sh -c "while true; do echo hello wolrd; sleep 1; done"
8a1e189477b4520906dd9398112697544f07b472728d2d7648e44b6a8ab5402f

查看容器日志:
dcoker logs 【-f】【-t】【-tail】 容器名
-f –follws=ture
-t –timestams=true
–tail = “ail“

[root@izwz93cxtzylaaouqzjj4sz ~]# docker logs -tf --tail 10  dc1
2018-01-16T13:21:01.789167000Z hello wolrd
2018-01-16T13:21:02.790285000Z hello wolrd
2018-01-16T13:21:03.791285000Z hello wolrd
2018-01-16T13:21:04.792358000Z hello wolrd
2018-01-16T13:21:05.793429000Z hello wolrd
2018-01-16T13:21:06.794718000Z hello wolrd

查看容器内进程:
docker top 容器名

[root@izwz93cxtzylaaouqzjj4sz ~]# docker top dc1
UID                 PID                 PPID                C                   STIME               TTY                 TIME                CMD
root                19721               19697               0                   21:18               ?                   00:00:00            /bin/sh -c while true; do echo hello wolrd; sleep 1; done
root                20058               19721               0                   21:21               ?                   00:00:00            sleep 1

在运行中的容器内启动新进程:
docker exec [-d] [-i] [-t] 容器名 【command】【arg..】

[root@izwz93cxtzylaaouqzjj4sz ~]# docker top dc1
UID                 PID                 PPID                C                   STIME               TTY                 TIME                CMD
root                19721               19697               0                   21:18               ?                   00:00:00            /bin/sh -c while true; do echo hello wolrd; sleep 1; done
root                20058               19721               0                   21:21               ?                   00:00:00            sleep 1
[root@izwz93cxtzylaaouqzjj4sz ~]# docker exec -i -t dc1 /bin/bash
root@8a1e189477b4:/# [root@izwz93cxtzylaaouqzjj4sz ~]# 
[root@izwz93cxtzylaaouqzjj4sz ~]# docker top dc1
UID                 PID                 PPID                C                   STIME               TTY                 TIME                CMD
root                19721               19697               0                   21:18               ?                   00:00:00            /bin/sh -c while true; do echo hello wolrd; sleep 1; done
root                20726               20714               0                   21:31               pts/1               00:00:00            /bin/bash
root                20766               19721               0                   21:32               ?                   00:00:00            sleep 1

停止守护式容器:
docker stop 容器名
docker kill 容器名
区别:
stop是非强制关闭
kill是强制关闭

[root@izwz93cxtzylaaouqzjj4sz ~]# docker stop dc1
dc1
[root@izwz93cxtzylaaouqzjj4sz ~]# docker kill dc1
dc1
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值