docker基本命令及操做逻辑

docker镜像操做逻辑图:

docker基本命令及操做逻辑

docker是一个容器,而运行一个容器必需要有镜像,由于镜像是容器的核心,咱们在docker上运行一个服务时须要经过docker run运行一个镜像,才可以进入到该容器中,咱们也可使用docker commit命令 将一个容器制做成一个镜像,但注意制做一个镜像时须要指定一个完整的镜像名称(镜像名称+版本号),它默认的版本号是latest,表示为最新版本的镜像,若是不写,将默认已latest结尾。
还能够执行docker save --output命令导出该镜像,而当你须要下载一个服务时,可使用docker load --input 命令导入该镜像,固然也可使用>号或者<号来导入或导出。
也能够从docker hub公共仓库中使用docker pull拉取镜像,除了能够拉取,咱们也可使用dokcer push 将本身本地的镜像上传到公共仓库中。
若是在公司中是不可能将本身的镜像上传到公共仓库中的,因此咱们能够将镜像上传到本身内部的私有仓库中,这个私有仓库能够经过官方的registry容器来进行构建,当须要下载某个服务时,也能够从私有仓库中使用pull命令进行拉取。mysql

docker基本命令:

//查看正在运行的容器:
[root@sqm-docker01 ~]# docker ps
//查看全部容器(包括没有正在运行的容器)
[root@sqm-docker01 ~]# docker ps -a
//查看docker的信息:
[root@sqm-docker01 ~]# docker info
//查找镜像:
[root@sqm-docker01 ~]# docker search mysql
//下载,拉取镜像:
[root@sqm-docker01 ~]# docker pull httpd
/保存镜像为tar包:
[root@sqm-docker01 ~]# docker save --output my-httpd.tar httpd
或者使用:
[root@sqm-docker01 ~]# docker save &gt; httpd.tar httpd:latest
//查看本地镜像:
[root@sqm-docker01 ~]# docker images
docker基本命令及操做逻辑nginx

注意:latest:表示是最新版本的镜像,但不是绝对最新,由于TAG标签能够进行更改。
完整的镜像名称----->>> image:latest(镜像名称+版本号)
若是版本号默认是以latest为结尾,能够省略不写。web

//删除镜像:
[root@sqm-docker01 ~]# docker rmi httpd:latest
#加上-f选项能够强制删除:
[root@sqm-docker01 ~]# docker rmi -f centos:latest
//删除容器:(先中止容器后再删除)sql

[root@sqm-docker01 ~]# docker stop my_nginx 
my_nginx
[root@sqm-docker01 ~]# docker rm my_nginx 
my_nginx

一样加上-f选项能够强制删除:docker

[root@sqm-docker01 ~]# docker rm -f my_nginx 
my_nginx

//导入镜像:
[root@sqm-docker01 ~]# docker load &lt; my-httpd.tar
或者使用:
[root@sqm-docker01 ~]# docker load --input my-httpd.tarcentos

//进入容器:bash

[root@sqm-docker01 ~]# docker exec -it  test  /bin/bash   
或者
[root@sqm-docker01 ~]# docker attach test

注意:若是是attach进入容器,退出以后,容器会中止运行,而exec不会
exec 进入容器会开启新的进程,attach不会(进入的仍是同一个终端)。
ctrl + p ctrl +q :若是是attach进入的容器, ctrl + p ctrl +q 退出容器,而且保持容器运行。 #注意两个快捷键得同时按ide

//开启容器:
[root@sqm-docker01 ~]# docker start test
//关闭容器:
[root@sqm-docker01 ~]# docker stop test
//重启容器:
[root@sqm-docker01 ~]# docker restart test
//删除全部容器:
[root@sqm-docker01 ~]# docker ps -a -q | xargs docker rm -f
//删除全部镜像:
[root@sqm-docker01 ~]# docker images -q | xargs docker rmi -f
//开启全部容器:
[root@sqm-docker01 ~]# docker ps -a -q | xargs docker start
//关闭全部容器:
[root@sqm-docker01 ~]# docker ps -a -q | xargs docker stoprest

//查看容器的日志:
[root@sqm-docker01 ~]# docker logs test2
//实时更新日志:
[root@sqm-docker01 ~]# docker logs test2 -f日志

//保持容器开启状态(用于docker服务重启以后)
[root@sqm-docker01 ~]# docker run -itd --name test3 --restart=always httpd

--restart=always:随着容器的重启而重启

//将容器制做成镜像:
[root@sqm-docker01 ~]# docker commit web01 test-web:v1.0

docker commit后面跟的是须要制做成镜像的容器,制做成的镜像名称和标签能够自定义。

//运行容器:
[root@sqm-docker01 ~]# docker run -itd --name my_nginx -p 80:80 --restart=always nginx:latest

参数解释:
run:运行一个容器
-itd: i:可交互
t:伪终端
d:保持容器后台运行
--name:自定义名称为my_nginx

  • p:映射端口,宿主机端口:容器内端口
    --restart=always:保持容器运行

以上是docker操做的基本命令,其余方面的docker操做命令在后续的博客中会写到。

———————— 本文至此结束,感谢阅读 ————————

相关文章
相关标签/搜索