Docker常用命令

Docker配置阿里云镜像仓库

1,登录进入阿里云镜像服务中心,获取镜像地址
2,在/etc/docker目录下找到在daemon.json文件(没有就新建),将下面内容写入
{
“registry-mirrors”: [“https://xxxxxxx.mirror.aliyuncs.com”]
}
3,重启daemon
systemctl daemon-reload

4,重启docker服务
systemctl restart docker

Docker基本命令

启动Docker

systemctl start docker

停止Docker

systemctl stop docker

重启Docker
systemctl restart docker

开机启动Docker
systemctl enable docker

查看Docker概要信息
docker info

查看Docker帮助文档
docker --help

查看Docker版本信息
docker version

Docker镜像常用命令

docker images 列出本机所有镜像
docker search 搜索镜像
docker pull 下载镜像
docker rmi 删除镜像
docker ps 查看正在运行的镜像
docker ps -a 查看所有启动的镜像

Docker推送镜像到hub服务器

步骤一:
https://hub.docker.com/ 注册下 得到docker id和密码
步骤二:
用docker login登陆hub服务器
步骤三:
docker push推送(用户名必须与注册的一直,不然会推送失败)
docker push 用户名/镜像名:版本
推送成功:
登陆 https://hub.docker.com/ 点击 Repositories 菜单

Docker创建并启动容器

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

–name=“容器新名字”:为容器指定一个名称;
-i:以交互模式运行容器,通常与-t或者-d同时使用;
-t:为容器重新分配一个伪输入终端,通常与-i同时使用;
-d: 后台运行容器,并返回容器ID;
-P: 随机端口映射,容器内部端口随机映射到主机的端口
-p: 指定端口映射,格式为:主机(宿主)端口:容器端口
启动普通容器: docker run --name 别名 镜像ID
启动交互式容器: docker run -it --name 别名 镜像ID 来运行一个容器,取别名,交互模式运行,以及分配一个伪终端

启动容器,并执行/bin/bash命令;
docker run -it --name 别名 镜像ID /bin/bash命令

端口映射;
docker run -it -p 8888:8080 tomcat
docker run -it -P tomcat

Docker宿主机和容器之间文件拷贝

Docker宿主机和容器之间文件拷贝 docker copy

宿主机文件 copy to 容器内
docker cp 需要拷贝的文件或者目录 容器名称:容器目录
容器内 copy to 宿主机
docker cp 容器名称:容器目录 宿主机目录

Docker 查看容器日志docker logs

docker logs [OPTIONS] CONTAINER

Options:

    --details        显示更多的信息

-f, --follow         跟踪实时日志

    --since string   显示自某个timestamp之后的日志,或相对时间,如42m(即42分钟)

    --tail string    从日志末尾显示多少行日志, 默认是all

-t, --timestamps     显示时间戳

    --until string   显示自某个timestamp之前的日志,或相对时间,如42m(即42分钟)

简单粗糙方式,直接去docker容器文件里找;
具体未知:/var/lib/docker/containers/
每个容器对应一堆文件,然后有个log结尾的,就是日志文件;

Docker查看容器进程

docker top 容器ID

Docker进入容器执行命令

docker exec -it 容器名称 或者 容器ID 执行命令
docker exec -it id ls -l
exit容器停止并退出
Ctrl+P+Q容器不停止退出
直接操作容器,执行完 回到 宿主主机终端;

Docker提交运行时容器成为镜像docker commit

Docker提交运行时容器成为镜像docker commit
docker commit -a=‘作者’ -m=‘备注’ 运行时容器ID 新镜像名称

Docker容器目录挂载

简介:

容器目录挂载:
我们可以在创建容器的时候,将宿主机的目录与容器内的目录进行映射,这样我们就可以实现宿主机和容器目录的双向自动同步;

作用:
前面学过cp命令来实现数据传递,这种方式比较麻烦;
我们通过容器目录挂载,能够轻松实现代码上传,配置修改,日志同步等需求;

实现:
语法:
docker run -it -v /宿主机目录:/容器目录 镜像名

多目录挂载
docker run -it -v /宿主机目录:/容器目录 -v /宿主机目录2:/容器目录2 镜像名

注意:
如果你同步的是多级目录,可能会出现权限不足的提示;
这是因为Centos7中的安全模块selinux把权限禁掉了,我们需要添加 --privileged=true 来解决挂载的目录没有权限的问题;

挂载目录只读:
docker run -it -v /宿主机目录:/容器目录:ro 镜像名

Docker自定义网络模式,实现容器固定ip地址

Docker默认使用的是bridge 桥接网络模式,
我们可以查看下 docker network ls

我们创建自定义网络模式;
docker network create --subnet=172.20.0.0/16 extnetwork

创建容器并指定IP;

通过–net extnetwork --ip 172.20.0.2 指定

案例:

docker run -p 8066:8066 -it -v /home/docker/mycat/conf/:/home/mycat/conf/ -v /home/docker/mycat/logs/:/home/mycat/logs/ --net extnetwork --ip 172.20.0.2 镜像id

这里必须用172.20.0.2开始分配,因为172.20.0.1是网关;

查看容器信息;

docker inspect 容器id

扩展:

docker network rm extnetwork #删除网络

DockerFile常用指令

DockerFile常用指令

FROM image_name:tag

定义了使用哪个基础镜像启动构建流程

MAINTAINER user_info

声明镜像维护者信息

ENV key value

设置环境变量(可以写多条)

RUN command

构建容器时需要运行的命令(可以写多条)

WORKDIR path_dir

设置终端默认登录进来的工作目录

EXPOSE port

当前容器对外暴露出的端口

ADD source_dir/file dest_dir/file

将宿主机的文件复制到容器内,如果是一个压缩文件,将会在复制后自动解压

COPY source_dir/file dest_dir/file

和ADD相似,但是如果有压缩文件是不能解压

VOLUME

创建一个可以从本地主机或其他容器挂载的挂载点,一般用来存放数据库和需要保持的数据等

CMD

指定容器启动时要运行的命令,假如有多个CMD,最后一个生效

ENTRYPOINT

指定容器启动时要运行的命令

ONBUILD

当构建一个被继承的Dockerfile时运行的命令,父镜像在被子镜像继承后父镜像的onbuild被触发。可以把ONBUID理解为一个触发器。

DockerFile构建自定义centos

FROM centos

MAINTAINER xx@126.com>

LABEL name=" CentOS Image"
build-date=“20191112”

ENV WORKPATH /home/

WORKDIR $WORKPATH

RUN yum -y install net-tools

RUN yum -y install vim

EXPOSE 80

CMD /bin/bash

第二步:通过DockerFile构建镜像

构建 docker build -f myCentosDockerFile -t xx/mycentos:1.1 .

第三步:测试运行镜像

运行 docker run -it 镜像ID

第四步:查看镜像历史

查看镜像历史 docker history 镜像ID

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值