Docker(二)--安装及常用命令

1.安装配置

实验环境:

~]# cat /etc/redhat-release 
	CentOS Linux release 7.6.1810 (Core)
~]# uname -r
	3.10.0-957.el7.x86_64

注:由于在内核2.6版本后才支持docker,请使用内核版本高于2.6的系统搭建

1.1 版本选择

yum安装的是1.13版本,我们这儿选择较新版本安装,最新版本安装包 docker-ce

~]# yum list docker
	docker.x86_64             2:1.13.1-103.git7f2769b.el7.centos    

~]# wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -P /etc/yum.repos.d/
~]# yum install -y docker-ce
	...
	Installed:
	  docker-ce.x86_64 3:19.03.3-3.el7 
	...

1.2 镜像加速

由于默认镜像仓库dockerhub在国外,设置镜像加速加快访问,可添加多个,用","隔开。且配置文件默认不存在,需要手动创建。国内镜像加速站点有很多,这儿使用阿里镜像加速

~]# mkdir -p /etc/docker
~]# cat /etc/docker/daemon.json 
	{
	  "registry-mirrors": ["https://nqq67ahg.mirror.aliyuncs.com"]
	}

~]# systemctl start docker
~]# systemctl enable docker

查看版本信息:

~]# docker version
	Client: Docker Engine - Community
	 Version:           19.03.3
	 API version:       1.40
	 Go version:        go1.12.10
	 Git commit:        a872fc2f86
	 Built:             Tue Oct  8 00:58:10 2019
	 OS/Arch:           linux/amd64
	 Experimental:      false
	
	Server: Docker Engine - Community
	 Engine:
	  Version:          19.03.3
	  API version:      1.40 (minimum version 1.12)
	  Go version:       go1.12.10
	  Git commit:       a872fc2f86
	  Built:            Tue Oct  8 00:56:46 2019
	  OS/Arch:          linux/amd64
	  Experimental:     false
	 containerd:
	  Version:          1.2.10
	  GitCommit:        b34a5c8af56e510852c35414db4c1f4fa6172339
	 runc:
	  Version:          1.0.0-rc8+dev
	  GitCommit:        3e425f80a8c931f88e6d94a8c831b9d5aa481657
	 docker-init:
	  Version:          0.18.0
	  GitCommit:        fec3683

 ~]# docker info		#可看到我们设置的加速站点
	 ...
	 Registry Mirrors:
	  https://nqq67ahg.mirror.aliyuncs.com/
	 ...

2.简单使用

docker在较新版本中引入了一类管理命令,但仍兼容了以前版本的命令,具体可help查看,为了适应新版本,我们以下都适用新版本的命令

2.1 镜像操作

~]# docker image --help		#可help查看具体命令
	...
	Commands:
	  build       Build an image from a Dockerfile
	  history     Show the history of an image
	  import      Import the contents from a tarball to create a filesystem image
	  inspect     Display detailed information on one or more images
	  load        Load an image from a tar archive or STDIN
	  ls          List images
	  prune       Remove unused images
	  pull        Pull an image or a repository from a registry
	  push        Push an image or a repository to a registry
	  rm          Remove one or more images
	  save        Save one or more images to a tar archive (streamed to STDOUT by default)
	  tag         Create a tag TARGET_IMAGE that refers to SOURCE_IMAGE

1.拉取镜像

USAGE:
 	docker image pull [OPTIONS] [registry][:port]/[namespace/]NAME[:TAG|@DIGEST]
 	
	registry   :使用什么镜像仓库,默认为dockerhub。
    port       :镜像仓库端口
    namespace  :不填写,默认为官方提供的镜像
    name       :镜像名称,必填
    tag        :标签,默认为latest(最新)
eg:
    docker image pull busybox     #拉取最新的busybox镜像

2.查看镜像

USAGE:
	docker image ls [OPTIONS] [REPOSITORY[:TAG]]
eg:
	docker image ls -a      #查看本机所有镜像

3.删除镜像

USAGE:
	docker image rm [OPTIONS] IMAGE [IMAGE...]
eg:
	docker image rm busybox      #删除busybox镜像,不带标签默认为latest
	docker image rm -f busybox:latest  #强制删除,即有容器在使用也删除该镜像

4.镜像打标

USAGE:
	docker image tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]
eg:
	docker image tag nginx:latest test/web:v0.1    #打标签

5.镜像导出

USAGE:
	docker image save [OPTIONS] IMAGE [IMAGE...]
eg:
	docker image save -o /tmp/nginx-latest.tar.gz nginx:latest      #将镜像导出到本地/tmp目录下,可分发到其他服务器

6.镜像导入

USAGE:
	docker image load [OPTIONS]
eg:
	docker image load -i /tmp/nginx-latest.tar.gz    #将本地镜像文件导入

7.查看镜像信息

USAGE:
	docker image inspect [OPTIONS] IMAGE [IMAGE...]
eg:
	docker image inspect nginx    #查看nginx镜像信息

2.2容器操作

容器操作示意图:

在这里插入图片描述

~]# docker container --help
	Commands:
	  attach      Attach local standard input, output, and error streams to a running container
	  commit      Create a new image from a container's changes
	  cp          Copy files/folders between a container and the local filesystem
	  create      Create a new container
	  diff        Inspect changes to files or directories on a container's filesystem
	  exec        Run a command in a running container
	  export      Export a container's filesystem as a tar archive
	  inspect     Display detailed information on one or more containers
	  kill        Kill one or more running containers
	  logs        Fetch the logs of a container
	  ls          List containers
	  pause       Pause all processes within one or more containers
	  port        List port mappings or a specific mapping for the container
	  prune       Remove all stopped containers
	  rename      Rename a container
	  restart     Restart one or more containers
	  rm          Remove one or more containers
	  run         Run a command in a new container
	  start       Start one or more stopped containers
	  stats       Display a live stream of container(s) resource usage statistics
	  stop        Stop one or more running containers
	  top         Display the running processes of a container
	  unpause     Unpause all processes within one or more containers
	  update      Update configuration of one or more containers
	  wait        Block until one or more containers stop, then print their exit codes

1.运行容器

USAGE:
	docker container run [OPTIONS] IMAGE [COMMAND] [ARG...]
	
OPTIONS:
    -a  : 指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项
    -d  : 后台运行容器,并返回容器ID
    -i  : 以交互模式运行容器,通常与 -t 同时使用
    -p  : 端口映射,格式为:主机(宿主)端口:容器端口
    -P  : 开启镜像所有端口随机映射要宿主机
    -t  : 为容器重新分配一个伪输入终端,通常与 -i 同时使用
    -h  : 指定容器的hostname
    -e  : username="ritchie" 设置环境变量
    -m  : 设置容器使用内存最大值
    -v  : 绑定挂载目录
    --name     : --name="nginx-lb" 为容器指定一个名称
    --dns      : --dns=8.8.8.8 指定容器使用的DNS服务器,默认和宿主一致
    --dns-search : 指定容器DNS搜索域名,默认和宿主一致
    --env-file : 从指定文件读入环境变量;
    --cpuset   : --cpuset="0-2" or --cpuset="0,1,2": 绑定容器到指定CPU运行;
    --net      : --net="bridge": 指定容器的网络连接类型,支持 bridge/host/none/container 四种类型
    --link     : 添加链接到另一个容器
    --expose   : 开放一个端口或一组端口

eg:
    #使用镜像nginx:latest以后台模式启动一个容器,并将容器命名为mynginx
    docker container run --name mynginx -d nginx:latest    

    #使用镜像nginx:latest以后台模式启动一个容器,并将容器的80端口映射到主机随机端口
    docker container run --name mynginx -P -d nginx:latest

    #使用镜像nginx:latest,以后台模式启动一个容器,将容器的 80 端口映射到主机的 8080 端口,主机的目录 /usr/data 映射到容器的 /data
    docker container run --name mynginx -p 127.0.0.1:8080:80 -v /usr/data:/data

    #使用镜像nginx:latest以交互模式启动一个容器,在容器内执行/bin/bash命令
    docker container run --name mynginx -it nginx:latest /bin/bash 

2.创建容器

USAGE:
	docker container create [OPTIONS] IMAGE [COMMAND] [ARG...]
eg:
	docker container create --name mynginx nginx:latest     #创建容器但不运行

3.启动容器

USAGE:
	docker container start [OPTIONS] CONTAINER [CONTAINER...]
eg:
	docker container start mynginx

4.停止容器

USAGE:
	docker container stop [OPTIONS] CONTAINER [CONTAINER...]
eg:
	docker container stop mynginx

5.重启容器

USAGE:
	docker container restart [OPTIONS] CONTAINER [CONTAINER...]
eg:
	docker container restart mynginx

6.杀掉容器

USAGE:
	docker container kill [OPTIONS] CONTAINER [CONTAINER...]

OPTIONS:
	-s :向容器发送一个信号

eg:
	docker container kill -s KILL mynginx		 #杀掉运行中的容器mynginx 

7.暂停容器

USAGE:
	docker container pause CONTAINER [CONTAINER...]
eg:
	docker container pause mynginx

8.恢复容器

USAGE:
	docker container unpause CONTAINER [CONTAINER...]
eg:
	docker container unpause mynginx

9.删除容器

USAGE:
	docker container rm [OPTIONS] CONTAINER [CONTAINER...]

OPTIONS:
	-f :通过SIGKILL信号强制删除一个运行中的容器
    -l :移除容器间的网络连接,而非容器本身
    -v :删除与容器关联的卷
    
eg:
	docker container rm mynginx        #删除mynginx容器,但容器在运行则删除失败
    docker container rm -f mynginx     #强制删除容器,运行中容器也能删除

10.查看容器

USAGE:
	docker container ls|ps|list [OPTIONS]

OPTIONS:
    -a :显示所有的容器,包括未运行的
    -f :根据条件过滤显示的内容
    -l :显示最近创建的容器
    -n :列出最近创建的n个容器
    -q :静默模式,只显示容器编号
    -s :显示总的文件大小
    --format   :指定返回值的模板文件
    --no-trunc :不截断输出
    
eg:
	docker container ps        #查看所有运行中的容器
    docker container ps -a     #查看所有容器,未运行的也显示
    docker container ps -n 5   #查看最近创建的5个容器
    docker container ps -a -q  #显示所有容器编号

11.容器信息查询

USAGE:
	docker container inspect [OPTIONS] CONTAINER [CONTAINER...]

OPTIONS:
    -f :指定返回值的模板文件
    -s :显示总的文件大小
    --type :为指定类型返回JSON
    
eg:
	docker container inspect mynginx
    docker container inspect -f {{.NetworkSettings.IPAddress}} mynginx          #显示ip,使用go模板
                                                                      #"."表示根,NetworkSettings段下的IPAddress信息,从inspect信息中提取

12.容器运行进程信息

USAGE:
	docker container top CONTAINER [ps OPTIONS]
eg:
	docker container top mynginx

13.获取容器日志

USAGE:
	docker container logs [OPTIONS] CONTAINER

OPTIONS:
	-f : 跟踪日志输出
    -t : 显示时间戳
    --since :显示某个开始时间的所有日志
    --tail  :仅列出最新N条容器日志

eg:
	docker container logs -f mynginx
    docker container logs --since="2018-08-01" --tail=10 mynginx

14.查看端口映射

USAGE:
	docker container port CONTAINER [PRIVATE_PORT[/PROTO]]
eg:
	docker container port mynginx      #查看mynginx容器开放的端口,前提是容器要开放端口才能查看到

15.容器与宿主机文件拷贝

USAGE:
	docker container cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH
	docker container cp [OPTIONS] SRC_PATH CONTAINER:DEST_PATH
eg:
	docker container cp mynginx:/usr  /tmp/     #将容器中的/usr目录拷贝到宿主机/tmp/下   

16.进入容器

USAGE:
   docker container exec [OPTIONS] CONTAINER COMMAND [ARG...]

OPTIONS:
   -d: 以后台方式执行命令
   -e: 设置环境变量
   -i: 交互模式
   -t: 设置TTY
   -u: 用户名或UID,例如myuser:myusergroup
   
eg:
   docker container exec -it mynginx sh       #开启一个交互模式的终端

以上只是操作容器的一些入门操作,我小小总结了一下,有错误希望大家能指出,谢谢

更多的命令可参考: runoob

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值