Docker

安装

  • 我这里用的是CentOS7_1511 下载地址 http://linux.xitongxz.net:808/201603/CentOS-7-x86_64-DVD-1511.iso
  • cat /etc/redhat-release 查看Linux版本,确定版本是Linux 7 及以上版本
  • 确定可以上外网,如果不能上外网可以参考 https://www.cnblogs.com/taopanfeng/p/10978752.html
  • yum -y update更新 yum 源,这个更新有点儿久,耐心等待...
  • curl -fsSL https://get.docker.com -o get-docker.sh 获取安装 Docker 的脚本
  • sh get-docker.sh 执行脚本进行安装 Docker
  • systemctl start docker 启动 Docker
  • vim /etc/docker/daemon.json设置加速器,进行下载加速,不然使用起来下载镜像太慢.
    这个文件里面只添加下面内容,最好不要有别的东西
{
  "registry-mirrors": ["http://hub-mirror.c.163.com"]
}
  • chkconfig iptables off永久关闭防火墙
  • systemctl enable docker开机自动启动 Docker

防火墙

Linux防火墙 

永久性生效,重启后不会复原 
开启:chkconfig iptables on
关闭:chkconfig iptables off

即时生效,重启后复原 
开启:service iptables start
关闭:service firewalld stop

Docker

启动 Docker
systemctl start docker

关闭 Docker
systemctl stop docker

重启 Docker
systemctl restart docker

开机启动Docker
systemctl enable docker

镜像

如果版本号为latest 可以直接指定镜像名称

查找镜像
docker search 镜像名称:版本号

拉取镜像
docker pull 镜像名称:版本号

删除镜像
docker rmi 镜像名称:版本号

容器

启动容器

docker run 运行容器 如果docker images中没有会自动pull拉取镜像
--name 指定容器名称
-d 后台运行
-p Linux端口:容器端口
--restart always 一直运行,重启也运行
-e 参数
-v Linux目录/文件:容器目录/文件

关于容器

docker容器会有一个 ip地址 和 端口

Linux可以访问docker容器的 ip:容器port
Windows可以访问Linux的 ip:映射port

docker容器 port : docker run -p 后面一个
Linux port: docker run -p 前面一个

docker 容器的ip: docker inspect 容器id/名称
在这里插入图片描述

停止容器
docker stop 容器id/名称

重启容器
docker restart 容器id/名称

删除容器
docker rm 容器id/名称

进入容器
docker exec -it 容器id/名称 bash

查看容器配置文件位置
例如:进入nginx容器之后
nginx -t

查看容器日志
docker logs 容器id/名称

查看容器信息
docker inspect 容器id/名称

数据共享

docker commit -m="提交描述" -a="作者" 容器id 要创建的镜像名:[标签名]

数据共享
docker run 的 -v Linux路径/文件:容器路径/文件

不论容器是否停止,只要一方修改,另外一方也修改

如果 -v Linux路径:容器路径:ro
这里的ro就是只读ReadOnly的意思,容器不能修改,Linux可以修改,他们依然同步

----------
docker build -f /everything/docker/Dockfile -t panfeng:1 .
-f 不加也可以 在Dockerfile文件目录执行docker build -t panfeng:1 .
-t 代表镜像名称 panfeng 镜像标签 1  如果直接写名称 标签为 latest
. 代表当前目录
---
docker inspect 容器id/名称
Volumes -> 容器目录 : Linux目录
VolumesRW -> 容器是否可读可写

---
docker run --name -v /a:/a x01 镜像名称 >>>这里容器和Linux都有a文件夹,并共享

docker run --name x02 --volumes-from x01 镜像名称
这里的x02继承x01容器,在x01容器内也会有一个/a目录,此时的x01,x02,Linux同步
如果修改01容器内容 02也会更改,

如果再执行一个03继承01,则03会有/a目录并有其内容,
删除01之后,x02,x03,Linux还会同步

Dockerfile

三步骤 
   1,编写Dockerfile
   2,docker build -t diy .
   3,docker run......
   
1,基于哪个镜像   
FORM java:8

2,镜像的姓名+邮箱
MAINTAINER 镜像姓名

LABEL key=value key=value 可以指定多个

3,容器构建时需要运行的命令
RUN

4,容器向外暴露端口
EXPOSE

5,docker exec -it 进入容器时的目录
WORKDIR

6,构建过程中设置环境变量
ENV

7,拷贝进来并解压
ADD

8,拷贝一个目录到另外一个目录
COPY

9,容器卷,用户持久化,与Linux同步
VOLUME

10,可以有多个命令,只有最后一个生效,会被docker run 命令替换
CMD

11,和cmd差不多,但会执行多行,docker run命令会追加,
ENTRYPOINT

12,
ONBUILD

---
FROM nginx
MAINTAINER taopanfeng<18574150851@163.com>
ENV  my_env_path /tmp
WORKDIR $my_env_path
RUN yum -y install vim,ll

EXPOSE 80

启动的容器

Redis

docker run --name redis01 -d -p 6379:6379 redis

操作Redis客户端
docker exec -it redis01 redis-cli

MySQL

docker run --name mysql01 -d -p 3307:3306 mysql -e MYSQL_ROOT_PASSWORD=123456 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci

Tomcat

docker run --name tomcat01 -d -p 8080:8080 tomcat

RabbitMQ

docker run --name rabbitmq01 -p 5673:5672 -p 15673:15672 -d rabbitmq:management

Elasticsearch

启动之前需要输入 vi /etc/sysctl.conf
在后面添加一行 vm.max_map_count=262144
再输入sysctl -p 让内核参数立即生效

docker run --name elasticsearch01 -d -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -p 9201:9200 -p 9301:9300 elasticsearch:6.5.0

安装分词器(elasticsearch01是docker已经运行的容器)

docker exec -it elasticsearch01 /bin/bash

安装分词器,因为我的镜像是elasticsearch:6.5.0 ,安装过程中输入y即可
elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.5.0/elasticsearch-analysis-ik-6.5.0.zip

重启elasticsearch容器
docker restart elasticsearch01

如果要运行 7.4.0
https://www.cnblogs.com/taopanfeng/p/11684442.html

Zookeeper

docker run --name zookeeper01 -p 2181:2181 --restart always -d zookeeper

MongoDB

docker run --name mongo01 -d -p 27018:27017 mongo

posted on 2019-10-16 13:12  陶攀峰  阅读(205)  评论(0编辑  收藏  举报

顶部 底部