1、安装
2、管理命令
2.1、容器信息查看
docker ps -a: 查看所有的容器
docker top 容器ID: 查看容器内的进程信息
docker inspect 容器ID:查看容器的详细信息
docker stats: 查看所有容器的状态,cpu,mem,net,io,pid等
docker stats 容器ID
2.2、容器创建
创建并运行容器:docker run [OPTIONS] 镜像名字 [COMMAND] [ARG…]
创建但不运行容器:docker run [OPTIONS] 镜像名字 [COMMAND] [ARG…]
- OPTIONS
-a
stdin/stderr/stdout : 指定标准输入输出的内容-d
后台运行容器,并返回容器ID-p
端口映射,格式为:主机(宿主)端口:容器端口
-P
端口映射,将容器的80
端口映射到主机的随机端口-i
以交互模式运行容器,通常与 -t 同时使用-t
为容器重新分配一个伪输入终端,通常与-i
同时使用--name="容器名字"
为容器指定一个名称-v 主机目录:容器目录
目录映射--dns 8.8.8.8
指定容器使用的DNS服务器,默认和宿主一致--dns-search example.com
: 指定容器DNS搜索域名,默认和宿主一致-h "hostname"
指定容器的hostname--cpuset="0-2"
或--cpuset="0,1,2"
绑定容器到指定CPU运行-m
设置容器使用内存最大值--net="bridge"
指定容器的网络连接类型,支持 bridge / host / none / container : 四种类型--link=[]
添加链接到另一个容器,这样两个容器就网络互通--expose=[]
开放一个端口或一组端口--env-file=[]
从指定文件读入环境变-e username="ritchie"
设置环境变量
2.3、运行容器
- docker stop 容器id: 停止容器
- docker start 容器id:启动容器
- docker restart 容器id: 容器容器
- docker attach 容器id: 进入一个已运行的容器
- docker kill 容器id:强制停止容器
- docker rm 容器id:删除没有运行的容器
- docker rm -f 容器id:强制删除运行中容器
2.4、导入导出容器
通过导出功能可以将容器导入到其它容器服务运行
- 导出:
docker export -o 要写入的文件.tar 容器id
# 查看容器
$ docker ps -a
CONTAINER ID IMAGE
8fdd2103e0d0 myubuntu/mu:v1
# 导入容器到ubuntu-image.tar
$ docker export -o ubuntu-image.tar 8fdd2103e0d0
$ ls -l ubuntu-image.tar
-rw------- 1 dkos staff 72257024 7 24 15:36 ubuntu-image.tar
- 导入:
docker import 导出的文件 [仓库名/[:TAG]]
# 将tar包导入到容器服务
$ docker import ubuntu-image.tar myrepository/dkos:v1
sha256:a8bbacf982e53a8de6855c5546f6a3df9c03fe4f14356f06a6944bfe221b254f
# 利用导入的tar包尽力容器
$ docker run -it -h dk myrepository/dkos:v1 /bin/bash
3、登录容器
docker exec [选项] 容器id 命令
登录容器安装curl,ifconfig命令
# 查看容器
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
b428fcfd7ef7 routerdocker_server_one "python app.py serve…" 2 hours ago Up 2 hours 0.0.0.0:32776->8080/tcp routerdocker_server_one_1
# 登录容器 b428fcfd7ef7
$ docker exec -it b428fcfd7ef7 bash
# 容器中先更行源,再安装curl,net-tools,ifconfig
root@b428fcfd7ef7:/server_one# apt-get update
root@b428fcfd7ef7:/server_one# apt-get install curl
root@b428fcfd7ef7:/server_one# apt-get install net-tools
root@b428fcfd7ef7:/server_one# ifconfig