创建容器
docker create -it centos6 bash //这样可以创建一个容器,但该容器并没有启动
docker start container_id //启动容器后,可以使用 docker ps 查看到,有start 就有stop,和restart
之前我们使用的docker run 相当于先create再start
docker run -it centos bash
这样进入了一个虚拟终端里面,我们可以运行一些命令,使用命令exit或者ctrl d 退出该bash,当退出后这个容器也会停止。
当我们使用ctrl+p+q的时候可以不关闭容器,回到终端。
docker run -d 可以让容器在后台运行
直接用容器运行一个循环命令:
比如:
docker run -d centos bash -c "while :; do echo "123"; sleep 2; done"
–name 给容器自定义名字
docker run --name web -itd centos bash
以后进入容器就可以直接指定名字进入
举例:
[root@py1 ~]# docker run -itd --name centos_chao centos6 bash
d39ea7a513fbade82d154cbd0b42294b547f41a8a195b7ee297355534c3d27ba
[root@py1 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d39ea7a513fb centos6 "bash" 8 seconds ago Up 7 seconds centos_chao
限制容器资源:
内存限额:
允许容器最多使用500M内存和100M的Swap,并禁用 OOM Killer:
docker run -d --name nginx03 --memory="500m" --memory-swap=“600m" --oom-kill-disable nginx
CPU限额:
允许容器最多使用一个半的CPU:
docker run -d --name nginx04 --cpus="1.5" nginx
允许容器最多使用50%的CPU:
docker run -d --name nginx05 --cpus=".5" nginx
查看容器内服务具体信息:
docker inspect centos
例如查看容器ip 等等等
进入容器
[root@py1 ~]# docker exec -it centos_chao bash
[root@d39ea7a513fb /]#
docker run --rm -it centos bash -c "sleep 30" //--rm 可以让容器退出后直接删除,在这里命令执行完容器就会退出
docker attach 可以进入一个后台运行的容器,比如
docker attach container_id //但是attach命令一般不用,比如我们想要退出终端,就得exit了,这样容器也就退出了,还有一种方法
docker exec -it container_id bash //可以临时打开一个虚拟终端,并且exit后,容器依然运行着
我们还可以利用nsenter 进入容器
vim docker_in.sh
#!/bin/bash
pid=`docker inspect --format "{{.State.Pid}}" $1`
nsenter -t $pid -m -u -i -n -p
sh docker_in.sh 接上容器名即可
查看容器服务运行日志
docker logs 可以获取到容器的运行历史信息,用法如下
docker logs container_id
举例:
[root@py1 ~]# docker run -itd centos bash -c "echo hello word"
4d4bfdcbc749919214324375000137667a5c9cdae0f67d57ad9a45389c30198d
[root@py1 ~]# docker logs 4d4b
hello word
删除容器
docker rm container_id //container_id是ps的时候查看到的,这样就可以把container删除,如果是运行的容器,可以加-f
容器的导入导出
导出:
docker export container_id > file.tar // 导出容器,可以迁移到其他机器上,需要导入
导入:
cat file.tar |docker import - chao_test //这样会生成chao_test的镜像