容器使用
1、创建容器
#创建容器,i标准输入,t建立一个命令行终端,d后台运行,P随机端口 docker run -itdP --name="my" wordpress #创建容器,i标准输入,t建立一个命令行终端,d后台运行,p指定端口 docker run -itd -p 8080:80 --name="my" wordpress #创建容器,i标准输入,t建立一个命令行终端 docker run -it wordpress /bin/bash #容器故障自动重启 docker run --name my -d --restart=always wordpress #指定DNS,容器停止自动删除 docker run -it --rm --dns 1.1.1.1 --dns 8.8.8.8 wordpress bash #指定容器IP和网络 docker run -itd --network=testnet --ip 172.1.1.1 --name my wordpress bash #挂载绝对路径目录到容器 docker run -it -v /data:/soft centos /bin/bash #具名挂载,宿主机创建的目录可以通过inspect查看 docker run -it -v data:/soft centos /bin/bash #匿名挂载,宿主机随机生成的一个目录名 docker run -it -v /soft centos /bin/bash #挂载目录为只读,容器内无法操作,匿名无法设置权限 docker run -itd -v /testdir:/testdir:ro centos docker run -itd -v testdir:/testdir:ro centos #容器数据卷 父容器删除不影响其他容器 #启动一个挂载容器 docker run -d -v /docker/nginx/:/etc/nginx -v /docker/mysql/:/etc/mysql/conf.d --name mount hello-world #启动nginx容器,指定同步另一个容器挂载的相同目录 docker run -d -p 8080:80 --volumes-from mount --name mynginx nginx #指定环境变量 docker run -dp 3306:3306 -v /home/mysql/conf:/etc/mysql/conf.d -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql01 mysql #link docker run -dti --name db --restart=always -e MYSQL_ROOT_PASSWORD=redhat -e MYSQL_DATABASE=blog mysql:5.6 #配置MySQL连接的文件中不需要再写入localhost或者ip地址,直接写入mysql容器名即可连接到mysql数据库. docker run -dti --name blog --restart=always -v /web:/var/www/html -p 80:80 --link db:mysql wordpress
2、查看运行容器
#查看运行容器
docker ps
#查看所有容器包括停止状态的容器
docker ps -a
#查看最新创建的容器
docker ps -l
#查看最后创建的x个容器
docker ps -n=X
#格式输出
docker ps --format "table {{.ID}}\t{{.Repostitory}}"3、容器外命令操作
#执行容器并在前台进行PING操作 docker run centos ping www.baidu.com #执行完容器删除器 docker run --rm centos ping www.baidu.com #执行容器并在前台进行版本查看 docker run -it centos cat /etc/os-release #执行容器并在前台进行循环 docker run -itd centos bash -c "while true;do echo hello ;sleep 1;done" #提权创建文件 docker exec -it --privileged=true -u=root dac4151a3982 bash -c 'mkdir /usr/share/zabbix/fonts/' #添加补充执行命令 docker container update --restart=always zabbix-server #进入一个已经运行的容器,exit不会退出终止容器 docker exec -it centos /bin/bash exit不会退出终止容器 #进入容器,不会开启新的进程,exit会终止容器,ctrl+p+q不会终止 docker attach 容器ID #执行一次性命令 docker exec centos cat /etc/os-release #修改容器名称 docker rename centos mycentos #复制容器内容到宿主机 docker cp 5ea88c7ca64b:/home/abc.sh /root #复制宿主机内容到容器 docker cp /root/abc.sh 5ea88c7ca64b:/home/ #查看容器运行的端口 docker port mysql-master
4、查看容器信息
#查看镜像底层信息返回JSON
docker inspect centos
docker container inspect centos
#返回容器IP
docker inspect -f "{{.NetworkSettings.IPAddress}}" centos
#过滤返回后10行信息
docker inspect centos | grep Mount -A 10
#查看日志-f让docker logs像使用tail -f一样来输出容器内部的标准输出
docker logs -f centos
docker logs -f --tail 10 centos
#容器进程
docker top centos
#查看容器资源情况
docker stats centos5、启停删除容器
#停用容器 docker stop centos docker kill centos #启动容器 docker start centos #重启容器 docker restart centos #删除已创建容器 docker rm centos #强制删除 docker rm -f centos #删除所有容器 docker kill `docker ps -qa` ; docker rm `docker ps -aq`