Docker学习笔记(一)

基础命令

  • 启动容器: docker run -dit ubuntu
  • 查看建立的容器: dokcer inspect
  • 自定义容器名:
dokcer run --name=自定义名 -i -t IMAGE /bin/bash
  • 重新启动停止的容器:docker start [-i] 容器名。 -i是以交互的方式启动停止的容器
  • 删除已经停止的容器:docker rm 容器名

守护式容器

* 能够长期运行
* 没有交互式会话
* 适合运行应用程序和服务
  • 以守护式运行容器:
docker run -i -t IMAGE /bin/bash
同时按ctrl+P和ctrl+q //退出后容器在后台运行
  • 附加到运行中的容器:docker attach 容器名
  • 启动守护式容器:
//-d 使用后台的方式来执行命令
docker run -d 镜像名 [COMMAND] [ARG...]
  • 查看容器日志:
docker logs [-f] [-t] [--tail] 容器名
	-f --follows=true|false 默认false
	-t timestamps=true|false 默认false
	--tail="all"
  • 查看容器内进程:
docker top 容器名
  • 在运行中的容器内启动新进程:
docker exec [-d] [-i] [-t] 容器名 [COMMAND] [ARG...]
  • 停止守护式容器:

    备注:重启容器后容器的ip和端口映射都会发生改变。

docker stop 容器名 //发送一个信号给容器,等待停止
docker kill 容器名 //直接停止容器

设置容器的映射端口

端口映射

run [-P] [-p]

//将为容器暴露的所有端口进行映射
-P,publish-all=true | false 默认为false
	docker run -P -i-t ubuntu /bin/bash
	
//指定映射端口
-p,--publish=[]

containerPort //只制定容器的端口(宿主机的端口是随机映射的)
	docker run -p 8080:80 -i -t ubuntu /bin/bash

hostPort:containnerPort //同时指定宿主机的端口和容器的端口(一一对应)
	docker run -p 8080:80 -i -t ubuntu /bin/bash
	
ip::containerPort //指定ip和容器的端口
	docker run -p 0.0.0.0:80 -i -t ubuntu /bin/bash
	
ip:hostPort:containerPort //ip、宿主机端口和容器端口都进行指定
	docker run -p 0.0.0.0:8080:80 -i -t ubuntu /bin/bash

查看端口映射

dokcer port 容器名

练习:在容器中部署静态网站

//创建映射80端口的交互式容器
docker run -p 80 --name=web -i -t b2ab0ed558bb /bin/bash	
//安装Nginx
yum install -y nginx

//安装文本编辑器vim
yum install vim

//验证网站访问
docker port web //查看端口

镜像

  • 列出镜像
 docker images [OPTSIONS][REPOSITORY]
 		-a,--all=false  //默认不显示中间层的镜像
 		-f,--filter=[]  //显示时的过滤条件
 		--no-trunc=false  //不使用截断的形式来显示数据(默认会截断唯一id)
 		-q,--quiet=false  //只显示镜像的唯一id
  • 镜像的仓库

REPOSITORY 仓库 镜像的集合

  • TAG 标签 默认使用latest标签

  • 查看镜像的详细信息(inspect也支持容器的查看)

docker inspect [OPTIONS]CONTAINER|IMAGE[CONTAINER|IMAGE...]
	-f,format=""
  • 删除镜像
docker rmi [OPTIONS]IMAGE[IMAGE...]
	-f,--force=false 强制删除镜像
	--no-prune=false 会保留被删镜像中被打标签的父镜像

获取和推送镜像

  • 查找镜像
    Docker Hub

      https://registry.hub.docker.com
    
    docker search [OPTIONS]TERM
    	--automated=false
    	--no-trunc=false 
    	-s,--stars=0
    
  • 拉取镜像

    docker pull [OPTIONS] NAME[:TAG]
    	-a,all-tags=false 下载全部标记的镜像
    
  • 推送镜像

    docker push NAME[:TAG]
    

构建镜像

保存对容器的修改,并再次使用
自定义镜像的能力
以软件的形式打包并分发服务及其运行环境

  • 通过容器构建

会暂停正在使用的容器

```
docker commit [OPTIONS] CONTAINER [REPOSITORY][:TAG]
	-a,--author=""  镜像的作者
	-m,-message="" 镜像构建的信息
	-p,--pause=true 可以不暂停正在使用的容器
```	
  • 通过Dockerfile文件构建

    1. 创建Dockerfile文件

    2. 运行docker build命令

    docker build [OPTIONS] PATH | URL | -
    	--force-rm=false
    	--no-cache=false
    	-pull==false
    	-q,--quiet=false
    	--rm=true
    	-t,--tag=""
    

    dockerC/S模式


Remote API

连接方式(客户端与服务端的守护进程)

  • unix://var/run/docker.sock
  • tcp://host:port
  • fd://socketfd

Docker守护进程的配置和操作

  • 查看守护进程

    ps -ef |grep docker
    sudo status docker
    
  • 使用service命令管理

    启动
    sudo service docker start
    
    停止
    sudo service docker stop
    
    重启
    sudo service docker restart
    
原文地址:https://www.cnblogs.com/zuoruining/p/10810750.html