centos7安装与使用docker

centos7安装与使用docker以下是自己学习docker的总结centos7安装docker:1.更新yum的软件源yum update2.安装dockeryum -y install docker3.启动docker&&开机启动&&查看状态systemctl start dockersystemctl enable dockersyste...
摘要由CSDN通过智能技术生成

centos7安装与使用docker

以下是自己学习docker的总结
centos7安装docker:
1.更新yum的软件源
yum update

2.安装docker
yum -y install docker

3.启动docker&&开机启动&&查看状态
systemctl start docker
systemctl enable docker
systemctl status docker

4.修改docker的容器与镜像的存放路径(默认在/var/lib/docker)
find / -name docker.service #最后一个路径,而且需要启动docker才能找到
在这里插入图片描述
vi /usr/lib/systemd/system/docker.service
在ExecStart 的 最后面添加 –grap=自己存放的路径
在这里插入图片描述
修改完成重启reload与docker
systemctl daemon-reload
systemctl restart docker
目录会自动移动的对应目录

5.运行docker服务
有两种方法:
a.下载对应的官方docker镜像来构建容器(若对各软件的配置较熟悉可以使用)
b.下载系统镜像,在改系统上搭建环境(推荐,因为对centos7系统搭建环境比较熟悉)
主要介绍b方法:
①搜索centos镜像
docker search centos
②下载centos7镜像
docker pull centos:7 # centos:7代表是centos7版本,不加:,默认是最新版本

③查看镜像
docker images

④创建容器
docker run -d --name 创建的容器名称 -p 80:80 镜像容器ID/镜像容器名称 (容器后台运行)

docker run -it --name 容器名称 -p 80:80 镜像容器ID/镜像容器名称 /bin/bash (退出后容器关闭)
############备注############
容器名称记得不能够重复,不然会报错
docker ps -a #查看所有容器,包括已经停止的
在这里插入图片描述
-i:允许你对容器内的标准输入进行交互
-t:在新容器内指定一个伪终端或终端
-d:后台运行
–rm: 容器运行完后删除
–name: 创建的容器名称
-p: 暴露容器端口 # -p 80:80 把容器80端口映射到宿主机的80端口上tcp协议
# -p 0.0.0.0:80:80 把容器80端口映射到宿主机的0.0.0.0:80上 tcp6协议
# 一般第一种映射即可让容器与宿主机链接起来
/bin/bash 让容器可以执行/bin/bash命令

容器网络
–net= host #docker使用的网络实际上和宿主机一样,且自动会将容器使用的端口映射到宿主机相应的端口
–net = container:容器名称/容器id 多个容器使用共同的网络,看到的ip是一样的。

容器文件共享
-v /data/1/:/data/ 把宿主机的/data/1/目录挂载到容器的/data/下
–volumes-from 容器名称 :与该容器共享目录
例子:
docker run -itd –name nginx -p 80:80 -v /data/upload/:/data/upload/ nginx.jar
用nginx.jar镜像创建nginx容器,映射80到宿主机80端口上,并挂载宿主机的/data/upload/到/data/upload/
docker run -it –name tomcat –net=container:nginx –volumes-from nginx tomcat.jar
用tomcat.jar创建tomcat容器,并与nginx容器共享网络与文件

⑤当容器后台运行或退出容器后再启动
docker exec -it 容器名称/容器ID /bin/bash
#当容器内执行systemctl时报错,需重新创建容器,再启动容器
docker run --privileged -itd --name test docker.io/centos:7 /usr/sbin/init
报这个错的原因是dbus-daemon没能启动。systemctl并不是不能使用。将CMD或者entrypoint设置为/usr/sbin/init即可。docker容器会自动将dbus等服务启动起来

⑥容器退出
ctrl+d 或 exit

6.停止与删除容器,并删除对应的镜像
①查看运行中的容器
docker ps

②停止容器
docker stop 容器名称/容器ID

③删除容器
docker ps -a #查看所有镜像
docker rm 容器名称/容器ID

④删除容器对应的镜像
docker rmi 镜像名称/镜像ID
若报错 在后面添加—force,并确保该镜像创建的容器都删除了。

7.容器保存
docker commit 容器名称/容器ID 名称 #把容器保存为镜像
docker commit nginx nginx1

docker save -o 名称.tar 名称 #把镜像打包,并会保存在当前目录
docker save nginx1.tar nginx1

docker load -i 容器所放位置 #还原容器
docker load -i nginx1

可使用阿里云的容器镜像服务来保存容器(登录即可查看相关操作,转载阿里云)
转载与阿里云.

8.宿主机与容器的文件传输
docker cp /data/1.txt 容器名称/容器ID:/data/ #把宿主机/data/1.txt文件传输到容器的/data/目录下

9.用dockerfile 创建
文件详解:
https://blog.csdn.net/liupeifeng3514/article/details/80412163

在dockerfile文件的目录下
docker build -t 镜像名称 . #根据dockerfile创建镜像

附上es、redis的dockerfile文件(建议nginx、tomcat手动配置)
vi dockerfile
es
FROM centos:7
MAINTAINER Oguoxiong
#java安装
ADD jdk1.7.0_60.tar.gz /data/
ENV JAVA_HOME=/data/jdk1.7.0_60
ENV CLASSPATH=.: J A V A H O M E / l i b : JAVA_HOME/lib: JAVAHOME/lib:JAVA_HOME/lib/dt.jar: J A V A H O M E / l i b / t o o l s . j a r E N V P A T H = JAVA_HOME/lib/tools.jar ENV PATH= JAVAHOME/lib/tools.jarENVPATH=PATH:$JAVA_HOME/bin
#es安装
ADD elasticsearch-1.7.1.tar.gz /data/
RUN rm -f /data/elasticsearch-1.7.1/config/elasticsearch.yml
COPY elasticsearch.yml /data/elasticsearch-1.7.1/config/
ENTRYPOINT /data/elasticsearch-1.7.1/bin/elasticsearch
redis
FROM centos:7
MAINTAINER Oguoxiong
#基础环境
RUN yum -y install gcc
RUN yum -y install gcc-c++
RUN yum -y install make
RUN yum -y install zlib-devel
RUN mkdir -p /data
#先安装redis,到make test前
ADD redis-2.8.3.tar.gz /data/
WORKDIR /data/redis-2.8.3
RUN mkdir -p /data/services/redis
RUN cp -R /data/redis-2.8.3/* /data/services/redis/
WORKDIR /data/services/redis/
RUN make
#两个redis的重要文件
RUN mkdir -p /data/conf/redis
COPY 6501_redis.conf /data/conf/redis/
RUN mkdir -p /data/script/02_redis
COPY 6501.sh /data/script/02_redis/
#安装redis的依赖包
WORKDIR /data/
ADD tcl8.6.0-src.tar.gz /data/
WORKDIR /data/tcl8.6.0/unix
RUN ./configure
RUN make
RUN make install
RUN make test
RUN rm -f /data/services/redis/redis.conf
COPY redis.conf /data/services/redis/
#启动
WORKDIR /data/
ENTRYPOINT ["/data/services/redis/src/redis-server","/data/services/redis/redis.conf"]

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值