Docker容器化

  • Docker的启动与关闭

Docker的启动:systemctl start docker
Docker状态查询:systemctl status docker
Docker的关闭:systemctl stop docker
Docker的重启:systemctl restart docker
Docker开机自启:systemctl enable docker

  • 镜像相关命令

1.查看本地镜像:docker images
这些镜像都是存储在Docker宿主机的/var/lib/docker目录下
2.搜索网络上的镜像:docker search 镜像名称
3.拉取镜像:docker pull 镜像名称
4.删除镜像:docker rmi 镜像id/镜像名称

  • 容器相关命令

1.查看正在运行的容器:docker ps
2.查看所有容器:dicker ps -a
3.停止容器:docker stop 容器名称(或者容器id)
4.启动容器:docker start 容器名称(或者容器id)
5.删除容器:docker rm 容器名称(只能删除已经停止的容器)
6.创建与启动容器:
创建容器: docker run
-i 表示运行容器
-t表示容器启动后会进入其命令行
–name 为创建的容器命名
-v 表示目录映射
-d 创建一个守护式容器在后台运行
-p 表示端口映射,前者为宿主机端口,后者为容器内的映射端口
①交互式方式创建容器,启动并进入容器,退出后容器也关闭了,退出:exit
docker run -it --name=容器名称 镜像名称:标签 /bin/bash
②守护式方式创建容器,后台运行,进入后退出不会关闭容器
docker run -id --name=容器名称 镜像名称:标签
登录守护式容器方式:docker exec -it 容器名称(或者容器id) /bin/bash

  • 文件拷贝

①将文件拷贝到容器内:docker cp 需要拷贝的文件或目录 容器名称:容器内要拷贝到的目录
②将文件从容器内拷贝出来:docker cp 容器名称:容器中要拷贝的目录或文件 宿主机的目标地址

  • 目录挂载

在创建容器的时候,将宿主机的目录与容器内的目录进行映射。这样就可以通过修改宿主机某个目录的文件从而影响容器
-v 宿主机目录:容器目录
例子:docker run -id -v /usr/local/myhtml:/usr/local/myhtml --name=mycentos3 centos:7
解释:创建并启动一个守护式容器,将宿主机的目录与容器目录进行映射,为容器起名为mycentos3,以镜像centos:7为模板创建
如果共享的式多级目录,可能会出现权限不足的提示,因为CentOS7中的安全模块selinux把权限禁掉了,我们需要添加参数 --privileged=true来解决挂在的目录没有权限的问题

  • 查看容器id地址

查信息:docker inspect 容器名称
查ip:docker inspect --format=’{{.NetworkSettings.ISAddress}}’ 容器名称

  • 镜像的迁移与备份

容器保存为镜像:docker commit 容器名称 镜像名称
镜像备份(镜像保存为文件):docker save -o 文件名 镜像名称
镜像恢复(文件恢复成镜像):docker load -i 文件名

  • Dockerfile

Dockerfile是由一系列命令和参数构成的脚本,这些命令应用于基础镜像并最终创建一个新的镜像
常用命令
1.FROM image_name:tag 定义了使用哪个基础镜像启动构建流程
2.MAINTAINER user_name 声明镜像的创建者
3.ENV key value 设置环境变量(可以写多条)
4.RUN command 是Dockerfile的核心部分(可以写多条)
5.ADD source_dir/file dest_dir/file 将宿主机的文件复制到容器内,如果是一个压缩文件,将会在复制后自动解压
6.COPY source_dir/file dest_dir/file 和ADD相似,但是如果有压缩文件不能解压
7.WORKDIR path_dir 设置工作目录

使用Dockerfile构建一个jdk1.8的镜像

1.创建一个目录 mkdir -p /usr/local/dockerjdk8
2.上传一个jdk8到上面的目录
3.在目录下构建一个文件 vi Dockerfile
4.文件内输入脚本信息:
FROM centos:7 基于centos7镜像(本地必须有,没有会自动下载)
MAINTAINER EnHui 镜像创建者
WORKDIR /usr 设置工作目录
RUN mkdir /usr/local/java 创建一个目录
ADD jdk-8u171-linux-x64.tar.gz /usr/local/java/ 将上传的jdk放到容器内
ENV JAVA_HOME /usr/local/java/jdk1.8.0_171 设置环境变量
ENV JRE_HOME $JAVA_HOME/jre
ENV CLASSPATH $JAVA_HOME/bin/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH
ENV PATH $JAVA_HOME/bin:$PATH
5.保存文件 按esc键,输入:wq按回车
6.docker build -t='jdk1.8' . 命令:docker build -t=‘镜像名称’ Dockerfile文件所在的文件夹(Dockerfile和jdk在一起)
7.完成后,使用命令docker images查看镜像是否构建成功

  • 搭建私有仓库

搭建私有仓库,其实就是构建一个registry镜像的容器,并做一些配置
1.docker search registry 查看docker hub上的镜像
2.docker pull registry 拉去Tag为latest的镜像
3.docker run -di --name=registry -p 5000:5000 registry 守护式启动容器。浏览器访问宿主机,私有仓库所在服务器ip(或域名):5000/v2/_catalog验证
4.vi /etc/docker/daemon.json 修改daemon.json,添加内容{"insecure-registries":["ip:5000"]} ip为私有仓库所在服务器ip。用于让docker信任私有仓库地址
5.systemctl restart docker 重启docker服务
上传镜像到私有仓库
1.docker tag 镜像名称 私服地址 例如:docker tag jdk1.8 127.0.0.1:5000/jdk1.8
2.docker push 私服地址 例如: docker push 127.0.0.1:5000/jdk1.8

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值