服务器类型: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. 【luoguP1168】中位数

    题目链接 用一个大根堆和一个小根堆维护中位数即可 #include<iostream> #include<cstring> #include<cstdio> #in ...

  2. centos 升级openSSH7.81

    1.下载相关依赖包 [root@Log ~]# yum install -y gcc openssl-devel pam-devel rpm-build 2.下载安装包 wget http://ftp ...

  3. ECMAScript6之Class

    1.Class的基本语法 1.1简介 基本上,ES6 的class可以看作只是一个语法糖,它的绝大部分功能,ES5 都可以做到,新的class写法只是让对象原型的写法更加清晰.更像面向对象编程的语法而 ...

  4. String.format()的详细用法

    问题 在开发的时候一段字符串的中间某一部分是需要可变的 比如一个Textview需要显示”XXX用户来自 上海 年龄 21 性别 男” 其中的 XXX 是用户名 每个用户也是不一样的 地区 上海 为可 ...

  5. Android Studio 之 ROM【2】, LiveData+ViewModel+AsyncTask+Repository

    改造上一节 ROM[1], 1.利用 LiveData<List<Word>> 与 observe 中的 onChanged 配合,删除掉之前的textView更新函数(upd ...

  6. python安装 hanlp +使用 坑坑坑。。。填填填。。。

    刚开始用都不知道要怎么安装,包括什么文件.百度了下发现正常安装就可以用,不用下多余的东西,但是但是但是但是但是但是但是但是 用pycharm安装不行,pip安装不行,也是见鬼了. 解决方法: 1.手动 ...

  7. 你不知道的js——数组 join

    你可能对使用数组的 join 方法已经轻车熟路,但你也许不知道: 10.If element0 is undefined or null, let R be the empty String; oth ...

  8. ZYNQ笔记(4):PL触发中断

    一.ZYNQ中断框图 PL到PS部分的中断经过ICD控制器分发器后同时进入CPU1 和CPU0.从下面的表格中可以看到中断向量的具体值.PL到PS部分一共有20个中断可以使用.其中4个是快速中断.剩余 ...

  9. C# SQl通过对视图数据二次查询,统计数据

    问题描述: 原数据---------需要在原视图数据中,统计出每个Device_Num设备号下面的交易的总额和分别统计出微信支付宝的交易总额. 解决:从上图数据没办法使用直接查询出要求的数据. .1. ...

  10. java基础 接口常量

    /** * 接口当中也可以定义"成员变量", 但是必须使用public static final三个关键字进行修饰 * 从效果上看,这其实就是接口的[常用] * 格式: * pub ...