原文出处:https://blog.csdn.net/qq_29303759/article/details/87639016

镜像源及存放的路径的修改

镜像源修改

修改或新增 /etc/docker/daemon.json

vi /etc/docker/daemon.json

{
"registry-mirrors": ["https://pee6w651.mirror.aliyuncs.com"]
} systemctl daemon-reload
systemctl restart docker.service

Docker国内源说明:

Docker 官方中国区

https://registry.docker-cn.com

网易

http://hub-mirror.c.163.com

中国科技大学

https://docker.mirrors.ustc.edu.cn

阿里云

https://pee6w651.mirror.aliyuncs.com

存放路径修改

方法一:

vi /usr/lib/systemd/system/docker.service

找到

ExecStart=/usr/bin/dockerd 后面加 --graph /home/data/docker, 改成:

ExecStart=/usr/bin/dockerd --graph /home/data/docker

先执行systemctl daemon-reload是的文件生效, 再执行systemctl restart docker

方法二:

vim /etc/docker/daemon.json

加入如下参数: "graph":"/data/docker"

然后执行:systemctl daemon-reload

重启一下你的Docker: systemctl restart docker.service

最后用 docker info 命令查看是否修改成功。

启动docker

启动docker

systemctl start docker

守护进程重启

sudo systemctl daemon-reload

重启docker服务

systemctl restart docker

重启docker服务

sudo service docker restart

关闭docker

service docker stop

关闭docker

systemctl stop docker

避免输出Sudo

这里把当前用户加入到docker组就可以直接使用命令,而不用每次都加sudo

sudo groupadd docker

改完后需要重新登陆用户

sudo gpasswd -a ${USER} docker

Docker版本

sudo docker --version

当前Docker宿主机的信息

docker info

查看容器内部的进程信息

docker top [container]

Containers

ps

查看正在运行的容器,不加-l则只列出正在运行的container(比如后台任务)

 sudo docker ps

查看所有的容器

sudo docker ps -a

run

从指定image里生成一个container并在其中运行一个命令,

-d:在后台运行

–p:映射好内外端口,

--name:在容器时的名称

-v 'pwd':/usr/share/nginx/html :把运行容器的当前目录映射到/usr/share/nginx/html

docker run -d -p 80:80 --name myname -v 'pwd':/usr/share/nginx/html nginx:1.13

进入容器

进入一个已经启动的docker容器

docker exec -it ContainerID bash 这个命令exit退出,容器还在运行
docker attach ContainerID ,exit退出就会导致容器stop;按Ctrl+P+Q则容器还在运行

在容器中运行后台任务,只对正在运行的容器有效。

$ docker exec -d -p [container][cmd]
$ docker exec -d edison touch /home/haha

在容器中运行交付式任务,只对正在运行的容器有效。

$ docker exec -t -i edison /bin/bash

注:在/var/lib/docker中,可以查看Docker Image、Container和Volumes等细节信息。

start

再次运行某个container

docker start [container]

stop

中止后台任务container

docker stop [container]

rm

删除某个container

其中container_id不需要输入完整,只要能保证唯一即可。

运行中的Docker容器是无法删除的,必须先通过docker stop或者docker kill命令停止。

docker rm [container]
docker rm `docker ps -a -q` #删除所有容器,-q表示只返回容器的ID

commit

把容器中的对象转成镜像

docker commit 92 m1

logs

查看某个container的运行日志

docker logs [container]
docker logs -f [container] 类似tailf

inspect

查看container详情

docker inspect [container]

attach

切换到后台任务container, 需要当前容器正常运行

注意:切换到后台任务以后无法用Ctrl-C退出

docker attach [container]

指定名称

为容器指定名称,容器的名称是唯一

$ docker run --name edison -i -t ubuntu /bin/bash

有三种方式可以唯一指代容器

短UUID: 716d3c16dc65(12位)

长UUID:716d3c16dc654230ada14f555faadd036474231dfca0ca44b597574a5c618565(64位)

名称: edison

Images

pull

通过docker命令下载tutorial镜像

docker pull learn/tutorial

images

查看本地镜像

sudo docker images

run/stop

从镜像中运行/停止一个新实例

sudo docker run/stop containerID

search

搜索Docker Image

docker search tutorial

搜索网址是:index.docker.io [国内无法访问]

其他网址是:https://hub.docker.com/

rmi

删除images

docker rmi [image id]

push

将container保存为一个image

docker push [image_name]

原文出处:https://www.jianshu.com/p/10ed530766af

Dockerfile

部分 命令
基础镜像信息 FROM
维护者信息 MAINTAINER
镜像操作指令 RUN、COPY、ADD、EXPOSE、WORKDIR、ONBUILD、USER、VOLUME等
容器启动时执行指令 CMD、ENTRYPOINT

1 FROM

指定哪种镜像作为新镜像的基础镜像,如:

FROM ubuntu:14.04

2 MAINTAINER

指明该镜像的作者和其电子邮件,如:

MAINTAINER vector4wang "xxxxxxx@qq.com"

3 RUN

在新镜像内部执行的命令,比如安装一些软件、配置一些基础环境,可使用\来换行,如:

RUN echo 'hello docker!' \
> /usr/local/file.txt

也可以使用exec格式RUN ["executable", "param1", "param2"]的命令,如:

RUN ["apt-get","install","-y","nginx"]

要注意的是,executable是命令,后面的param是参数

4 COPY

将主机的文件复制到镜像内,如果目的位置不存在,Docker会自动创建所有需要的目录结构,但是它只是单纯的复制,并不会去做文件提取和解压工作。如:

COPY application.yml /etc/springboot/hello-service/src/resources

注意:需要复制的目录一定要放在Dockerfile文件的同级目录下

原因:

因为构建环境将会上传到Docker守护进程,而复制是在Docker守护进程中进行的。任何位于构建环境之外的东西都是不可用的。COPY指令的目的的位置则必须是容器内部的一个绝对路径。

---《THE DOCKER BOOK》

5 ADD

将主机的文件复制到镜像中,跟COPY一样,限制条件和使用方式都一样,如:

ADD application.yml /etc/springboot/hello-service/src/resources
但是ADD会对压缩文件(tar, gzip, bzip2, etc)做提取和解压操作。

6 EXPOSE

暴露镜像的端口供主机做映射,启动镜像时,使用-P参数来讲镜像端口与宿主机的随机端口做映射。使用方式(可指定多个):

EXPOSE 8080
EXPOSE 8081
...

7 WORKDIR

在构建镜像时,指定镜像的工作目录,之后的命令都是基于此工作目录,如果不存在,则会创建目录。如

WORKDIR /usr/local
WORKDIR webservice
RUN echo 'hello docker' > text.txt
...
最终会在/usr/local/webservice/目录下生成text.txt文件

8 ONBUILD

当一个包含ONBUILD命令的镜像被用作其他镜像的基础镜像时(比如用户的镜像需要从某为准备好的位置添加源代码,或者用户需要执行特定于构建镜像的环境的构建脚本),该命令就会执行。

如创建镜像image-A

FROM ubuntu
...
ONBUILD ADD . /var/www
...
然后创建镜像image-B,指定image-A为基础镜像,如 FROM image-A
...
然后在构建image-B的时候,日志上显示如下: Step 0 : FROM image-A
Execting 1 build triggers
Step onbuild-0 : ADD . /var/www
...

9 USER

指定该镜像以什么样的用户去执行,如:

USER mongo

10 VOLUME

用来向基于镜像创建的容器添加卷。比如你可以将mongodb镜像中存储数据的data文件指定为主机的某个文件。(容器内部建议不要存储任何数据)

如:

VOLUME /data/db /data/configdb

注意:VOLUME 主机目录 容器目录

11 CMD

容器启动时需要执行的命令,如:

CMD /bin/bash

同样可以使用exec语法,如

CMD ["/bin/bash"]

当有多个CMD的时候,只有最后一个生效。

12 ENTRYPOINT

ENTRYPOINT作用和用法和CMD一模一样,区别:

1 CMD的命令会被 docker run 的命令覆盖而ENTRYPOINT不会

2 CMD和ENTRYPOINT都存在时,CMD的指令变成了ENTRYPOINT的参数,并且此CMD提供的参数会被 docker run 后面的命令覆盖

13 build

使用当前目录的 Dockerfile 创建镜像,标签为 runoob/ubuntu:v1。

docker build -t runoob/ubuntu:v1 .

使用URL github.com/creack/docker-firefox 的 Dockerfile 创建镜像。

docker build github.com/creack/docker-firefox

也可以通过 -f Dockerfile 文件的位置:

$ docker build -f /path/to/a/Dockerfile .

在 Docker 守护进程执行 Dockerfile 中的指令前,首先会对 Dockerfile 进行语法检查,有语法错误时会返回:

$ docker build -t test/myapp .
Sending build context to Docker daemon 2.048 kB
Error response from daemon: Unknown instruction: RUNCMD

tar

Docker 本地导入镜像/保存镜像/载入镜像/删除镜像

1.docker导入本地镜像

我们可以把本地的镜像导入,使用docker import 命令。

cat alibaba-rocketmq-3.2.6.tar.gz | docker import - rocketmq:3.2.6(镜像名自己定义)

注意镜像文件必须是tar.gz类型的文件。

2.保存镜像

使用docker save命令,保存镜像到本地。

 docker save -o rocketmq.tar rocketmq ##-o:指定保存的镜像的名字;rocketmq.tar:保存到本地的镜像名称;rocketmq:镜像名字
 或docker save rocketmq > rocketmq.tar

通过"docker images"查看,然后可以通过ll查看到本地的rocketmq.tar文件

3.载入镜像

使用docker load将本地保存的镜像再次导入docker中

docker load --input rocketmq.tar
或 docker load < rocketmq.tar

4.删除镜像

docker rmi -f image_id ##-f:表示强制删除镜像;image_id:镜像id

镜像命名规则,是系统名+系统版本+服务名+服务版本:代码版本,比如我centos 6.5系统安装了nginx 1.4.7版本,放入代码是2.0版本,那么容器命令规则为centos6.5-nginx-1.4.7:2.0.

安装elasticsearch、kibana

以下开始从阿里云拉取镜像

docker pull docker.elastic.co/elasticsearch/elasticsearch:7.3.0

创建运行

docker run -d --name es2 -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" 5acf0e8da90b

docker run --name kibana -d -p 5601:5601 -e ELASTICSEARCH_HOSTS=http://192.168.10.8:9200 kibana:7.3.0

Docker常用命令行的更多相关文章

  1. docker常用命令行集锦

    对工作中用到的docker命令行进行一个汇总,方便以后的命令行查询,同时也为了加强记忆,会把工作中用到的命令,持续更新上 1.查看私有仓库都有哪些镜像 curl -X GET http://10.27 ...

  2. Docker常用命令速查手册(华贵铂金版)

    原创声明:作者:Arnold.zhao  博客园地址:https://www.cnblogs.com/zh94 Docker常用命令速查手册 搜索仓库镜像 docker search nginx 获取 ...

  3. Docker(三)Docker常用命令

    Docker常用命令 帮助命令 # 显示 Docker 版本信息 docker version # 显示系统信息,包括镜像和容器的数量 docker info # 查看帮助文档 帮助文档地址:http ...

  4. 一张脑图整理Docker常用命令

    先上图: Dcoker基本概念 Docker 包括三个基本概念: 镜像(Image):Docker 镜像是一个特殊的文件系统,除了提供容器运行时所需的程序.库.资源.配置等文件外,还包含了一些为运行时 ...

  5. Docker | Docker常用命令学习笔记

    @ 目录 前言 1. 帮助命令: version.info.help 2. 镜像命令: images.search pull.rmi 3. 容器命令: pull.run ps.exit .ctrl+P ...

  6. docker常用命令、镜像命令、容器命令、数据卷,使用dockerFile创建镜像,dockefile的语法规则。

    一.docker常用命令? 1. 常用帮助命令 1.1 docker的信息以及版本号 /* docker info 查看docker的信息 images2 docker本身就是一个镜像. docker ...

  7. 『现学现忘』Docker常用命令 — 21、容器常用命令(三)

    目录 13.进入正在运行的容器并以命令行交互 (1)方式一 (2)方式二 (3)attach和exec的区别 14.从容器内拷贝文件到主机上 15.Docker常用命令小结 (1)容器生命周期管理 ( ...

  8. Linux 常用命令行

    Linux常用命令行 第一部分: cd命令 第二部分:文件操作 第三部分:压缩包操作

  9. 关于Docker 常用命令

    Docker 常用命令 分类列一下常用的CLI命令 仓库相关 search/ pull / push / login etc. 例:docker pull ubuntu 从仓库下载ubuntuimag ...

随机推荐

  1. Word 查找替换高级玩法系列之 -- 用替换功能删除空白区域

    当你遇到Word文档中时不时的出现一些空白区域的时候会怎么办呢?一个个删除吗?NO!NO!NO!!!那样也太慢了!仅使用替换功能就可以帮你一步搞定它! 下面这篇文档中含有半角空格.全角空格.不间断空格 ...

  2. wordpress 图片上传时发生了错误,请稍后再试 的解决办法

    前一天网站还是好好的,仅一天过后就显示图片无法上传,百思不得其解 上下百度,大多数帖子提供的解决办法对我都不适用,继续搜,最后发现一篇帖子中提到是wp-config的编码格式问题 想到昨天刚好修改了下 ...

  3. python-django-天天生鲜项目

    1 需求分析 github源码:https://www.github.com/wangyingchuang/dailyfresh 1.1  用户模块 1) 注册页 l  注册时校验用户名是否已被注册. ...

  4. Python笔记day20-面向对象

    目录 面向对象 1 装饰器 1.1 装饰器是什么? 1.2 装饰器 2 面向对象 (Object Oriented) 简称OO 2.1 面向对象相关术语 2.2 类和对象 2.3 类和对象的实现和书写 ...

  5. chrome中显示DNS_PROBE_FINISHED_NO_INTERNET无法上网,但是IE可以上

    以管理员方式运行cmd,执行如下命令 ipconfig /release ipconfig /all ipconfig /flushdns ipconfig /renew netsh int ip s ...

  6. 音视频入门-04-BMP图像四字节对齐的问题

    * 音视频入门文章目录 * BMP 图像四字节对齐 表示 BMP 位图中像素的位元是以行为单位对齐存储的,每一行的大小都向上取整为4字节(32 位 DWORD)的倍数.如果图像的高度大于 1,多个经过 ...

  7. 谷歌(google)广告尺寸大小列表

    在平时做网页模板时,我们需要计算Google AdSense 的尺寸,以确保它能和页面完美的结合,提高AdSense的点击率,进台后看又很麻烦,下面整理了Google 广告的各种尺寸,跟大家分享一下. ...

  8. .NetCore如何使用ImageSharp进行图片的生成

    ImageSharp是对NetCore平台扩展的一个图像处理方案,以往网上的案例多以生成文字及画出简单图形.验证码等方式进行探讨和实践. 今天我分享一下所在公司项目的实际应用案例,导出微信二维码图片, ...

  9. ASP.NET Core 入门(3)(单元测试Xunit及Shouldly的使用)

    一.本篇简单介绍下在ASP.NET Core项目如何使用单元测试,例子是使用VS自带的Xunit来测试Web API接口,加上一款开源的断言工具Shouldly,方便写出更简洁.可读行更好的测试代码. ...

  10. JDBC 复习2 存取mysql 大数据

    大数据也称之为LOB(Large Objects),LOB又分为:clob和blob,clob用于存储大文本,blob用于存储二进制数据 mysql的大数据分为2种 blob 和 text ,没有cl ...