开机启动
- systemctl enable docker centos7中开机自启动
- docker容器自启动
- 方式一:在创建容器时指定参数 --restart=always
- 方式二:创建容器时未指定,修改容器重启策略:docker update --restart=always mysql
普通命令
- docker 查询所有docker客户端命令
- docker command --help 相关命令的帮助
- docker version 查看docker版本
- docker system df 查看镜像、容器、数据卷占用的空间
镜像命令
- docker images 列出所有镜像
- docker images ls 列出部分镜像
- docker images ls -digests 显示镜像摘要
- docker images mysql 单独列出mysql镜像
列表中的镜像大小是从服务器下载下来解压后的大小,服务器上的文件是压缩后的,便于网络传输,但是下载到本地后会展开。列表中的镜像体积总和并非是所有镜像实际硬盘消耗。由于 Docker 镜像是多层存储结构,并且可以继承、复用,因此不同镜像可能会因为使用相同的基础镜像,从而拥有共同的层。由于 Docker 使用 Union FS,相同的层只需要保存一份即可,因此实际镜像硬盘占用空间很可能要比这个列表镜像大小的总和要小的多
- docker search redis 搜索redis镜像
- docker pull [选项] [Docker Registry 地址[:端口号]/]仓库名[:标签] 下载镜像
Docker 镜像仓库地址:地址的格式一般是 <域名/IP>[:端口号]。默认地址是 Docker Hub官网(https://hub.docker.com)
仓库名:这里的仓库名是两段式名称,即 <用户名>/<软件名>(个人上传的镜像也要遵循这种格式)。对于 Docker Hub,如果不给出用户名,则默认为 library,也就是官方镜像 - docker pull redis 下载redis镜像,默认下载最新版本的镜像
- docker pull redis:5.0-rc 下载指定版本的redis镜像
- docker rmi [镜像ID] 删除镜像
- docker image ls -f dangling=true 列出所有的虚悬镜像
镜像既没有仓库名,也没有标签,均为的称为虚悬镜像,这种镜像一般都是没用的
- docker image prune 删除所有的虚悬镜像
容器命令
- docker ps 查看运行中的容器
- docker ps -a 查看所有容器,包含运行中的和暂停中的
- docker inspect [容器名称] 查看容器的相关信息
查看容器信息,显示的内容会非常多,这里可以使用Linux提供的管道符进行过滤,比如:
docker inspect mysql_master|grep IPAddress 查看IP地址
docker inspect mysql_master|grep /var/lib/docker/volumes 查看挂载卷信息 - docker run -tid [镜像ID] /bin/bash 运行容器,针对镜像为非CentOS7系统
- docker run -tid [镜像ID] /usr/sbin/init 运行容器,针对镜像为CentOS7版本,使用/bin/bash创建后进入容器使用systemctl命令会报错,因此使用/usr/sbin/init解决systemctl报错不能使用的问题
- docker start [容器名称] 启动容器
- docker stop [容器名称] 停止容器
- docker restart [容器名称] 重启容器
- docker rename [容器原名称] [容器修改后名称] 修改容器名称
- docker rm [容器名称] 删除容器
- docker container prune 删除所有处于运行状态的容器
- docker exec -it [容器名称] /bin/bash 进入容器
- exit 退出容器
- docker export [容器ID] > /tmp/nginx.tar 将容器导出到本地文件
- cat /tmp/nginx.tar | docker import - test/nginx:v1.0 导入容器成为镜像,镜像名为text/nginx,版本号为v1.0
- docker port [容器ID] 查看指定容器的所有端口映射信息
- docker port [容器ID] 80 查看指定容器的80端口映射信息
容器间文件拷贝
- docker cp [宿主机文件路径] [docker容器名称]:[docker容器路径]
宿主机的文件拷贝到docker容器,如:
docker cp MySQL-server-5.6.38-1.el7.x86_64.rpm mysql_master:/root/ - docker cp [docker容器名称]:[docker容器路径] [系统路径]
docker容器的文件拷贝到宿主机