Docker常用命令-全

Docker 运行在 CentOS 7 上,要求系统为64位、系统内核版本为 3.10 以上。
Docker 运行在 CentOS-6.5 或更高的版本的 CentOS 上,要求系统为64位、系统内核版本为 2.6.32-431 或者更高版本。
Docker 要求 CentOS 系统的内核版本高于 3.10 
 
查看服务器linux版本
cat /etc/redhat-release
查看当前服务内核版本
uname -r
查看当前yum服务的版本信息
yum info yum 
 
了解一下Systemctl的作用
Systemctl是一个systemd工具,主要负责控制systemd系统和服务管理器。
Systemd是一个系统管理守护进程、工具和库的集合,用于取代System V初始进程。Systemd的功能是用于集中管理和配置类UNIX系统。
 
使用Curl的方式下载get-docker.sh的脚本到当前目录
 
在当前目录 执行 ./get-docker.sh  或者  sudo sh get-docker.sh (分别都表示 执行当前docker的安装脚本 )
启动Docker进程
sudo systemctl start docker
关闭当前Docker进程
sudo systemctl stop docker
重启Docker进程
sudo systemctl restart docker
 
删除Docker CE
sudo yum remove docker-ce
sudo rm -rf /var/lib/docker
 
----------------------------------Docker进程启动后--------------------------
默认Docker官方网址为: https://www.docker.com/
此处使用docker login
输入账号:arnoldzhao 密码:arnoldzhao 或者 X3x9rXsMyc2QmSX 
-------------------------------镜像配置---------------------------
/etc/docker下创建daemon.json文件,并填充json内容为:
网易的镜像地址
{
"registry-mirrors": ["http://hub-mirror.c.163.com"]
}
或者(Docker国内的镜像地址)
{
  "registry-mirrors": ["https://registry.docker-cn.com"]
}
最后,重启docker进程 
systemctl restart docker
查看当前Docker的信息
docker info 
此处可以看到当前docker的注册地址是 index.docker.io,但当前docker的仓库镜像地址已经更改为了上述所设置的,网易云的镜像地址
Docker常用命令-全-LMLPHP

 
 
查看当前Docker使用状态,可以得到Docker的一些基本信息以及报错等信息 
systemctl status docker -l
 
--------------------------------------------Docker images操作-------------------------------
从仓库中查找对应的jdk8的镜像信息
docker search jdk8
下拉仓库获取hello-word的镜像信息
docker image pull hello-word
查看当前Docker所有镜像信息
docker image ls  或者 docker images
docker images -q ,其中-q表示列取出当前所有镜像的ID
docker images -f  since=mongo:3.2 ,其中-f表示进行筛选,此处表示获取所有在mongo:3.2之后建立的镜像信息(-f筛选功能强大,可以去多多查看一些其它的使用方式)
删除当前镜像信息
docker image rm [imageName]
docker image rm $(docker images -q)  通过docker images -q 获取到所有的镜像ID后,进行docker image rm 的批量删除操作
------------------------------------------------Docker run操作 及相关Docker命令----------------------------------------
-d表示设置容器在后台一直运行,-p 表示将主机上的8088端口映射到容器的80端口上, --name表示指定当前启动后容器的名称,此处nginx表示所要启动的镜像
docker run -d -p 8088:80 --name nginx2019 nginx
表示查看容器内存所运行的进程
docker top nginx2019 
表示查看当前容器的底层记录描述信息
docker inspect nginx2019
查看容器标准输出日志
docker logs -f nginx2019
停止容器
docker stop nginx2019
重启容器
docker start nginx2019
移除容器
docker rm nginx2019 ,或者使用 docker rm $(docker images -q)表示删除所有容器
进入容器的交互式终端
docker exec -it nginx2019 /bin/bash
使用commit将当前容器制作为镜像信息         (使用docker commit将当前容器制作为镜像的方式可以很好的保留容器内的各种日志等信息)
命令格式:docker commit [选项] <容器ID或容器名> [<仓库名>[:<标签>]]
docker commit  --author "20190725arnold" --message "update index.html" nginx2019 nginx2019:v1
再次使用docker ps -a即可看到新生成的镜像信息,其中新的镜像仓库信息为:nginx2019,当前版本 tag标签则为 v1,
将容器内文件与主机文件互相拷贝
将当前docker-name的容器内文件拷贝到主机的/opt目录下
docker cp docker-name:/opt/test.js /opt
 
将当前主机上/opt/test.js文件拷贝到 容器docker-name的opt目录下
docker cp /opt/test.js docker-name:/opt
 
目录挂载:使用-v参数,:前面的目录表示主机上的目录,后面的目录表示容器内目录,此处则表示将当前主机的/opt/test目录挂载到容器内的/soft目录下
docker run -v /opt/test:/soft 
 
Docker镜像打包(注意:是将当前镜像打包)
docker save -o 文件名.tar 镜像名称
docker save 镜像名称>/opt/文件名.tar
 
将对应的打包镜像加载到对应的Docker镜像中
docker load < 文件名.tar
 
-----------------------需注意:save,export以及load和import;这两种打包方式不能被混用------------------------------
 
Docker容器打包(将已运行的容器内所有文件归档打包到对应的tar文件中)
docker export  -o nginx.tar 容器名称(nginx-sip)
 
将所归档的容器文件导入为镜像
docker import nginx.tar nginx:v1
 
Docker的三种安装方式(离线安装,Docker存储库安装,脚本安装) https://www.cnblogs.com/zh94/p/11294853.html
 
--------------------------------------------Dockerfile相关---------------------------------
docker inspect命令,查看当前镜像的所有元数据信息(查看对应的元数据最重要的是可以看到当前镜像的构建命令以及代码等信息***很重要,可以在刚拉下来一个镜像的时候,在不了解的时候,通过元数据可以很清晰的看到对应的镜像过程和所启动时的执行命令,这对于刚接触一个镜像时可以更快的熟悉起来,而不用尝试着去担心镜像中丢失了那些数据或者作者没有构建进去等问题,毕竟通过元数据一切都一目了然)
docker inspect 【镜像名称 或者 容器名称】
使用Docker Build构建对应的Dockfile的镜像信息
docker build命令说明:docker build [选项] <上下文路径/URL/->;   可参考链接如下:
其中 -t 表示当前构建后的镜像名称;此处‘.’表示指明当前的上下文路径,也就是当前输入build命令时,当前所在的目录路径;
当使用copy命令时,COPY ./package.json /app/时,则表示获取当前上下文路径下的JSON文件,然后拷贝到对应的容器APP目录下;
docker build -t nginx:v3 .
此处-f 表示指明要构建的Dockerfile文件的路,(如果不指定当前Dockerfile的路径,则默认会读取当前所指定的上下文路径中的Dockerfile作为构建文件而构建),‘.’ 还是用来指定当前的上下文路径是哪里,此处使用'.',表示当前上下文路径为当前使用build命令时,所在的文件目录路径 。
docker build -t nginx:v3 -f /opt/Dockerfile . 
-----------------------------------Dockerfile语法相关-----------------------
COPY复制文件:语法:COPY [--chown=<user>:<group>] <源路径>... <目标路径>
表示将当前主机服务上下文路径中的 package.json文件,拷贝到对应的容器/opt/app目录下,中间空格隔开,表示语法规范,其中如果所指定的目标路径在对应容器中不存在时,则容器将会自动创建;除此之外,拷贝到容器内的文件,也可以直接使用--chown来设置当前文件的权限;
COPY package.json /opt/app/ 
 
04-15 18:33