概念:
镜像image :镜像是只读的 容器container :启动容器的时候是在只读层上加了一层可写层 仓库repository :集中存放镜像
查看内核版本,必须是3.10以上:
uname -r
升级yum:
yum update
卸载:
yum remove docker 如果不能彻底清除,尝试下面命令: yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine
安装驱动依赖:
yum install -y yum-utils device-mapper-persistent-data lvm2
设置yum源:
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
查看有哪些版本:
yum list docker-ce --showduplicates|sort -r
安装docker:
yum install docker 安装指定版本:yum install docker-ce-18.06.3.ce
启动docker服务:
systemctl start docker
开机启动:
systemctl enable docker
查看版本:
docker version docker -v
查看docker信息:
docker info
停止docker服务:
systemctl stop docker
重启docker服务:
service docker restart
实例化镜像为容器并映射端口:
docker run 镜像id 或镜像名 docker run -d -p 8080:80 docker.io/centos:latest docker run --name ganym -p 8080:8090 -d -it docker.io/ganym:dev /bin/bash docker run -d --name ganym_www --user=root --privileged=true -p 5002:80 -v /home/www/ganym/multilotto-www:/var/www/html -v /home/www/ganym/nginx/conf:/etc/nginx/sites-enabled ganyongmeng/docker_nginx_php:v1.0
如果想实例化容器后,执行指定脚本,可以在镜像容器里新增一个sh文件,
vi /usr/bin/boot.sh #写入启动等相关脚本
实例化容器的时候,加入脚本:
docker run -it -d --name nginx-test.com --user=root --privileged=true -p 8003:80 -v /home/www/html/passport.boss.com:/home/www/html/test.com ganyongmeng/new_centos7_nginx_php56 /bin/bash boot.sh
———————————–华丽分割线——————————————————-
镜像
搜索镜像:
docker search 关键字
拉取镜像:
docker pull 镜像名:tag :tag是可选的,tag表示标签,多为软件的版本,默认是latest
拉取远程镜像:
docker pull www.xxx.com:5000/mongo:latest
保存容器到镜像:
docker commit 容器id(or 容器名称) 新镜像名(容器保存为镜像) docker commit 1bceee6f6c92 docker.io/ganym:dev
给镜像打tag标签:
docker tag 镜像id(或镜像名):tag 镜像id(或镜像名):新tag
推送镜像到远程:
docker login --username=XXX docker push www.xxx.com:5000/mongo:latest
查看本地镜像:
docker images docker images -a
查看完整imagesID:
docker images --no-trunc
删除镜像:
docker rmi 镜像ID
删除全部镜像:
docker rmi $(docker images -q)
清理镜像:
docker system prune
删除所有未被容器使用的镜像:
docker image prune -a
该命令删除的是:
WARNING! This will remove: - all stopped containers - all networks not used by at least one container - all dangling images - all dangling build cache 已停止的容器(container) 未被任何容器所使用的卷(volume) 未被任何容器所关联的网络(network) 所有悬空镜像(image) 所有悬空生成缓存(cache)
注意:
该指令默认只会清除悬空镜像,未被使用的镜像不会被删除。
添加 -a 或 –all 参数后,可以一并清除所有未使用的镜像和悬空镜像。
可以添加 -f 或 –force 参数用以忽略相关告警确认信息。
指令结尾处会显示总计清理释放的空间大小。
查看docker占用情况:
docker system df docker system df -v
删除所有停止运行的容器:
docker container prune
删除所有未被挂载的卷:
docker volume prune
删除所有网络:
docker network prune
删除 docker 所有资源:
docker system prune
注意,如果docker 镜像、容器删掉后,没有释放内存,可以尝试重启docker.
容器
容器启动、停止、重启命令:
docker start 容器ID或name docker stop 容器ID或name docker restart 容器ID或name
查看当前运行容器:
docker ps docker ps -n 5
查看所有容器:
docker ps -a
查看容器占用情况:
docker ps -s
删除容器:
docker rm 容器ID
退出容器终端:
exit
进入容器终端:
docker exec -it 容器ID(或者容器名称) /bin/bash 或者 docker attach 容器ID(或者容器名称)
在容器外执行容器内命令:
docker exec -it 容器ID /bin/bash -c "/var/www/html && php index.php"
查看容器日志:
docker logs container-name/container-id
添加内核参数
如果在 CentOS 使用 Docker CE 看到下面的这些警告信息:
WARNING: bridge-nf-call-iptables is disabled WARNING: bridge-nf-call-ip6tables is disabled 请添加内核配置参数以启用这些功能。 $ sudo tee -a /etc/sysctl.conf <
导出镜像:
docker save -o /home/www/images_blog.tar blog_image
导入下载好的容器镜像文件:
docker load < image_xxx.tar
进入容器内部:
docker exec -it 1bceee6f6c92(容器名称或者容器ID) /bin/sh(docker inspect 里面的Path)
查看镜像或容器元数据:
docker inspect 镜像id或容器id(名)
一键启动所有容器:
docker start $(docker ps -a | awk '{ print $1}' | tail -n +2)
一键重启所有容器:
docker restart $(docker ps -a -q)
关闭所有容器:
docker stop $(docker ps -a | awk '{ print $1}' | tail -n +2)
删除所有容器(慎用):
docker rm $(docker ps -a | awk '{ print $1}' | tail -n +2)
docker build 命令用于使用 Dockerfile 创建镜像
使用当前目录的 Dockerfile 创建镜像:
docker build -t rancher/server:v1 .
使用URL github.com/creack/docker-firefox 的 Dockerfile 创建镜像:
docker build github.com/creack/docker-firefox
通过 -f Dockerfile 文件的位置,创建镜像:
docker build -f /path/Dockerfile .
如果某些用户执行docker命令报错:
Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.38/containers/json: dial unix /var/run/docker.sock: connect: permission denied
可以把该用户加入到docker组中
groupadd docker gpasswd -a service docker
转载请注明:永盟博客 » docker常用命令汇总