docker安装与使用

一:CentOS7 系统可以直接通过 yum 进行安装:
安装前可以查看一下系统是否已经安装了 Docker:
yum list installed | grep docker

二:安装docker命令:yum install docker -y

三:Docker 服务启动
安装之后启动 Docker 服务;
启动:systemctl start docker 或者 service docker start
 停止:systemctl stop docker 或者 service docker stop 
 重启:systemctl restart docker 或者 service docker restart 
 检查 docker 进程的运行状态:
systemctl status docker 或者 service docker status 
查看 docker 进程:ps -ef | grep docker


四 Docker 服务信息
docker info 查看 docker 系统信息
docker 查看所有的帮助信息
docker commond –help 查看某个 commond 命令的帮助信息

五 docker运行
1 Docker 的运行机制
我们知道 Docker 并不是容器,而只是一个管理容器的引擎;
Docker 的底层运行原理:
Docker 服务启动→下载镜像→启动该镜像得到一个容器→容器里运 行着我们想要的程序;

2 Docker 容器
根据 Docker 的运行机制,我们将按照如下步骤运行第一个 Docker 容 器;
1)、将 Docker 服务启动;
下载镜像:docker pull tomcat
运行镜像:docker run tomcat 前台运行, 要后台运行,加参数 -d 显示本地已有的镜像:docker images


2)在列出信息中,可以看到几个字段信息 
REPOSITORY:来自于哪个仓库,比如 docker.io/tomcat 
TAG:镜像的标记,比如 latest
IMAGE ID:镜像的 ID 号(唯一) 
CREATED:创建时间
SIZE:镜像大小


3)、启动下载下来的镜像得到一个容器:
docker run -d docker.io/tomcat 或者 docker run -d 41a54fe1f79d 默认是前台启动,如果需要后台启动,指定-d 参数;
通过 ps -ef | grep tomcat 查看,检查 tomcat 镜像是否启动容器成功;


3 进入 Docker 容器
进入容器:docker exec -it cef0d139bfd6 bash
其中 i 表示交互式的,也就是保持标准输入流打开; t 表示虚拟控制台,分配到一个虚拟控制台; 退出容器:exit


4 客户机访问容器
从客户机上访问容器,需要有端口映射,docker 容器默认采用桥接模 式与宿主机通信,需要将宿主机的 ip 端口映射到容器的 ip 端口上; 停止容器:docker stop 容器 ID/名称
启动容器:docker run -d -p 8080:8080 docker.io/tomcat 或者 41a54fe1f79d


六Docker 核心组件

1:Docker 包括三个核心要素 镜像(Image)、容器(Container)、仓库(Repository)
镜像与容器的关系类似于面向对象编程中的类与对象的关系。
docker:面向对象
镜像:类
容器:对像


2:镜像
(1) 镜像的基本概念
Docker 镜像就是一个只读的模板,可以用来创建 Docker 容器。 例如:一个镜像可以包含一个完整的 centos 操作系统环境,里面仅 安装了 mysql 或用户需要的其它应用程序。
Docker 提供了一个非常简单的机制来创建镜像或者更新现有的镜像, 用户甚至可以直接从其他人那里下载一个已经做好的镜像来直接使 用。
镜像是由许多层的文件系统叠加构成的,
最下面是一个引导文件系统 bootfs,
第二层是一个 root 文件系统 rootfs,root 文件系统通常是某种操作系统
再上层是用户添加的文件
构成 docker 中的镜像;

(2):镜像的日常操作
1)、下载镜像,比如下载 redis 镜像:docker pull redis:latest
reids 是查询到的镜像名称,latest 是镜像的标签 tag 获取一个镜像有两种方式,一种是从官方镜像仓库下载,一种是自己 通过 Dockerfile 文件构建。
如果有官方镜像,我们就不必自己用 Dockerfile 文件构建了,除非官 方没有才会自己去 Dockerfile 文件构建

2)、列出已经下载的镜像:docker images,或者 docker images redis 

3)、运行镜像:docker run -d redis 其中-d 表示在后台运行
然后通过 ps -ef | grep redis 可以查到 redis 进程 蛙课网【动力节点旗下品牌】 http://www.wkcto.com
     
4)、查看容器镜像的状态:docker ps
通过 docker exec -it a8584016f9b6(镜像 ID) bash 进入 redis 容器 

5)、删除镜像:docker rmi redis:latest 注意是 rmi,不是 rm,rm 是删 除容器;

3:容器的基本概念
(1)容器是从镜像创建的运行实例。它可以被启动、停止、删除。每个容 器都是相互隔离的、保证安全平台。可以把看做一个简易版的 Linux 环境,包括 root 用户权限、进程空间、用户空间和网络空间和运行 在其中的应用程序。
Docker 利用容器来运行应用,镜像是只读的,容器在启动的时候创建 一层可写层作为最上层。

(2) 容器的日常操作
1)启动容器有两种方式,一种是基于镜像新建一个容器并启动,另外一 个是将在终止状态的容器重新启动。
通过镜像启动容器:docker run -d redis
查看运行中的容器:docker ps
查看所有的容器:docker ps -a 

docker cp :用于容器与主机之间的数据拷贝。

docker commit :从容器创建一个新的镜像。
停止容器:docker stop 容器 id 或容器名称 已经停止的容器,我们可以使用命令 docker start 来启动。 开启容器:docker start 容器 id 或容器名称
因为 Docker 的容器实在太轻量级了,很多时候用户都是随时删除和
 
2)新创建容器。
删除容器:docker rm 容器 id 或容器名称 删除容器时,容器必须是停止状态,否则会报错; 进入容器:docker exec -it 容器 id 或容器名称 bash
还可以使用 docker inspect + 容器 id 或容器名称 查看容器的更多信 息;
停用全部运行中的容器:docker stop $(docker ps -q) 删除全部容器:docker rm $(docker ps -aq) 一条命令实现停用并删除容器:
docker stop $(docker ps -q) & docker rm -f $(docker ps -aq)


4:仓库
1)仓库是集中存放镜像文件的场所,有时候会把仓库和仓库注册服务器 (Registry)看做同一事物,并不严格区分。实际上,仓库注册服务 器上往往存放着多个仓库,每个仓库中又包含了多个镜像,每个镜像 有不同的标签(tag);
最大的公开仓库是 Docker Hub (https://hub.docker.com/),存放了 数量庞大的镜像供用户下载;
2) 仓库的日常操作
通过 docker search 命令来查找官方仓库中的镜像:
docker search rabbitmq
docker pull rabbitmq 
docker pull centos


使用示例 
mysql
1 Docker 安装 MySQL
#下载 MySQL 镜像:
docker pull mysql:latest (安装的是 mysql 8.0)
docker run -p 3306:3306 -e MYSQL_DATABASE=testdb -e MYSQL_ROOT_PASSWORD=111111 -d mysql:latest
其中-e 是指定环境变量
#进入容器:
docker exec -it 111111111111 bash


Nginx
#下载 Nginx 镜像:
docker pull nginx
docker run -d -p 80:80 nginx
#进入容器:
docker exec -it 111111111111 bash
#浏览器访问 Nginx:
http://192.168.230.128:80
#Nginx 部署静态网站:
将 linux 的文件拷贝到 docker 容器某个目录下:
docker cp /root/test.html 111111111111:/usr/share/nginx/html


5:DockerFile

Docker 自定义镜像 5-1 认识 Dockerfile 文件
Dockerfile 用于构建 Docker 镜像,Dockerfile 文件是由一行行命令语句 组成,基于这些命令即可以构建一个镜像,比如下面就是一个
Dockefile 文件样例:
FROM XXX/jdk:8
MAINTAINER docker_user
ENV JAVA_HOME /usr/local/java
ADD apache-tomcat-8.0.32.tar.gz /usr/local/ RUN mv apache-tomcat-8.0.32 tomcat8
EXPOSE 8080
RUN chmod u+x /usr/local/tomcat8/bin/*.sh CMD /usr/local/tomcat8/bin/catalina.sh start

基础镜像信息;
维护者信息;
镜像操作指令;
容器启动时执行指令;
5-3 Dockerfile 指令
FROM
格式为 FROM <image> 或 FROM <image>:<tag>
Dockerfile 文件的第一条指令必须为 FROM 指令。并且,如果在同一 个 Dockerfile 中创建多个镜像时,可以使用多个 FROM 指令(每个镜 像一次);
MAINTAINER
格式为 MAINTAINER <name>,指定维护者信息;
ENV
格式为 ENV <key> <value>,指定一个环境变量,会被后续 RUN 指令 使用,并在容器运行时保持;
ADD
格式为 ADD <src> <dest>;
复制指定的<src>到容器中的<dest>;
EXPOSE
格式为 EXPOSE <port> [<port>...]

告诉 Docker 服务端容器暴露的端口号,供互联系统使用,在启动容 器时需要通过 -p映射端口,Docker 主机会自动分配一个端口转发到 指定的端口;
RUN
格式为 RUN <command>
RUN 指令将在当前镜像基础上执行指定命令,并提交为新的镜像, 当命令较长时可以使用 \ 来换行;
CMD
指定启动容器时执行的命令,每个 Dockerfile 只能有一条 CMD 命令。 如果指定了多条命令,只有最后一条会被执行。 如果用户启动容器时候指定了运行的命令,则会覆盖掉 CMD 指定的 命令。


自定义 MySQL 镜像 定义 Dockerfile 文件:
FROM centos:centos6
MAINTAINER tester
RUN yum install mysql-server mysql -y RUN /etc/init.d/mysqld start &&\
mysql -e "grant all privileges on *.* to 'root'@'%' identified by '111111' WITH GRANT OPTION ;"&&\
mysql -e "grant all privileges on *.* to 'root'@'localhost' identified by '111111' WITH GRANT OPTION ;"&&\
mysql -uroot -p123456 -e "show databases;" EXPOSE 3306
CMD /usr/bin/mysqld_safe 构建镜像:docker build -t test-mysql .
运行镜像:docker run -d -p 3306:3306 111111111111

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值