docker

2019-10-30  本文已影响0人  我是啵啵

核心概念

使用步骤

安装
yum install docker
启动
systemctl start docker
查找
docker search mysql
在dockerhub 上找
下载
docker pull mysql
就是查看是否有安装包
docker images
就是安装软件
docker pull mysql:5.5
卸载
docker rmi 镜像id
用docker images 找

容器操作

搜索镜像
下载
创建容器
systemctl status docker 看服务的状态
docker --help
进入容器
docker exec -it mycentos2 /bin/bash

启动镜像
docker run --name -d image-name
docker run --name mytomcat -d tomcat:latest
查看运行中的容器

查看已经运行的程序
docker ps 
-a 
查看已安装的程序
停止
docker stop 容器id
id用docker ps -a 查看所有
docker start  容器id
删除
docker rm 容器id
docker run -d -p 8888:8080
前面是主机端口 后面 容器端口
linux 
防火墙状态
service firewalld status
关闭防火墙
service firewalld stop 
docker logs 容器id

mysql

$ docker run -p 3306:3306 --name mysql01 -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag

在后面还可以加上服务器属性

启动容器

docker start mysql01

大数据

/bin/bash XXXX.sh
运行大数据安装平台脚本


docker之梦学谷

解决的问题
在我这台电脑上能跑起来 在别的电脑上也能跑起来 就是 可以将你的环境也打包
打包环境就是打包镜像
打包的东西成集装箱 只要操作系统安装了docker 就能运行哪个集装箱 就是已经配好的环境

centos版本要求
uname -r
3.1
镜像就是模板文件

image.png
改镜像
按照阿里云上的提示走
docker pull tomcat 
docker rmi +id 名 

容器操作

5.2.1 创建容器命令 
 
创建容器 [OPTIONS] 常用的参数说明:
 -i 表示交互式运行容器(就是创建容器后,马上会启动容器,并进入容器 ),通常与-t 同时使用 。
 -t 启动后会进入其容器命令行, 通常与 -i 同时使用; 加入 
-it 两个参数后,容器创建就能登录进去。即 分配一个伪终端。
 --name 为创建的容器指定一个名称 。
 -d 创建一个守护式容器在后台运行,并返回容器ID; 这样创建容器后不会自动登录容器,如果加-i参数,创建后就会运行容器。
 -v 表示目录映射, 格式为:
-p 宿主机目录:容器目录 注意:最好做目录映射,在宿主机上做修改,然后共享到容器上。 
-p 表示端口映射,格式为:-p 宿主机端口:容器端口
  5.2.2 交互式容器 
说明: 就是创建容器后,马上会启动容器,并进入容器 

1. 创建一个交互式容器并取名为 mycentos, ( /bin/bash 是linux中的命令解析器,会进入到容器里面命令行)
 
上图显示,已经进入容器中(上面主机名变成了容器实例编号 )
2. 新开一个 shell 窗口,这时我们通过 docker ps 命令查看,发现可以看到启动的容器,状态为 Up 启动状态
 
3. 新开一个 shell 窗口,再创建一个 mycentos1 容器(注意:docker 命令是不能在容器里面使用)
 
docker pull centos:7
docker run [OPTIONS] 镜像名:标签名
docker run -it --name=mycentos centos:7 /bin/bash
docker run -it --name=mycentos1 centos:7 /bin/bash
1
1

启动或者停止多个容器
docker ps -a -q
查出来容器id
docker start ``docker ps -a -q``
docker kill +容器id

创建守护容器
docker run -id --name=mycentos2 centos:7 /bin/bash

进入守护式容器
docker exec -it mycentos2 /bin/bash
这里要用 /bin/bash 要用这个命令来启动

注意:交互式容器通过 docker exec 进入容器后,使用 exit 也一样的只退出但不停止容器

拷贝

往里往外
docker cp 要拷贝的宿主机文件或目录 容器名称:容器文件或目录

docker cp 容器名称:要拷贝的容器文件或目录 宿主机文件或目录

挂载

docker run -id -v /宿主机绝对路径目录:/容器内目录 --name=容器名 镜像名

容器细节

docker inspect mycentos2

实战

mysql5.7
拉取
docker pull mysql:5.7
运行:
docker run -id --name=mxg_mysql -p 33306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7
登陆:
docker exec -it mxg_mysql /bin/bash
redis
docker pull redis
docker run -id --name=mxg_redis -p 6379:6379 redis

image.png

rabbitmq
docker pull rabbitmq:management
docker run -id --name=mxg_rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:management
http://192.168.10.11:15672

image.png

备份和迁移

打包没有目录映射
docker commit mxg_tomcat new_tomcat:1.1
就是 复制过去

打包镜像
docker save -o mycentos.tar mycentos_new:1 给别人用 还要把数据打包给别人 通过cp 的方式回复数据

恢复
docker load -i xxx.jar

dockerfile

层级打包
注意 他自己解压不出来 我是自己解压解决的


image.png
上一篇下一篇

猜你喜欢

热点阅读