上文简单介绍了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. python 中excel表格的操作【转载】

    传说中python操作ms office功能最强大的是win32com,但只能要ms上使用. 不过对于比较简单的需求显得有些小题大作.那么来看下简单的,分别是xlrd和xlwt模块, 不过暂时只支持e ...

  2. 利用Javascript制作网页特效(其他常见特效)

    设置为首页和加入收藏夹 ①:在body标签内输入以下代码: <a onclick="this.style.behavior='url(#default#homepage)'; this ...

  3. vulnhub靶场之AI-WEB1.0渗透记录

    在本机电脑上自行搭建了一个练手的靶场,下面是记录渗透过程 目录 一.确认靶机ip 二.端口&目录扫描 三.查看敏感目录 四.sql注入 五.get shell 六.系统提权 确认靶机ip ka ...

  4. html输入框输入显示剩余字数

     效果图 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3 ...

  5. 织梦dedecms自由列表的"不使用目录默认主页"错误修正

    站长用织梦做站时常常发现织梦自由列表有个致命的问题: 即修改"不使用目录默认主页"就永远不会自己勾选啦 打开这个文件 makehtml_freelist_action.php 搜索 ...

  6. MySQL常用SQL语句1

    -- 创建表 CREATE TABLE USER ( -- id默认每个表都该拥有(非空 不重复) -- (id是每一行的唯一标识) -- 其他字段可能会重复,我们无法依赖其他的字段去确定某一行记录 ...

  7. js实现购物车左滑删除

    使用 js 和jquery动画实现购物车左滑,请引入jquery库,不然会报错哦! 首页编写页面,注意布局,滑动分成两部分,商品图片和信息放在一个布局,删除和移入收藏放在一起. 其中js用到了 tou ...

  8. [CF套题] CF-1201

    CF-1201 传送门 # = * A 500 B 1000 C 1500 D 2000 E1 2000 E2 1000 1 (2217) 1672 482 00:09 400 01:40 790 0 ...

  9. PAT(乙级)2020年春季考试

    比赛链接:https://pintia.cn/market/item/1287964475579875328 7-1 对称日 题解 模拟,注意年月日不足位在前面补零. 代码 #include < ...

  10. 【noi 2.6_9290】&【poj 2680】Computer Transformation(DP+高精度+重载运算符)

    题意:给一个初始值1,每步操作将1替换为01,将0替换为10.问N步操作后有多少对连续的0. 解法:f[i]表示第i步后的答案.可以直接打表发现规律--奇数步后,f[i]=f[i-1]*2-1;偶数步 ...