服务器类型:linux =》centos 7.X以上版本

常用命令使用紫色加粗标明

1.安装yum-util(为配置docker安装时使用阿里镜像做准备):yum install -y yum-utils device-mapper-persistent-data lvm2

2.配置docker安装时使用阿里镜像:yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

3.安装docker-ce(社区版,因为企业版(dockker-ee)收费):yum install docker-ce

4.在此路径创建文件(没有此路径就自己创建):/etc/docker/daemon.json

  ·)编辑该文件:

    {
      "registry-mirrors":["https://docker.mirrors.ustc.edu.cn"]
    }

5.启动docker:systemctl start docker

6.查看docker运行状态:systemctl status docker

7.停止docker服务:systemctl stop docker

8.重启docker:systemctl restart docker

9.开机自启动docker:systemctl enable docker

====================以上为系统命令,以下为docker命令===================

10.查看docker本身的概要信息(需要先启动docker):docker info

----------------------------------①镜像相关-----------------------------------------

(镜像:可以类比成安装包,但是和安装包又不同,镜像删除后就对应程序不可以再使用了,安装包删除后只要之前执行了安装操作就可以随意删除,而不会影响程序运行)

11.查看镜像:docker images

12.搜索镜像:docker search 镜像名称

13.拉取镜像(默认拉取最新版本,也可加冒号去指定版本):docker pull 镜像名称

14.删除镜像(前提是对应镜像没有容器或停止容器):docker rmi 镜像id或名称

15.删除所有镜像(前提是所有镜像都不可以有启动着的容器):docker rmi `docker images -q`

----------------------------------②容器相关-----------------------------------------

(容器:给镜像进行分配运行时的环境资源也就是内存,可以类比成将安装包双击安装的操作。)

16.查看正在运行的容器:docker ps

17.查看所有容器:docker ps -a

18.查看最后一次运行的容器:docker ps -1

19.查看停止的容器:docker ps -f status=exited

20.创建容器:docker run

    ·)-i:表示运行容器

    ·)-t:表示容器启动后会进入其命令行

    ·)--name:为创建的容器命名

    ·)-v:表示目录映射关系

    ·)-p:表示端口映射,前者是宿主机端口,后者是容器内端口,可以有多个-p做多端口映射

    ·)-d:表示会创建一个守护式容器在后台运行,也就是后台运行,不进入对应命令行。(与 -t 相反)

21.交互式方式创建容器:docker run -it --name=自定义容器名称 镜像名称:标签 /bin/bash     //说明:也就是创建容器并运行在前台(一旦退出前台,对应容器也就停止运行)

22.守护式方式创建容器:docker run -di --name=自定义容器名称 镜像名称:标签                   //说明:也就是创建容器并运行在后台(进退无影响,推荐此方式)

    ·)进入容器:docker exec -it 容器名称 /bin/bash

23.停止容器:docker stop 容器名称或id

24.启动容器:docker start 容器名称或id

25.文件拷贝:·)将文件拷贝到容器内:docker cp 需要拷贝的文件或目录 容器名称:容器目录

       ·)将文件从容器内拷贝出去:docker cp 容器名称:容器目录 需要拷贝的文件或目录

26.目录挂载:docker run -di --name=自定义名称 -v 宿主机目录:容器目录 镜像名称:标签

27.查看容器ip:·)查看容器运行的各种数据:docker inspect 容器名称或id

       ·)只查看容器ip(也就是筛选出自己想要的数据):docker inspect --format='{.NetworkSettings.IPAddress}' 容器名称或id

28.删除容器(必须先停止容器):docker rm 容器名称或id

===================以上是docker操作,以下是docker中(开发)环境的搭建=======================

29.创建并启动mysql容器并进行端口映射mysql,远程连接:docker run -di --name=docker_mysql -p 宿主机端口:容器端口 -e MYSQL_ROOT_PASSWORD=自定义远程连接密码 centos/mysql-57-centos7(镜像名称)

30.创建并启动tomcat容器,并进行端口以及文件夹映射:docker run -di --name=docker_tomcat -p 8008:8080 -v /usr/local/webapps:/usr/local/tomcat/webapps tomcat:latest

31.创建并启动nginx容器,并进行端口映射:docker run -di --name=docker_nginx -p 80:80 nginx

  ·)修改访问nginx默认的静态资源:   (这个配置可有可无,为了不影响排版,所以图片只能放大了看唷,哦吼吼)

32.创建并启动redis容器,并进行端口映射:docker run -di --name=docker_redis -p 6379:6379 redis

  之后就可以在本地使用redis-cli链接远端redis进行操作了。

======================docker的备份与迁移=============================

33.将容器保存为镜像①:docker commit 要备份的容器名 备份后的镜像名

34.将镜像保存为tar文件②:docker save -o 打包成的文件名 备份后的镜像名

35.镜像的恢复与迁移③:docker load -i tar文件

======================Dockerfile脚本构建=============================

Dockerfile:根据基础镜像(操作系统,或者Dockerfile构建出来的新镜像),创建新的镜像(开发环境,项目等)。

使用Dockerfile脚本创建镜像的好处:

    ·)对于开发人员:可以为开发人员提供一个完全一致的开发环境,避免环境冲突。

    ·)对于测试人员:可以直接拿开发时构建的镜像或者通过原来的Dockerfile文件构建新的镜像开始工作。

    ·)对于运维人员:部署时,可以实现应用的无缝移植。

---Dockerfile常用命令,此脚本必须在Dockerfile文件中编辑,可以使用vim直接创建Dockerfile,文件名称固定---

36.FROM image_name:tag:使用哪个基础镜像启动构建流程           //使用前本地存在,不存在则自动下载

37.MAINTAINER 自定义username:声明镜像的创建者

38.ENV key value:配置环境变量,可以写多条。

39.RUN command:执行某个linux命令,Dockerfile中常用于创建目录,它Dockerfile核心部分,也可以写多条。

40.ADD source_dir/file dest_dir/file:将宿主机的文件复制到容器内,如果只压缩文件,将会在执行时自动解压。

41.COPY source_dir/file dest_dir/file:和ADD差不多,只是说有压缩文件时不会自动解压。

42.WORKDIR path_dir:设置工作目录。(基于哪个目录去工作)。

  栗子:以构建jdk1.8镜像为例:首先所在文件夹中存在jdk1.8的压缩包,然后使用vim在Dockerfile中编辑以下内容,以下除RUN命令下以外,其他所有文件和文件夹必须已经存在,。

    FROM centos:latest
    MAINTAINER myzyt
    WORKDIR /usr
    RUN mkdir /usr/local/java
    ADD jdk-8u221-linux-x64.tar.gz /usr/local/java/

    ENV JAVA_HOME /usr/local/java/jdk1.8.0_221
    ENV JRE_HOME $JAVA_HOME/jre
    ENV CLASSPATH $JAVA_HOME/bin/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH
    ENV PATH $JAVA_HOME/bin:$PATH

  最后执行该脚本:docker build -t='jdk1.8' .                 //其中'jdk1.8'表示新镜像名称, . 表示当前目录,用于指定Dockerfile文件所在文件夹。

========================docker私有仓库(registry)的配置==================================

43.拉取镜像:docker pull registry

44.创建私有仓库容器:docker run -di --name=registry -p 5000:5000 registry

45.编辑daemon.json文件,使docker信任私有仓库地址:vi /etc/docker/daemon.json

  ·)json中添加内容:"insecure-registries":["ip:5000"]

46.重启docker服务:systemctl restart docker

47.将镜像上传到私有仓库:

  ·)第一步:打标签,为上传做准备:docker tag jdk1.8 ip:5000/jdk1.8

  ·)第二步:启动docker私服:docker start registry

  ·)第三步:上传镜像:docker push ip:5000/jdk1.8

48.上传远程镜像:将第45条中编辑的本地ip改为远程ip或者添加新的配置。启动本地私服,直接执行上传第三步中的标签ip:5000/jdk1.8,更换为远程标签即可,其他步骤不变。

docker命令小全 this is my note.的更多相关文章

  1. docker命令补全

    安装docker自带包: source /usr/share/bash-completion/completions/docker 缺少下面的包,TAB会报错 yum install -y bash- ...

  2. Docker技术入门与实战 第二版-学习笔记-10-Docker Machine 项目-3-Command-line completion命令补全

    Command-line completion https://docs.docker.com/machine/completion/ Installing Command Completion——实 ...

  3. Docker 命令自动补全?要的

    前言 不知道这个小伙伴有多久没用过 Docker 了, 突然对我说 Docker 命令怎么发生变化了 docker run ... #变成了 docker container run ... 他说,本 ...

  4. Mac为docker和kubectl添加自动命令补全

    我最新最全的文章都在南瓜慢说 www.pkslow.com,欢迎大家来喝茶! 1 前言 自动命令补全是非常有用的功能,特别是当命令有特别多参数时.显然,docker/kubectl就是这样的命令.我们 ...

  5. linux常用命令与实例小全

    转至:https://www.cnblogs.com/xieguohui/p/8296864.html  linux常用命令与实例小全 阅读目录(Content) 引言 一.安装和登录 (一)    ...

  6. Docker Compose的安装及命令补全

    安装Compose Compose的安装有多种方式,例如通过shell安装.通过pip安装.以及将compose作为容器安装等等.本文讲解通过shell安装的方式.其他安装方式如有兴趣,可以查看Doc ...

  7. 安装Docker和下载images镜像和常用Docker命令

    我的是centos7,也会6的方法: $sudo yum install docker 直接yum安装contos7使用centos6.5先获取epel源并 启动Docker,并注册开机服务 [roo ...

  8. docker 命令汇集

    1,查看容器 docker ps [-a] #-a表示全全部否者仅显示运行的 2,登录容器 docker exec -it [containerId] /bin/bashdocker exec -it ...

  9. Docker命令行与守护进程如何交互?

    译者按: Docker是典型的C/S架构,其守护进程(daemon)与命令行(CLI)是通过REST API进行交互的. 原文: Understanding how the Docker Daemon ...

随机推荐

  1. 深入js系列-类型(隐式强制转换)

    隐式强制转换 在其可控的情况下,减少冗余,让代码更简洁,很多地方都进行了隐式转换,比如常见的三目表达式.if().for().while.逻辑运算符 || &&,适当通过语言机制,抽象 ...

  2. 浅谈HTTPS传输过程

    HTTPS是什么 HTTPS不是一个新的协议,可以理解为是一个HTTP协议的加密"版本"(HTTP+SSL(TLS)).那为什么HTTP协议需要加密,不加密会出现什么问题呢?先来了 ...

  3. 关于微信订阅号里自动回复里的a链接的问题

    前阵子做了一个微信订阅号的活动,然后发现一个问题:就是回复内容里的a标签微信没有解析出来,而是这样 正常应该是这样: 具体出现这种情况的手机有: 魅族的型号是:M1 metal小米的型号是:MI 5X ...

  4. python总结一

    1. python中的而标准数据类型: number(数字) string(字符串) list(列表) tuple(元祖) dic(字典) 其中数字类型有: python支持四种不同的数字类型: in ...

  5. 远程windows

    1. 起因 因为经常用teamviewer,所以断定我是商业用户,不允许我用了.想买一个授权,结果太贵了,1700多.使用了很多其他的,向日葵卡顿,有的窗口点不到,vnc慢,效果差,卡顿,还收费,等等 ...

  6. nginx+keepalived高可用及双主模式【h】

    高可用有2中方式. 1.Nginx+keepalived 主从配置 这种方案,使用一个vip地址,前端使用2台机器,一台做主,一台做备,但同时只有一台机器工作,另一台备份机器在主机器不出现故障的时候, ...

  7. kali渗透

    局域网-断网&劫持(kali)   1.查看局域网中的主机 fping –asg 192.168.1.0/24 2.断网 arpspoof -i wlan0 -t 192.168.100 19 ...

  8. DestroyImmediate和Destroy

    DestroyImmediate立即对对像进行销毁并从内存中移除: Destroy销毁场景中的物体,但内存中还存在,当令它需要销毁时,只是给一个标识.而内存中它依然是存在的,只有当内存不够,或一段时间 ...

  9. 【Go】go的日志框架-logrus初探

    summary logrus是针对go语言开发的一款日志系统,在本片文章中,将会对上手logrus的过程中遇到的一些问题做一个记录.这个记录参考了这篇文章.下面我们开始吧! 上手 package ma ...

  10. [终极巨坑]golang+vue开发日记【三】,登陆界面制作(二)

    写在前面 本期内容是承接上期已经做好了登陆界面来写的,不过本期是以golang为主,可能需要大家把最基本的语法结构熟悉一下:菜鸟教程.这样的话方便展开,自然而然的,本篇也是直接实战为主.这次需要依赖m ...