天天看点

Docker ->(个人学习记录笔记)

@

目录

Docker基本使用

核心概念

docker常用命令

镜像操作

修改镜像源

容器操作

普通用户运行docker

Docker是一个开源的应用容器引擎;是一个轻量级容器技术;

Docker支持将软件编译成一个镜像;然后在镜像中各种软件做好配置,将镜像发布出去,其他使用者可以直接使用这个镜像;

运行中的这个镜像称为容器,容器启动是非常快速的。

Docker ->(个人学习记录笔记)

<code>docker主机(Host)</code>:安装了Docker程序的机器(Docker直接安装在操作系统之上);

<code>docker客户端(Client)</code>:连接docker主机进行操作;

<code>docker仓库(Registry)</code>:用来保存各种打包好的软件镜像;

<code>docker镜像(Images)</code>:软件打包好的镜像;放在docker仓库中;

<code>docker容器(Container)</code>:镜像启动后的实例称为一个容器;容器是独立运行的一个或一组应用

Docker ->(个人学习记录笔记)

使用Docker的步骤:

确认要安装docker的系统的linux内核高于<code>3.10</code>,低于3.10使用<code>yum update</code>更新

安装docker

查看docker版本

查看docker状态

启动docker

停止docker

设置docker开机自启

Docker ->(个人学习记录笔记)

操作

命令

说明

检索

docker search 关键字 eg:docker search redis

我们经常去docker hub上检索镜像的详细信息,如镜像的TAG。

拉取

docker pull 镜像名:tag

:tag是可选的,tag表示标签,多为软件的版本,默认是latest

列表

docker images

查看所有本地镜像

删除

docker rmi image-id

删除指定的本地镜像

Docker ->(个人学习记录笔记)

修改 <code>/etc/docker/daemon.json</code> ,写入如下内容(如果文件不存在请新建该文件)

国内镜像源

地址

Docker 官方中国区

https://registry.docker-cn.com

网易

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

中国科技大学

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

阿里云

https://pee6w651.mirror.aliyuncs.com

Docker ->(个人学习记录笔记)

以tomcat为例:

下载tomcat镜像

根据镜像启动容器,不加TAG默认latest,如果没有下载latest会先去下载再启动

<code>--name</code>:给容器起个名字

<code>-d</code>:后台启动,不加就是前端启动,然后你就只能开一个新的窗口连接,不然就望着黑乎乎的窗口,啥也干不了,<code>Ctrl+C</code>即可退出,当然,容器也会关闭

查看运行中的容器

停止运行中的容器

查看所有的容器

启动容器

删除一个容器

启动一个做了端口映射的tomcat

<code>-d</code>:后台运行

<code>-p</code>: 将主机的端口映射到容器的一个端口 主机端口(8888):容器内部的端口(8080)

外界通过主机的8888端口就可以访问到tomcat,前提是8888端口开放

关闭防火墙

查看容器的日志

Docker ->(个人学习记录笔记)

以mysql为例:

<code>--name mysql</code>:容器的名字是mysql;

<code>MYSQL_ROOT_PASSWORD=root</code>:root用户的密码是root (必须指定)

连接容器内mysql

在使用 -d 参数时,容器启动后会进入后台。此时想要进入容器,可以通过以下指令进入:

<code>docker attach</code>

<code>docker exec</code>:推荐使用 docker exec 命令,因为此退出容器终端,不会导致容器的停止。

<code>-i</code>: 交互式操作。

<code>-t</code>: 终端。

<code>mysql</code>: 名为<code>mysql</code>的镜像。

<code>bash</code>:放在镜像名后的是命令,这里我们希望有个交互式 <code>Shell</code>,因此用的是<code>bash</code>,也可以用<code>/bin/bash</code>。

连接上以后就可以正常使用mysql命令操作了

直接使用端口映射更加方便

Docker ->(个人学习记录笔记)
docker 命令只能由root用户运行,普通用户还需要加上sudo命令。在第三方开发工具中无法使用docker插件
docker守护进程启动的时候,会默认赋予名为docker的用户组读写Unix socket的权限,因此只要创建docker用户组,并将当前用户加入到docker用户组中,那么当前用户就有权限访问Unix socket了,进而也就可以执行docker相关命令
安装docker已经创建了docker用户组,只需要将用户加入到docker组即可