上文简单介绍了docker,这边记录一下docker的使用。

一、Docker启停

1、启动docker

systemctl start docker

  

2、关闭docker

systemctl stop docker

  

3、重启docker

systemctl restart docker

  

二、运行docker应用程序

docker run --name 容器名字 --rm -it -p [ip:]主机端口:容器端口 镜像名称 [命令]

  

run命令:如果本地有镜像,则直接运行,如果本地没有 ,则需要去镜像仓库获取,默认是docker hub。

更多命令可以使用docker run --help查看。

部分常用参数解析:

1、指定容器名,如果缺省,则随机分配

--name 容器名

2、启动交互

i表示交互式,t表示终端
-it

3、后台运行容器

-d

4、指定网络模式

--network:指定网络,连到同一个网络的容器可以互连

当需要多个程序互联组成一个app的话,需要指定网络模式为container

docker run --network=container:容器名或id 容器名[:tag]

  

5、配置dns
--dns=ip

例如:

docker run --dns=4.4.4.4

  

配置容器的搜索域
--dns-search=DOMAIN

当设定搜索域为 .example.com 时,在搜索一个名为 host 的主机时,DNS 不仅搜索 host,还会搜索 host.example.com。

6、设置容器的主机名

-h hostname

--h=hostname

7、指定映射宿主机端口

-p [ip:]宿主机端口:容器内部端口

例如:将容器内部80端口映射到宿主机8080端口

docker  run -p 8080:80 镜像名[:tag]

  

也可以使用,大写的P
-P

这样就是随机映射宿主机端口

8、容器停止后,自动删除容器

--rm

9、设置环境变量

-e key1=value1

也可从指定文件读取环境配置

--env-file=[]

10、设置运行的用户

-u 用户名

前提是容器内有这个用户

11、设置容器可使用的最大内存

-m 内存大小值

12、设置工作目录

-w 目录

13、绑定数据卷

-v [宿主机目录:]容器目录

如果只有一个目录,则是指定容器内的目录,此时会随机映射宿主机的目录。宿主机目录和容器目录里面的文件是共通的,也就是不论在哪一方添加修改文件,另一方都会感知。

也可以复用其他容器的卷的设置

-volumes-from 其他容器名或id

如果不绑定数据卷的话,在容器关闭的时候,数据也会随着容器死亡而删除,所以需要绑定数据卷将数据保存下来。

三、镜像使用

1、查看本地已有镜像

docker images

2、从docker hub中查找镜像

docker search 镜像名[:版本(也就是tag)]
例如:docker search nginx
docker search nginx:1.19.1

  

例如查找nginx

其中的OFFICIAL表示是否是官方提供的,因为docker hub上有很多第三方提供的镜像。

3、拉取镜像

docker pull 镜像名[:版本(也就是tag)]

  

比如获取一个mysql,如果不带tag,默认拉取tag为latest的镜像

拉取下来之后,就可以在本地看到mysql镜像了

4、删除镜像

docker rmi 镜像名[:版本(也就是tag)]

例如删除名为a,tag为latest的镜像

5、设置镜像标签

docker tag 镜像id或者原镜像名:原tag 镜像名:tag

  

例如:将mysql改成first_mysql:first,mysql的镜像id为0d64f46acfd1      
docker tag 0d64f46acfd1 first_mysql:first

docker tag mysql:latest first_mysql:first

  

 

设置标签会新增一个镜像,原有镜像不会删除或更改

6、创建镜像

有两种方式:

  • 1、从已经创建的容器中更新镜像,并且提交这个镜像
  • 2、使用 Dockerfile 指令来创建一个新的镜像

注:这边先介绍第一种(命令涉及到容器使用,所以在容器使用小结解说命令),第二种Dockerfile单独一篇说

启动一个nginx,映射到宿主机的8080端口。然后访问nginx首页,默认是如下

(1)运行一个容器 docker run --name nginx -p 8080:80 -d nginx

我需要进入容器将其改成其他页面并保存为一个镜像。

(2)进入容器 docker exec -it nginx /bin/bash

在根目录下创建lsy目录,并创建lsy.html文件

(3)修改nginx.conf文件

因为镜像默认没有vim工具 ,所以需要先后执行如下两个命令

1、更新安装源,获取最新安装包
apt-get update
2、安装vim
apt-get install vim

1、修改配置文件,将首页设置为自定义的lsy.html。

2、提交容器

docker commit -m="描述信息" -a="镜像作者" 容器id 要创建的目标镜像名

3、启动新建的容器,访问首页

docker run -it -p 8080:80 -d --name my_nginx  my_own_nginx:v1.0

  

 

四、容器使用

1、查看容器

(1)运行中的

docker ps

(2)所有运行过或正在运行的容器

docker ps -a

(3)最新一次运行的容器

docker ps -l

2、启停容器

容器id、容器名获取如下:docker ps -a

(1)启动运行过的容器(也就是docker ps -a 获取的)

docker start 容器id或容器名

(2)停止正在运行的容器

docker stop 容器id或容器名

docker kill 容器id或容器名

(3)重启容器

docker restart 容器id或容器名

3、进入后台运行中的容器

#退出后,容器会停止
docker attach 容器id #退出后,容器不会停止,推荐使用
#例如:docker exec -it 243c32535da7 /bin/bash
docker exec -it 容器id

4、导出和导入容器

(1)导出

docker export 容器id > 导出文件名.tar

(2)导入

docker import 镜像名称:版本

5、删除容器

docker rm -f 容器id或容器名

删除所有已经停止的容器

docker container prune

6、查看容器映射宿主机端口

docker port 容器id或容器名

7、查看容器日志

docker logs 容器id或容器名

8、查看容器进程id

docker top 容器id或容器名

9、查看容器全部信息

docker inspect 容器id或容器名

10、新建docker网络

docker network create -d docker网络类型 网络名称

  

-d:参数指定 Docker 网络类型

网络模式
配置
说明host–net=host
容器和宿主机共享Network namespace。container–net=container:容器名或id
容器和另外一个容器共享Network namespace。kubernetes中的pod就是多个容器共享一个Network namespace。none–net=none
容器有独立的Network namespace,但并没有对其进行任何网络设置,如分配veth pair 和网桥连接,配置IP等。bridge
–net=bridge(默认为该模式)

11、配置dns

可在主机上的/etc/docker/daemon.json文件增加如下内容来设置全部容器的DNS

{
"dns" : [
"114.114.114.114",
"8.8.8.8"
]
}

  

设置后,启动容器的 DNS 会自动配置为 114.114.114.114 和 8.8.8.8。配置完,需要重启 docker 才能生效

查看DNS是否生效:

docker run -it 镜像名[:tag]  cat etc/resolv.conf

  

12、实时查看docker占主机cpu和内存信息

docker stats

===============================

我是Liusy,一个喜欢健身的程序员。

获取更多干货以及最新消息,请关注公众号:上古伪神

如果对您有帮助,点个关注就是对我最大的支持!!!

Docker使用指南的更多相关文章

  1. Docker终极指南:为什么Docker能做这么多事

    Docker终极指南:为什么Docker能做这么多事 http://www.aboutyun.com/thread-11499-1-1.html

  2. Docker 使用指南 (四)—— 数据卷的使用

    一.数据卷的使用 有时候需要使用数据库,但是又希望它的数据能保存在本地,Docker中提供了数据卷可以供你方便的操作数据.数据卷是一个可供一个或多个容器使用的特殊目录,它绕过 UFS,可以提供很多有用 ...

  3. Docker 入门指南——常用命令

    前面已经介绍了 Docker 的安装方式,本文总结一下使用 Docker 的基本概念和常用命令. 基本概念 镜像 Image 镜像是一些打包好的已有的环境,可以被用来启动和创建容器 容器 Contai ...

  4. [转载]Docker 完全指南

    Docker 完全指南 原作者地址: https://wdxtub.com/2017/05/01/docker-guide/  发表于 2017-05-01 |  更新于 2017-08-03 |   ...

  5. Docker 入门指南

    Docker 入门指南 目录 基础概念 安装教程 基本操作 常用安装 构建操作 容器编排 壹.基础概念 什么是Docker? Docker是基于Go开发的应用容器引擎,属于 Linux 容器的一种封装 ...

  6. 斌哥的 Docker 进阶指南

    过去的一年中,关于 Docker 的话题从未断过,而如今,从尝试 Docker 到最终决定使用 Docker 的转化率依然在逐步升高,关于 Docker 的讨论更是有增无减.另一方面,大家的注意力也渐 ...

  7. docker入门指南(转载)

    原文: http://bg.biedalian.com/2014/11/20/docker-start.html 关于 docker 今天云平台的同事提到, 现在的运维就是恶性循环, 因为大家都在申请 ...

  8. Docker 使用指南 (二)—— 搭建本地仓库

    版权声明:本文由田飞雨原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/94 来源:腾云阁 https://www.qclou ...

  9. Docker 使用指南 (一)—— 基本操作

    版权声明:本文由田飞雨原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/98来源:腾云阁 https://www.qcloud ...

  10. Docker 使用指南 (六)—— 使用 Docker 部署 Django 容器栈

    版权声明:本文由田飞雨原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/98 来源:腾云阁 https://www.qclou ...

随机推荐

  1. Java——break,continue,return语句

    break语句: break:用于改变程序控制流 用于do-while.while.for中时,可跳出循环而执行循环后面的语句. break的作用:终止当前循环语句的执行. break还可以用来终止s ...

  2. K8s 一、(1、容器基本概念 2、k8s基本概念 )

    1.容器基本概念 容器其实就是一种特殊的进程,容器是一个 '单进程'模型. Namespace :隔离 Namespace 技术实际上修改了应用进程看待整个计算机"视图",即它的& ...

  3. Ajax(简介、基础操作、计算器,登录验证)

    Ajax简介 Ajax 即"Asynchronous Javascript And XML"(异步 JavaScript 和 XML),是指一种创建交互式网页应用的网页开发技术. ...

  4. 绿盟UTS综合威胁探针管理员任意登录

    绿盟UTS综合威胁探针管理员任意登录 漏洞详情: 绿盟全流量威胁分析解决方案针对原始流量进行采集和监控,对流量信息进行深度还原.存储.查询和分析,可以及时掌握重要信息系统相关网络安全威胁风险,及时检测 ...

  5. hadoop知识点总结(一)hadoop架构以及mapreduce工作机制

    1,为什么需要hadoop 数据分析者面临的问题 数据日趋庞大,读写都出现性能瓶颈: 用户的应用和分析结果,对实时性和响应时间要求越来越高: 使用的模型越来越复杂,计算量指数级上升. 期待的解决方案 ...

  6. python flask_sqlalchemy 多态 polymorphic 实现单表继承

    sqlalchemy 多态 polymorphic 实现单表继承 sqlaclchemy中的单表继续就是以一个模型类为基类,其他模型类继承基类,所有模型类的的数据都存一张表里面(也可以是多张,只不过基 ...

  7. LINUX中备份mysql数据库

    1.在LINUX中创建备份目录 如:/home/backup   2.把sh脚本放到备份目录下   脚本如下 https://wws.lanzous.com/i1oCxlccapa密码:dter   ...

  8. Jenkins(6)测试报告邮件发送

    前言 前面已经实现在jenkins上展示html的测试报告,接下来只差最后一步,把报告发给你的领导,展示你的劳动成果了. 安装 Email Extension Plugin 插件 jenkins首页- ...

  9. spark提交命令 spark-submit 的参数 executor-memory、executor-cores、num-executors、spark.default.parallelism分析

    转载:https://blog.csdn.net/zimiao552147572/article/details/96482120 nohup spark-submit --master yarn - ...

  10. 小希的迷宫B - B

    上次Gardon的迷宫城堡小希玩了很久(见Problem B),现在她也想设计一个迷宫让Gardon来走.但是她设计迷宫的思路不一样,首先她认为所有的通道都应该是双向连通的,就是说如果有一个通道连通了 ...