Docker

mac2025-02-12  13

安装

我这里用的是CentOS7_1511 下载地址 http://linux.xitongxz.net:808/201603/CentOS-7-x86_64-DVD-1511.isocat /etc/redhat-release 查看Linux版本,确定版本是Linux 7 及以上版本确定可以上外网,如果不能上外网可以参考 https://www.cnblogs.com/taopanfeng/p/10978752.htmlyum -y update更新 yum 源,这个更新有点儿久,耐心等待...curl -fsSL https://get.docker.com -o get-docker.sh 获取安装 Docker 的脚本sh get-docker.sh 执行脚本进行安装 Dockersystemctl start docker 启动 Dockervim /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.0https://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

最新回复(0)