docker容器使用

石羊 2018-11-14

docker的指令比较多。可以通过:docker --help来查看所有的命令。

这里拿一些比较常用的指令做一些操作和说明:

如果不输出个hello,world。总会感觉少了点什么。。。。。。

root@lchHostName:~# docker run ubuntu:latest /bin/echo "Hello world"
Hello world
root@lchHostName:~#

参数说明:

/bin/echo "Hello world":在启动的容器里执行的命令

查看所有容器:

docker ps -a

结果显示如下:

root@lchHostName:~# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9882e34a37e5 redis "docker-entrypoint..." 4 minutes ago Up 4 minutes 6379/tcp priceless_wilson
2fd577d50b86 ubuntu:latest "/bin/echo 'Hello ..." 13 minutes ago Exited (0) 13 minutes ago modest_colden
b7daa3f081f6 nginx "nginx -g 'daemon ..." 24 minutes ago Exited (0) 14 minutes ago infallible_brattain
root@lchHostName:~#

run

创建一个新的容器并运行一个命令。

语法:

docker run [OPTIONS] image [command] [ARG......]

OPTIONS说明:

-a stdin 指定标准输入输出类型,可选STDIN或STDOUT或STDERR

-d 后台运行

logs查看容器的 标准输出:

docker logs 容器ID

我们就拿上面拿到的一大把docker里挑一个容器ID为2fd577d50b86 的容器,看看它的标准输出内容都是什么:

root@lchHostName:~# docker logs 2fd577d50b86
Hello world
root@lchHostName:~#

可以看到内容Hello world就是我们在文章开始时输出的内容。

进入容器:

docker exec -i -t 容器ID或名字 /bin/bash

那如何退出容器?

在容器里执行exit指令即可。

stop 停止容器

docker stop 容器名或容器ID

接下来我们试着运行一个web应用程序:

root@lchHostName:~# docker pull training/webapp
Using default tag: latest
latest: Pulling from training/webapp
e190868d63f8: Pull complete 
909cd34c6fd7: Pull complete 
0b9bfabab7c1: Pull complete 
a3ed95caeb02: Pull complete 
10bbbc0fc0ff: Pull complete 
fca59b508e9f: Pull complete 
e7ae2541b15b: Pull complete 
9dd97ef58ce9: Pull complete 
a4c1b0cb7af7: Pull complete 
Digest: sha256:06e9c1983bd6d5db5fba376ccd63bfa529e8d02f23d5079b8f74a616308fb11d
Status: Downloaded newer image for training/webapp:latest
root@lchHostName:~#

-d 让容器在后台运行

-P 让容器IP映射到我们的主机上。

此时再次用docker ps -a查看我们所有的容器。可以看到刚才起的那个WEB容器的PORT项多了端口信息:

docker容器使用

0.0.0.0:32768->/tcp意思是我们主机上的32768端口映射到了容器的5000端口上。

此时我们就访问一下32768端口的接口信息:

root@lchHostName:~# curl "https://172.18.165.68:32768"
Hello world!root@lchHostName:~# 
root@lchHostName:~#

打印了Hello world!

我们也可以通过-p另起一个不同的端口:

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

docker容器使用

如果想查看某个容器的具体端口映射情况,也可以使用:

docker prot 容器ID

root@lchHostName:~# docker port 60982a2c3665
5000/tcp -> 0.0.0.0:32768
root@lchHostName:~#

查看WEB应用程序的日志:

root@lchHostName:~# docker logs -f 60982a2c3665
 * Running on https://0.0.0.0:5000/ (Press CTRL+C to quit)
172.18.165.68 - - [29/Oct/2018 16:23:54] "GET / HTTP/1.1" 200 -

-f 让日志文件像tail -f一样输出。

检查web应用程序

docker inspect 容器ID

可以查看docker的底层信息。

停止web容器、重启web容器和普通容器一样,也是stop 、start

查询最后一次创建的是哪个容器:

docker ps -l

docker容器使用

移除容器:

docker rm 容器名或容器ID

注意:被移除的容器必须是停止状态,否则会删除失败。

相关推荐