目录

前言

Docker的三大核心概念:镜像、容器、仓库

1.设置docker自启动

2.docker的启动、停止、重启

3.docker镜像

docker push 推送本地镜像到服务器。

查看镜像

4.docker创建一个容器

5.查看docker容器

6.启动、停止、重启、删除docker容器

7.进入docker容器

8.查看容器日志

9.Docker网络操作

10.Docker拷贝操作

结语


前言

大家都知道docker的作用有一下这些:

1、更好地利用资源;

2、为微服务定制;

3、在云服务提供商之间方便移植;

4、方便利用API端;

5、便于技术的创新

Docker的三大核心概念:镜像、容器、仓库

镜像:类似虚拟机的镜像、用俗话说就是安装文件。

容器:类似一个轻量级的沙箱,容器是从镜像创建应用运行实例,可以将其启动、开始、停止、删除、而这些容器都是相互隔离、互不可见的。

仓库:类似代码仓库,是Docker集中存放镜像文件的场所。

1.设置docker自启动

使用yum安装好docker后,设置开机启动。

[root@CentOS ~]# systemctl enable docker

2.docker的启动、停止、重启

[root@localhost ~]# service docker restart
Redirecting to /bin/systemctl restart docker.service
[root@localhost ~]# service docker stop
Redirecting to /bin/systemctl stop docker.service
[root@localhost ~]# service docker start
Redirecting to /bin/systemctl start docker.service

3.docker镜像

docker search <image>用于搜索线上镜像仓库,这样就可以搜索出在Docker Hub上所有带redis的公共的可用镜像。

[root@CentOS ~]# docker search redis
INDEX       NAME                                           DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
docker.io   docker.io/redis                                Redis is an open source key-value store th...   5472      [OK]
docker.io   docker.io/bitnami/redis                        Bitnami Redis Docker Image                      82                   [OK]
docker.io   docker.io/sameersbn/redis                                                                      68                   [OK]
docker.io   docker.io/tenstartups/redis-commander                                                          32                   [OK]
docker.io   docker.io/hypriot/rpi-redis                    Raspberry Pi compatible redis image             31
docker.io   docker.io/kubeguide/redis-master               redis-master with "Hello World!"                25
docker.io   docker.io/kubeguide/guestbook-redis-slave      Guestbook redis slave                           20
docker.io   docker.io/redislabs/redis                      Clustered in-memory database engine compat...   15
docker.io   docker.io/webhippie/redis                      Docker images for redis                         9                    [OK]
docker.io   docker.io/arm32v7/redis                        Redis is an open source key-value store th...   7
docker.io   docker.io/rediscommander/redis-commander       Alpine image for redis-commander - Redis m...   7                    [OK]
docker.io   docker.io/oliver006/redis_exporter              Prometheus Exporter for Redis Metrics. Su...   5
docker.io   docker.io/rtoma/logspout-redis-logstash        Logspout including Redis adapter for sendi...   5
docker.io   docker.io/centos/redis-32-centos7              Redis in-memory data structure store, used...   3
docker.io   docker.io/dynomitedb/redis                     Redis backend for DynomiteDB.                   2                    [OK]
...

docker pull <image>拉取服务器镜像仓库里的镜像。

[root@CentOS ~]# docker pull redis
Using default tag: latest
Trying to pull repository docker.io/library/redis ...
latest: Pulling from docker.io/library/redis
be8881be8156: Pull complete
d6f5ea773ca3: Pull complete
735cc65c0db4: Pull complete
ff89c30e4d8c: Pull complete
59bf782a86b3: Pull complete
ce8aaa9fe90a: Pull complete
Digest: sha256:096cff9e6024603decb2915ea3e501c63c5bb241e1b56830a52acfd488873843
Status: Downloaded newer image for docker.io/redis:latest

不指定版本,默认会下载最新的一个版本。由于官方的镜像在国外,有时网速较慢,所以推荐下载国内的镜像,比如阿里云,网易云。

docker push 推送本地镜像到服务器。

[root@CentOS ~]# docker push

查看镜像

docker images:列出imagesdocker images -a:列出所有的images(包含历史)docker images --tree :显示镜像的所有层(layer)docker rmi  <image ID>:删除一个或多个image

4.docker创建一个容器

上面介绍了docker镜像的拉取,我们接下来看下如何创建一个容器。

docker run 命令格式

Usage: docker run [OPTIONS] IMAGE [COMMAND] [ARG...]  -d, --detach=false         指定容器运行于前台还是后台,默认为false   -i, --interactive=false   打开STDIN,用于控制台交互  -t, --tty=false            分配tty设备,该可以支持终端登录,默认为false  -u, --user=""              指定容器的用户  -a, --attach=[]            标准输入输出流和错误信息(必须是以非docker run -d启动的容器)-w, --workdir=""           指定容器的工作目录 -c, --cpu-shares=0        设置容器CPU权重,在CPU共享场景使用  -e, --env=[]               指定环境变量,容器中可以使用该环境变量  -m, --memory=""            指定容器的内存上限  -P, --publish-all=false    指定容器暴露的端口  -p, --publish=[]           指定容器暴露的端口 -h, --hostname=""          指定容器的主机名  -v, --volume=[]            给容器挂载存储卷,挂载到容器的某个目录  --volumes-from=[]          给容器挂载其他容器上的卷,挂载到容器的某个目录--cap-add=[]               添加权限,权限清单详见:http://linux.die.net/man/7/capabilities  --cap-drop=[]              删除权限,权限清单详见:http://linux.die.net/man/7/capabilities  --cidfile=""               运行容器后,在指定文件中写入容器PID值,一种典型的监控系统用法  --cpuset=""                设置容器可以使用哪些CPU,此参数可以用来容器独占CPU  --device=[]                添加主机设备给容器,相当于设备直通  --dns=[]                   指定容器的dns服务器  --dns-search=[]            指定容器的dns搜索域名,写入到容器的/etc/resolv.conf文件  --entrypoint=""            覆盖image的入口点  --env-file=[]              指定环境变量文件,文件格式为每行一个环境变量  --expose=[]                指定容器暴露的端口,即修改镜像的暴露端口  --link=[]                  指定容器间的关联,使用其他容器的IP、env等信息  --lxc-conf=[]              指定容器的配置文件,只有在指定--exec-driver=lxc时使用  --name=""                  指定容器名字,后续可以通过名字进行容器管理,links特性需要使用名字  --net="bridge"             容器网络设置:bridge 使用docker daemon指定的网桥     host     //容器使用主机的网络  container:NAME_or_ID  >//使用其他容器的网路,共享IP和PORT等网络资源  none 容器使用自己的网络(类似--net=bridge),但是不进行配置 --privileged=false         指定容器是否为特权容器,特权容器拥有所有的capabilities  --restart="no"             指定容器停止后的重启策略:no:容器退出时不重启  on-failure:容器故障退出(返回值非零)时重启 always:容器退出时总是重启  --rm=false                 指定容器停止后自动删除容器(不支持以docker run -d启动的容器)  --sig-proxy=true           设置由代理接受并处理信号,但是SIGCHLD、SIGSTOP和SIGKILL不能被代理 

实例:

[root@CentOS ~]# docker run -p 8090:8080 -p 50000:50000 --restart always --link Redis:redis --name jenkins -v /home/jenkins:/home/jenkins_home --privileged=true dokcer.io/jenkins/jenkins

-p:把容器的8080端口映射到宿主机8090上

-v:主机的目录/home/jenkins映射到容器的目录/home/jenkins_home

--name:给容器起个名字jenkins,docker.io/jenkins/jenkins是你下载的镜像

--restart:always 容器退出时总是重启

  --privileged=true:挂载主机目录Docker访问出现Permission denied的解决办法

--link:为redis容器起个别名Redis,访问的时候使用别名Redis

5.查看docker容器

docker ps      #查看正在运行的容器

[root@CentOS ~]# docker ps
CONTAINER ID        IMAGE                       COMMAND                  CREATED             STATUS              PORTS                                              NAMES
faa1b0be4e0b        docker.io/jenkins/jenkins   "/sbin/tini -- /us..."   15 hours ago        Up 4 seconds        0.0.0.0:8080->8080/tcp, 0.0.0.0:50000->50000/tcp   jenkins

docker ps -a   #查看所有容器

[root@CentOS ~]# docker ps -a
CONTAINER ID        IMAGE                       COMMAND                  CREATED             STATUS                       PORTS                                              NAMES
45af2f4d1f82        docker.io/redis             "docker-entrypoint..."   15 hours ago        Exited (255) 3 minutes ago   0.0.0.0:6378->6379/tcp                             redis1
ffa152fb76cc        docker.io/redis             "docker-entrypoint..."   15 hours ago        Exited (255) 3 minutes ago   0.0.0.0:6379->6379/tcp                             redis
faa1b0be4e0b        docker.io/jenkins/jenkins   "/sbin/tini -- /us..."   15 hours ago        Up 2 minutes                 0.0.0.0:8080->8080/tcp, 0.0.0.0:50000->50000/tcp   jenkins

6.启动、停止、重启、删除docker容器

根据id和name对容器进行操作

#启动容器
docker start <ContainerId(或者name)>
#停止容器
docker stop <ContainerId(或者name)>
#重启容器
docker restart <ContainerId(或者name)>
#删除容器
docker rm <ContainerId(或者name)>
#删除所有容器
docker rm $(docker ps -a -q)

7.进入docker容器

#进入容器
docker exec -it containerID /bin/bash

ctrl+d 退出容器且关闭

ctrl+p+q 退出容器但不关闭

8.查看容器日志

docker logs -f -t --tail 行数 容器名

[root@CentOS ~]# docker logs -f -t --tail 10 redis #查看容器最后10行日志
2018-08-09T05:55:16.204504000Z 1:C 09 Aug 05:55:16.135 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
2018-08-09T05:55:16.205232000Z 1:C 09 Aug 05:55:16.151 # Redis version=4.0.10, bits=64, commit=00000000, modified=0, pid=1, just started
2018-08-09T05:55:16.205822000Z 1:C 09 Aug 05:55:16.151 # Warning: no config file specified, using the default config. In order to specify a config file use redis-server /path/to/redis.conf
2018-08-09T05:55:16.206545000Z 1:M 09 Aug 05:55:16.199 * Running mode=standalone, port=6379.
2018-08-09T05:55:16.207152000Z 1:M 09 Aug 05:55:16.200 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
2018-08-09T05:55:16.207713000Z 1:M 09 Aug 05:55:16.200 # Server initialized
2018-08-09T05:55:16.208315000Z 1:M 09 Aug 05:55:16.200 # WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
2018-08-09T05:55:16.209055000Z 1:M 09 Aug 05:55:16.201 # WARNING you have Transparent Huge Pages (THP) support enabled in your kernel. This will create latency and memory usage issues with Redis. To fix this issue run the command 'echo never > /sys/kernel/mm/transparent_hugepage/enabled' as root, and add it to your /etc/rc.local in order to retain the setting after a reboot. Redis must be restarted after THP is disabled.
2018-08-09T05:55:16.209806000Z 1:M 09 Aug 05:55:16.201 * DB loaded from disk: 0.000 seconds
2018-08-09T05:55:16.210405000Z 1:M 09 Aug 05:55:16.202 * Ready to accept connections

9.Docker网络操作

#在主机上创建一个网络
docker network create mynet#查看自定义bridge网络
docker network inspect mynet#移除网络要求网络中所有的容器关闭或断开与此网络的连接时,才能够使用移除命令
docker network disconnet mynet 容器ID#移除网络
docker network rm mynet

10.Docker拷贝操作

宿主机和容器之间的拷贝操作使用 docker cp 命令,并且无论容器是否启动都生效

# 1.文件从宿主机拷贝到容器:    docker cp 宿主机文件路径   容器名:存放路径
docker cp /home/jenkins/test.txt jenkins:/var/jenkins_home# 2.文件从容器拷贝到宿主机   docker cp 容器名:要拷贝的文件路径  宿主机存放路径
docker cp jenkins:/var/jenkins_home/test.txt /home/jenkins 

结语

希望所有看到这里的小伙伴都能再坚持坚持,至于压力,一般来自三个方面:行业变化带来的职业危机压力;公司团队带来的工作任务压力;自身成长带来的能力恐慌压力。而能力的成长带来的压力是始终存在的。任何工作都是一样,干一行爱一行,既然选择了你就应该去努力提升自己的实力来把压力值降到最低。

衷心感谢每一个认真阅读我文章的人

软件测试——Docker基本命令汇总相关推荐

  1. Docker基本命令汇总

    Docker的三大核心概念:镜像.容器.仓库 镜像:类似虚拟机的镜像.用俗话说就是安装文件. 容器:类似一个轻量级的沙箱,容器是从镜像创建应用运行实例,可以将其启动.开始.停止.删除.而这些容器都是相 ...

  2. 专业软件测试面试题汇总

    专业软件测试面试题汇总 一.如何保证测试用例能达到全部覆盖? 1.需要测试人员有丰富的测试经验 2.需求分析透彻,已确定好测试范围 3.通过测试用例评审 二.版本测试通过的标准是什么? 1.用例测试通 ...

  3. Docker资源汇总

    Docker 资源汇总 Docker 资源 Docker 官方主页: https://www.docker.com Docker 官方博客: https://blog.docker.com/ Dock ...

  4. Docker基本命令

    Docker基本命令 文章目录 Docker基本命令 基本命令 查看Docker 版本 `docker version` 查看Docker系统信息 `docker info` Docker查看帮助文档 ...

  5. Docker疑难杂症汇总

    Docker 迁移存储目录 Docker 设备空间不足 Docker 缺共享链接库 Docker 容器文件损坏 Docker 容器优雅重启 Docker 容器无法删除 Docker 容器中文异常 Do ...

  6. linux返回用户主目录的命令有哪些,Linux基本命令汇总 - 持续更新

    Linux基本命令汇总 一.Linux管理文件和目录的命令 点击如下标题,会自动跳转到该命令详解 ~ 1.  pwd命令 2.  cd命令 3.  ls命令 4.  cat命令 5.  grep命令 ...

  7. 2020最新软件测试面试题汇总【内附参考答案】,拼多多面试官看了都说,卧槽!!!

    2020最新软件测试面试题汇总[内附参考答案] 测试技术面试题 1.什么是兼容性测试?兼容性测试侧重哪些方面? 参考答案: 兼容测试主要是检查软件在不同的硬件平台.软件平台上是否可以正常的运行,即是通 ...

  8. Docker基本命令(二)之 容器卷使用、DockerFile

    目录 相关阅读 前言 容器数据卷 使用容器数据卷 挂载 查询 具名和匿名挂载 权限 使用Dockerfile实现挂载 实战:mysql挂载容器卷 实战:mysql容器间共享数据 DockerFile ...

  9. docker 命令汇总

    命令汇总 docker history fa5 fa5为镜像id或者镜像名 docker export 30b >h.tar 30b为容器id或者容器名 # docker export angr ...

最新文章

  1. Android开发之使用SharedPreferences实现QQ登陆的选项框记忆功能(源代码分享)
  2. golang 获取struct类型_聊聊golang的类型断言
  3. php.ini 米拓_图片无法上传问题“大集结”-米拓建站帮助中心
  4. 道格拉斯算法 java_道格拉斯-普克算法的java的实现代码如下
  5. 给中国学生的第五封信 – 你有选择的权利
  6. AI从业几年还不具备提出新模型的技术能力?看这个就够了!
  7. 水彩手绘中华美食PNG素材,提高海报设计效率!
  8. cesium获取点击内容信息_Cesium获取鼠标点击位置(PickPosition)
  9. java中方法_java中的方法
  10. [蛋蛋插画日记]喂喂,看“表演”请砸钱币喔!
  11. 生活随记 - 2020国庆第三天
  12. 北京高考零分作文(结尾太搞了)终于懂了什么叫笑喷了
  13. 新的博客,新的开始。
  14. 信息学奥赛一本通 1033:计算线段长度
  15. Python IDLE 如何设置清屏功能(清屏快捷键,亲测可用)
  16. 有一个程序员男友是一种怎么样的体验?
  17. 免费模式破冰PC业瓶颈
  18. 排序评估指标——NDCG和MAP
  19. 嵌入式Web项目(二)——CGI的引入
  20. Spring Security + OAuth2.0

热门文章

  1. Mysql数据库【触发器】
  2. 消费者权益法规的精神
  3. js将base64图片处理成背景透明png
  4. Mysql磁盘空洞的成因以及重建表的几种方式
  5. UG8 安装指南,带详细教学视频
  6. 整个canvas玩一玩,做一个简单的水印相机小程序
  7. 计算机一级考试ps知识点,计算机一级考试PS备考训练题及答案
  8. 对接淘宝公共平台API
  9. 网易云音乐热评的规律,44万条数据告诉你
  10. Android 模拟器硬件加速