嘘~ 正在从服务器偷取页面 . . .

Docker 快速上手


Docker 快速上手

一、简介

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

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

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

二、基本概念

docker主机(Host):安装了Docker程序的机器,Docker直接安装在操作系统(windows / linux)上;

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

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

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

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

Client   ---------> Host  --------->  Registry

使用Docker的基本步骤:

1)、安装Docker

2)、去Docker仓库找到这个软件对应的镜像;

3)、使用Docker运行这个镜像,这个镜像就会生成一个Docker容器;

4)、对容器的启动停止就是对软件应用的启动停止;

三、Docker 安装

1、环境准备

检查内核版本,Linux 必须是3.10及以上

检查命令:

uname -r

2、安装docker

yum install docker

3、查看版本

[root@localhost ~]# docker -v
Docker version 1.12.6, build 3e8e77d/1.12.6

3、启动docker

[root@localhost ~]# systemctl start docker

4、开机启动

[root@localhost ~]# systemctl enable docker
Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.

5、停止docker

systemctl stop docker

四、Docker 常用命令&操作

1、镜像操作

Docker Hub 地址: https://hub.docker.com/

镜像常用操作:

操作命令说明
检索docker search 关键字
eg:docker search redis
我们经常去docker hub上检索镜像的详细信息,如镜像的TAG。
拉取docker pull 镜像名:tag:tag是可选的,tag表示标签,多为软件的版本,默认是latest
列表docker images查看所有本地镜像
删除docker rmi image-id删除指定的本地镜像

2、容器操作

(1)搜索镜像命令:

docker search 镜像名称

示例:

docker search tomcat

也可以在 Docker Hub直接搜索。

(2)拉取镜像:

docker pull 镜像名称

示例:

docker pull mysql

(3)查看本地镜像列表

docker images [OPTIONS] [REPOSITORY[:TAG]]

OPTIONS说明:

  • -a :列出本地所有的镜像(含中间映像层,默认情况下,过滤掉中间映像层);
  • –digests :显示镜像的摘要信息;
  • -f :显示满足条件的镜像;
  • –format :指定返回值的模板文件;
  • –no-trunc :显示完整的镜像信息;
  • -q :只显示镜像ID。

(4)根据镜像启动容器基本命令:

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

docker run --name 容器名称 -d 镜像名称:latest

OPTIONS说明:

  • -a stdin: 指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项;
  • -d: 后台运行容器,并返回容器ID;
  • -i: 以交互模式运行容器,通常与 -t 同时使用;
  • -P: 随机端口映射,容器内部端口随机映射到主机的端口
  • -p: 指定端口映射,格式为:主机(宿主)端口:容器端口
  • -t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
  • –name=”nginx-lb”: 为容器指定一个名称;
  • –dns 8.8.8.8: 指定容器使用的DNS服务器,默认和宿主一致;
  • –dns-search example.com: 指定容器DNS搜索域名,默认和宿主一致;
  • -h “mars”: 指定容器的hostname;
  • -e username=”ritchie”: 设置环境变量;
  • –env-file=[]: 从指定文件读入环境变量;
  • –cpuset=”0-2” or –cpuset=”0,1,2”: 绑定容器到指定CPU运行;
  • -m :设置容器使用内存最大值;
  • –net=”bridge”: 指定容器的网络连接类型,支持 bridge/host/none/container: 四种类型;
  • –link=[]: 添加链接到另一个容器;
  • –expose=[]: 开放一个端口或一组端口;
  • –volume , -v: 绑定一个卷

常用的操作是:

-d:后台运行
-p: 将主机的端口映射到容器的一个端口 主机端口:容器内部的端口

示例

# 启动tomcat 容器、映射端口、后台运行
docker run -d -p 8888:8080 tomcat

# 能启动mysql 不能访问
docker run --name mysql_01 -e MYSQL_ROOT_PASSWORD=123456 -d mysql
# 能启动mysql 并且能访问
docker run -p 3306:3306 --name mysql_02 -e MYSQL_ROOT_PASSWORD=123456 -d mysql

# 把主机的/conf/mysql文件夹挂载到 mysqldocker容器的/etc/mysql/conf.d文件夹里面,改mysql的配置文件就只需要把mysql配置文件放在自定义的文件夹下(/conf/mysql)
docker run --name mysql_03 -v /conf/mysql:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag

# 指定mysql的一些配置参数
docker run --name mysql_04 -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci

(5)查看所有的容器

#查看容器(默认是已启动的 Up)
docker ps 
#查看所有的容器(包含启动的和停止的)
docker ps -a  

示例:

[root@localhost ~]# docker ps
CONTAINER ID    IMAGE     COMMAND                   CREATED       STATUS              PORTS                     NAMES
ad10e4bc5c6a    mysql    "docker-entrypoint.sh"   4 seconds ago    Up 2 seconds        0.0.0.0:3306->3306/tcp   mysql02

(5)容器启停

# 启动容器
docker start 容器id
# 删除一个容器
docker rm 容器id

(6)更多命令

​ (A) :Docker 官方文档

​ (B):参考每一个镜像的文档。

示例:

docker pull mysql

docker images

docker run -p 3306:3306 --name mysql_05 -e MYSQL_ROOT_PASSWORD=123456 -d mysql

docker ps -a

访问的话,关闭防护墙或者放行3306端口。

五、其他

其他后续遇到再补充。



版权声明: 本博客所有文章除特別声明外,均采用 CC BY-SA 4.0 许可协议。转载请注明来源 Small-Rose / 张小菜 !
评论
  目录