docker基础命令

Posted 袁❈晔

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了docker基础命令相关的知识,希望对你有一定的参考价值。

docker镜像操作

docker run hello-world		#运行hello-world镜像

  1. dockerclient客户端连接到了服务端(服务端是以一个守护进程的形式跑在操作系统里面的)restfulapi典型的C/s架构
  2. 由docker服务端的守护进程从docker hub上下载了镜像(服务端会先检查本地系统是否有此镜像)
  3. 服务端创建了一个新的容器,然后从拉取的这个镜像启动了一个容器,容器执行了脚本/可执行程序让我们可以查看/使用
  4. docker服务端把这些信息流(传递)返回到客户端并展示出来,( 展示在终端上)docker client 可以是多种形式,比如"docker"命令工具所在的终端

查看docker版本

docker -v 
docker version 

 搜索镜像-search

docker search nginx		       #搜索镜像nginx
docker search centos: 7		   #搜索镜像centos:7

下载镜像-pull

docker pull 镜像名称
例如:docker pull nginx  #下载nginx最新的镜像

 查看镜像列表

docker images——查看当前docker下的下载镜像信息

获取镜像信息

封装镜像的详细信息
docker inspect  镜像ID  

 添加镜像标签

docker tag hello-world:latest hello-world:lamp 

删除镜像 

若需要删除镜像需要先删除容器
docker rm  容器ID	   #删除容器
docker rmi  镜像ID     #删除镜像
docker rmi  镜像标签   #删除镜像
docker rmi  `docker images -q`  #-q 列出镜像ID

镜像导出

docker save -o  文件名镜像名
示例:
docker save -o hello-world hello-world:lamp

 镜像导入

docker load < hello-world

容器操作

查询容器

docker ps -a 

CONTAINER ID:容器ID
IMAGE:镜像版本
CRATED:创建的时间
STATUS:运行的时间
PORTS:暴露的端口
NAMES:名称(可定义)

创建容器

docker create -it nginx:latest /bin/bash
-i 让容器的标准输入保持打开
-t 分配一个伪终端
-d 后台守护进程的方式运行

 启动容器

docker start  容器id

启动一次性运行容器

docker run centos:7 /usr/bin/bash -c ls /
持续性运行浪费资源    -c:传递命令参数

停止容器

docker stop  容器ID
#状态码0:正常退出,非0值表示非正常退出,137表示主动停止退出

容器持续后台运行

docker run -d centos:7 /usr/bin/bash -c "while true;do echo hello; done"	#后台运行centos:7的容器
	while true;do echo hello; done:代表给予一个死循环

进入容器

使用run
docker run -it nginx:latest /bin/bash         #一次性的,退出则关闭
exec(容器必须为开启状态)
docker exec -it  容器ID /bin/bash
docker exec -it 容器ID /bin/bash
	docker run -it:会创建前台进程,但是会在输入exit后终止进程。
	docker attach:会通过连接stdin,连接到容器内输入输出流,会在输入exit后终止进程.
	docker exec -it 会连接到容器,可以像SSH-样进入容器内部,进行操作,可以通过exit退出容器,不影响容器运行。

 退出容器

ctrl+d 或者 exit

容器导出

docker export    容器ID   >   文件名

容器导入

生成镜像
docker import      导出的文件名(容器)  指定镜像名称

删除容器

docker rm 容器ID
docker rm -f 容器ID     强制删除容器
docker ps -a | awk '{print "docker rm "$1}' | bash    批量删除容器
for i in 'docker ps -a | grep -i exit | awk '{print $1}'`; do docker rm -f $i; done
批量删除"exit"状态的容器

docker四种网络模式

host模式        -net=host                  容器和宿主机共享Network namespaceo
container模式   -net=container:NAME_or_ID  多个容器共享一个Network namespace.
none模式        -net=none容器有独立的Network,namespace,但并没有对其进行任何网络设置,如分配veth pair和网桥连接,配置IP等。
bridge模式      -net=bridge               (默认为该模式)
以上不需要动手配置,真正需要配置的是自定义网络

以上是关于docker基础命令的主要内容,如果未能解决你的问题,请参考以下文章

docker简介和基础命令

Docker 学习 | 基础命令

Docker 基础知识-入门篇

Docker基础命令详解——镜像及容器操作

1. Docker基础命令

Docker基础命令