创建容器常用命令
常用指令
指令 |
描述 |
-i,–interactive |
交互式 |
-t,–tty |
分配一个伪终端 |
-d,–detach |
运行容器到后台 |
-a,–attach list |
附加到运行的容器 |
–dns list |
设置DNS服务器 |
-e, –env list |
设置环境变量 |
–env-file list |
从文件读取环境变量 |
-p,–publish list |
发布容器端口到主机 |
-P,–publist-all |
发布容器所有EXPOSE的端口到宿主机随机端口 |
-h,–hostname string |
设置容器主机名 |
–ip string |
指定容器IP,只能用于自定义网络 |
–link list |
添加连接到另一个容器 |
–network |
连接容器到一个网络 |
–mount nount |
挂载宿主机分区到容器 |
-v,–volume list |
挂载宿主机目录到容器 |
–restart string |
容器退出时重启策略,默认no [always|on-failure] |
–add-host list |
添加其他主机到容器中/etc/hosts |
资源限制指令
资源限制指令 |
描述 |
-m,–memory |
容器可以使用的最大内存量 |
–memory-swap |
允许交换到磁盘的内存量 |
–memory-swappiness=<0-100> |
容器使用swap分区交换的百分比(0-100,默认为-1) |
–memory-reservation |
内存软限制,Docker检测主机容器征用或内存不足是所激活的软件限制,使用此选项,值必须设置低于—memory,以使其优先 |
–oom-kill-disable |
当宿主机内存不足时,内核会杀死容器中的进程,建议设置了-memory选项再禁用—oom。如果没有设置,主机可能会耗尽内存 |
–cpus |
限制容器可以使用多少可用的CPU资源 |
–cpuset-cpus |
限制容器可以使用特定的CPU |
–cpu-shares |
此值设置为大于或小于默认1024只,以增加或减少容器的权重,并使其可以访问主机CPU周期的更大或更小比例 |
docker container run 运行一个容器
[root@docker ~]# docker container run -it -d --name bs busybox
b9514bbe3fa3819f29470dcb85ea3d832554d1ff0801c5ac73cacafb890ae011
[root@docker ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
b9514bbe3fa3busybox"sh" 4 seconds ago Up 4 seconds bs
–e 传入变量
[root@docker ~]# docker container run -it -d -e a=123 --name bs01 busybox
799d7d2d4b8d3f58b0ce5834ac79d6b4d87af023cb4eff729e362bd27886c8b8
[root@docker ~]# docker exec -it bs01 sh
/ # echo $a
123
-p发布容器端口到主机
[root@docker ~]# docker container run -it -d -p 8080:80 --name mynginx nginx:latest
[root@docker ~]# docker ps -a
CONTAINER IDIMAGE COMMAND CREATED STATUS PORTS NAMES
10f7d061ddcanginx:latest "nginx -g 'daemon of…" 3 minutes ago Up 3 minutes 0.0.0.0:8080->80/tcp mynginx
–restart=always容器退出后,容器重启
root@docker ~]# docker container run -it -d -P --name mynginx01 --restart=always nginx
–cpus 控制容器CPU使用率
[root@docker ~]# docker container run -itd --name mynginx03 --cpus 2 nginx
–memory 控制容器内存使用率
[root@docker ~]# docker container run -idt --name mynginx04 --memory 2048m nginx
ctrl+p+q 退出容器,且容器继续运行
管理容器常用命令
指令 |
描述 |
ls |
列出容器 |
inspect |
显示一个或多个容器详情 |
attach |
附加本地标准输入,输出和错误到一个运行的容器 |
exec |
在运行的容器中执行命令 |
commit |
创建一个新镜像来自一个容器 |
cp |
拷贝文件/文件夹到一个容器 |
logs |
获取一共容器日志 |
port |
列出或指定容器端口映射 |
stats |
显示容器资源使用统计 |
top |
显示一个容器运行的进程 |
update |
更新一个或多个容器配置 |
stop/start |
停止/启动一个或多个容器 |
rm |
删除一个或多个容器 |
docker container ls 列出运行的容器
[root@docker ~]# docker container ls
CONTAINER IDIMAGE COMMAND CREATED STATUS PORTS NAMES
49134166b797busybox"sh"About an hour ago Up 15 minutes bs02restart
1e3d0563bfa7nginx "nginx -g 'daemon of…" About an hour ago Up 15 minutes 0.0.0.0:4002->80/tcp mynginx01
10f7d061ddcanginx:latest "nginx -g 'daemon of…" About an hour ago Up 15 minutes 0.0.0.0:8080->80/tcp mynginx
799d7d2d4b8dbusybox"sh" About an hour ago Up 15 minutes bs01
f5c15b48abbbbusybox"sh"2 hours ago Up 15 minutes bs
docker container inspect 查看容器详细信息
[root@docker ~]# docker container inspect mynginx
[
{
"Id": "10f7d061ddca79b9a6580dd4cdec34691523fe1b7e385c859ab93e18c76080b0",
"Created": "2018-06-26T06:00:34.475583837Z",
"Path": "nginx",
"Args": [
"-g",
"daemon off;"
],
......
"NetworkID": "14a4c1cf986e21971c090a2946045f95c17ee0e2ee681cb5873008cfba518a27",
"EndpointID": "713fc826656249305a72015659543fdfc6d203ffcf6aff684739bc43ed408b5f",
"Gateway": "172.17.0.1",
"IPAddress": "172.17.0.7",
"IPPrefixLen": 16,
"IPv6Gateway": "",
"GlobalIPv6Address": "",
"GlobalIPv6PrefixLen": 0,
"MacAddress": "02:42:ac:11:00:07",
"DriverOpts": null
}
}
}
}
]
docker container attach附加本地标准输入,输出和错误到一个运行的容器,不能附加进程容器
[root@docker ~]# docker container attach mynginx ##没有显示输入/输出
[root@docker ~]# docker container attach bs01
/ #
docker container top 查看容器进程
[root@docker ~]# docker container top mynginx
UIDPID PPID C STIME TTY TIME CMD
root10509 10493 0 15:56 pts/0 00:00:00 nginx: master process nginx -g daemon off;
10110545 10509 0 15:56 pts/0 00:00:00 nginx: worker process
docker container attach 进入到一个容器 方法一
[root@docker ~]# docker container attach bs
/ #
docker container exec 进入到容器 方法二,退出容器后,容器继续运行
[root@docker ~]# docker exec -it nginx bash
/ #
bash和sh的区别
[root@docker ~]# docker container exec -it mynginx07 bash
root@efd3a1d4e222:/#
[root@docker ~]# docker container exec -it mynginx07 sh
#
docker container commint 提交一个运行的容器镜像
[root@docker ~]# docker container commit bs01 busybox:V2
sha256:2f83a66b9898ce2274b8efdddf303870b9da8379a28b4de4d972ef9c656cb78a
[root@docker ~]# docker images
REPOSITORYTAG IMAGE ID CREATED SIZE
busyboxV22f83a66b9898 50 seconds ago 1.15MB
### docker container cp 将宿主机上的文件拷贝到容器中
[root@docker ~]# docker container cp ./anaconda-ks.cfg bs01:/root
[root@docker ~]# docker container exec bs01 ls /root ##产看拷贝的文件
anaconda-ks.cfg
#重启容器文件不会丢失,删除容器,文件才会丢失
docker logs 查看容器日志
[root@docker ~]# docker container logs bs01
/ # ll
sh: ll: not found
/ # ls
bin dev etchome proc rootsys tmp usrvar
/ # yum
sh: yum: not found
查看宿主机中容器的输出日志
[root@docker ~]# ls /var/lib/docker/containers/运行容器的ID
docker container port 查看容器的端口映射
[root@docker ~]# docker container port mynginx
80/tcp -> 0.0.0.0:8080
### docker container stats 查看容器资源使用率
[root@docker ~]# docker stats mynginx04
### docker container stop/start 停止/启动一个容器
[root@docker ~]# docker container stop mynginx07
mynginx07
[root@docker ~]# docker container start 8523fde32e9d
8523fde32e9d
docker container rm 删除一个容器
[root@docker ~]# docker container rm mynginx07
mynginx07
[root@docker ~]# docker container rm –f mynginx06 强制删除容器,
mynginx06
[root@docker ~]# docker container rm -f $(docker ps -qa) #强制批量删除容器