Docker容器

         安装Docker

  1. 查看内核版本:uname -r   centos的内核版本要高于3.1.0
  2. yum remove docker \

                 docker-client \

                 docker-client-latest \

                 docker-common \

                 docker-latest \

                 docker-latest-logrotate \

                 docker-logrotate \

                 docker-engine  #卸载以前旧的版本

  1. 安装镜像仓库:yum install -y yum-  utils
  2. 安装需要的软件包:yum install -y yum-utils device-mapper-persistent-data lvvm2
  3. yum-config-manager \

 --add-repo \

 http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

#设置镜像仓库地址:国外的较慢这里用阿里云的镜像地址

  1. 安装yum安装的索引:yum makecache  fast

这样可以提升安装docker的速度

  1. 安装:yum install docker-ce docker-ce-cli containerd.io
  2. 在后台启动服务:systemctl start docker

ps  -eflgrep docker

  1. 验证:docker version
  2. 检测是否安装成功:docker run hello-world
  3. https://promotion.aliyun.com/ntms/act/kubernetes.html

#阿里云

  镜像加速器地址:https://0naywxvd.mirror.aliyuncs.com

  要写自己的

  1. 配置镜像加速器:

  2. sudo mkdir -p /etc/docker #创建目录

 sudo tee /etc/docker/daemon.json <<-'EOF'

 {

"registry-mirrors": ["https://0naywxvd.mirror.aliyuncs.com"]

 }

EOF  

#脚本

sudo systemctl daemon-reload   #重启服务

sudo systemctl restart docker    #启动服务

  1. 检测镜像加速器是否安装成功:docker run hello-world

  长用命令:systemctl restart docker    #重启docker

  systemctl  status docker  #查看docker状态

  systemctl  enable docker  #设置开机自启

  docker  info          #docker概要说明

  docker  cp  --help       #查看具体帮助命令

docker pull  redis

 docker  --help     #查看docker全部帮助命令

镜像命令

docker  images挪列出本地的镜像

-a  #列出本地所以镜像

-q  #只显示镜像id   也可-ap同时使用

REPOSITORY  #镜像仓库源

TAG  #镜像的标签

IMAGE ID   #镜像id

CREATED   #镜像创建时间

SIZE   #镜像大小

查看的是镜像仓库的

docker search hello-world   #搜索某个镜像

docker search  --limit  5 redis  #拉取五条redis镜像不输默认25条

docker pull hello-world  下载hello-world镜像,不输版本默认最新

docker pull redis:6.0.8 

docker system df  #查看镜像容器所占空间

docker rmi  +镜像名或镜像id  #删除那个镜像

docker rmi  -f            #如果那个镜像在那个里面正在运行无法删除可加-f强制删除

docker rmi -f  $(docker images -ap)   #删除所有镜像

虚悬镜像:仓库名和id都是<none>的镜像一般没什么用建议删除

                  容器命令

有镜像才能创建容器

docker run[OPTIONS]IMAGE[COMMAND][ARG...]

用镜像生成一个容器

OPTLONS #参数 IMAGE #镜像名称 COMMAND#命令 ARG….#其它参数

docker run  -it ubuntu /bin/bash  #创建并进入docker容器(ubuntu)

docker ps  

docker ps  -a   #查看隐藏容器

docker ps  -n  3

docker run -it –name=myu1 ubuntu  bash  #给容器启个名字如果不加系统自动分配

exit  退出容器但容器会停止

ctrl+p+q  退出容器不停止

docker  start 容器id或者容器名   #启动已停止运行的容器

docker  restart  容器id或者容器名   #重启容器

docker  stop  容器id或者容器名   #停止容器

docker  kill  容器id或者容器名    #强行停止容器

docker  rm  容器id或者容器名   #删除容器

要先停止在删除

docker  rm -f  容器id或者容器名  #不停止强行删除

docker rm -f$(docker ps -a -q)  #删除所有正在运行的容器

docker run  -d  redis:6.0.8   #像redis和ngis让其在后台运行即可

docker top 容器id或容器名   #查看容器内运行进程

每一个容器都是一个缩小版的liunx环境

docker  exec  -it  容器id  /bin/bash  #进入容器

docker  attach  容器id    #进入容器

attach 直接进入容器启动命令的终端,不会启动新的进程用exit退出,会导致容器的停止。

exec 是在容器中打开新的终端,并且可以启动新的进程用exit退出,不会导致容器的停止。

用快捷键两个都不会停止

大多数时候用exec

docker cp 容器ID:容器内路径 目的主机路径

export 导出容器的内容留作为一个tar归档文件[对应import命令]

docker export 容器ID>文件名.tar

比如:docker export ddb1ae909a66 > abcd.tar

cat 文件名.tar| docker import-镜像用户/镜像名:镜像版本号

#import 从tar包中的内容创建一个新的文件系统再导入为镜像[对应export]

cat abcd.tar  docker import - atguigu/ubuntu: 3.7

安装vim

apt-get update  #安装包的管理工具

apt-get -y install vim   #安装vim

需在容器外操作

docker commit提交容器副本使之成为一个新的镜像

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

如:docker commit -m="vim cmd add ok” -a="zzyy”  fcbfa3e8efc5 atguigu/myubuntu: 1.3

  1. 镜像的结构是怎样的?

镜像中包含了应用程序所需要的运行环境、函数库、配置、以及应用本身,逐层构建而成。

  1. Dockerfile是做什么的?

Dockerfile就是利用固定的指令来描述镜像的构建过程,这样Docker才可以依次来构建镜像

  1. 构建镜像的命令是什么?

 docker build-t镜像名 Dockerfile目录

  1. docker create命令 Docker 映像创建一个全新的容器。但不会立即运行它。

                  搭建准备工作

  1. 创建网络:

  2. docker network create –-driver beidge –subnet= 192.168.31.0/24 mynet

--driver 指定网络模式beidge为桥接

--subnet 指定子网

  1. 进入容器:docker run -d  -p 22/tcp  --privileged=true  --name hadoop1 hostname hadoop1 –net mynet  --ip 192.168.31.2 id  /usr/sbin/init
  2. yum install -y vim openssh-server openssh-clients passwd net-tools telnet  #安装需要的包
  3. inspect
  4. ##创建自指定网断和网关
    [root@server1 ~]# docker network create -d bridge --subnet 172.30.0.0/24 --gateway 172.30.0.1 mynet2

--subnet  子网地址

-d –driver  #指定网络模式  bridge桥接模式

--gateway  #路由

--privileged=true  #添加root权限

  1. -v 容器数据卷挂载:

-v  /sys/fs/cgroup:/sys/fs/cgroup #解决mysql启动不了的问题

-v /etc/localtime:/etc/localtime:ro  #让宿主机的时钟与容器同步,避免时区问题

5. docker cp 宿主机文件  容器名或容器id:容器目录

#将宿主机文件拷贝到容器

  1. 将容器中的文件拷贝到宿主机: docker cp 容器名:容器内的文件路径  宿主机目录
  2. Docker volume ls #查看容器数据卷
  3. Docker volume rm 卷名
  4. Docker volume create 数据卷名称  #创建容器数据卷
  5. Docker volume inspect 数据卷名  #查看详情
  6. 重启ssh服务:systemctl restart sshd
  7. netstat -ano lgrep 22  #开放端口
  8. docker network  inspect  #查看详情命令
  9. docker commit -a “xiaodeng” -m “”  容器id   bs1   #容器打包镜像

-a 作者

-m 描述

16. docker save 镜像id  >hadoop.tar.gz  #打包成一个文件

17. docker load -i e:\docker\hadoop.tar.gz  #将镜像恢复

将镜像上传到阿里云镜像仓库:

   登陆:docker login --username=dengqiweng registry.cn-hangzhou.aliyuncs.com

 改名:docker tag [ImageId] registry.cn-hangzhou.aliyuncs.com/dengqiweng/myjingxiaong:[镜像版本号]

推送:docker push registry.cn-hangzhou.aliyuncs.com/dengqiweng/myjingxiaong:[镜像版本号]

Docker file:


FROM centos:7

#安装JDK

RUN mkdir -p /opt/software && mkdir -p /opt/service

ADD jdk-8u212-linux-x64.tar.gz /opt/service

#安装语言包

RUN yum -y install kde-l10n-Chinese glibc-common vim

RUN localedef -c -f UTF-8 -i zh_CN zh_CN.utf-8

RUN echo "LANG=zh_CN.UTF-8" >>/etc/locale.conf

#解决login环境变量失效问题

RUN touch /etc/profile.d/my_env.sh

RUN echo -e "export LC_ALL=zh_CN.UTF-8\nexport JAVA_HOME=/opt/service/jdk1.8.0_212\nexport PATH=\$PATH:\$JAVA_HOME/bin" >>/etc/profile.d/my_env.sh

#安装ssh服务

#更换国内阿里云yum源

RUN curl -o /etc/yum.repos.d/Centos-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

RUN sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/Centos-Base.repo

RUN yum makecache

#安装sshd

RUN yum install -y openssh-server openssh-clients vim net-tools lrzsz

RUN sed -i '/^HostKey/'d /etc/ssh/sshd_config

RUN echo 'HostKey /etc/ssh/ssh_host_rsa_key'>>/etc/ssh/sshd_config

#生成 ssh-key

RUN ssh-keygen -t rsa -b 2048 -f /etc/ssh/ssh_host_rsa_key

#更改root用户名登陆密码为

RUN echo 'root:123456' | chpasswd

#声明22端口

EXPOSE 22

#容器运行时启动sshd

RUN mkdir -p /opt

RUN echo '#!/bin/bash' >> /opt/run.sh

RUN echo '/usr/sbin/sshd -D'>> /opt/run.sh

RUN chmod +x /opt/run.sh

CMD ["/opt/run.sh"]

注意:在windoes上要将文件后缀名清除

  • 10
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值