您的位置:首页 > 运维架构 > Docker

Docker学习笔记三:运行容器

2016-11-24 22:37 721 查看

运行image

以交互模式运行镜像

$ docker run -t -i ubuntu /bin/bash


-t 指定伪终端

-i 保持标准输入打开

ubuntu 镜像名

/bin/bash 在容器内运行
/bin/bash


启动守护进程模式的Hello world

docker run -d ubuntu /bin/sh -c "while true; do echo hello world"; sleep 1; done
5c005c85856a717e83bded1d81bc7b38d4d36543c386256783cefaa84379b072


-d 以守护进程模式运行容器

/bin/sh -c "while true; do echo hello world"; sleep 1; done
为在容器中运行的命令

5c005c85856a717e83bded1d81bc7b38d4d36543c386256783cefaa84379b072
字符串为容器 ID

启动容器时将容器内端口映射到主机:

docker run -d -P training/webapp python app.py


-P 将容器内应用服务端口映射到主机随机端口

docker run -d -p 80:5000 training/webapp python app.py


-p 将容器内应用的5000端口映射到主机的80端口

查看容器端口映射到主机的端口的快捷方式(nostalgic_morse为容器名)

$ docker port nostalgic_morse 5000
0.0.0.0:49155


启动容器时给容器命名

$ docker run -d -P --name web training/webapp python app.py


–name 指定容器名

执行
docker ps
可查看当前运行的容器:

$ docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
5c005c85856a        ubuntu              "/bin/sh -c 'while tr"   8 minutes ago       Up 8 minutes                            cranky_mirzakhani


5c005c85856a
是容器ID 较短的变体,
cranky_mirzakhani
是分配的容器的名字

$ docker ps -l


-l 查看最后启动的容器的详细信息

$ docker ps -a


-a 查看所有的容器,包括运行中的与停止的容器

查看容器的输出

$ docker logs cranky_mirzakhani
hello world
...
hello world
$


$ docker logs -f cranky_mirzakhani


-f 与tail的-f参数功能相同

查看容器内运行的程序

$ docker top cranky_mirzakhani


停止容器

$ docker stop cranky_mirzakhani


删除容器

$ docker rm cranky_mirzakhani


网络容器

Docker 默认提供两个网络驱动,
bridge
overlay
:

$ docker network ls
NETWORK ID          NAME                DRIVER
18a2866682b8        none                null
c288470c46f6        host                host
7b369448dccb        bridge              bridge


容器默认在
bridge
网络启动。

可以使用网络名称,容器名称(或容器ID)将容器从一个网络断开连接:

$ docker network disconnect bridge testcontainer


创建新的桥接网络

$ docker network create -d bridge my-bridge-network
$ docker network ls
NETWORK ID          NAME                DRIVER
7b369448dccb        bridge              bridge
615d565d498c        my-bridge-network   bridge
18a2866682b8        none                null
c288470c46f6        host                host


-d 指定
bridge
为新网络的驱动

将容器添加到网络

$ docker run -d --network=my-bridge-network --name db training/postgres
或
docker network connect my-bridge-network web
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: