docker容器使用
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项多了端口信息:
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 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 rm 容器名或容器ID
注意:被移除的容器必须是停止状态,否则会删除失败。