Docker小小白

Docker

1.三要素

  • 容器
  • 镜像
  • 仓库

2.安装

yum update

yum install -y yum-utils device-mapper-persistent-data lvm2

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

yum list docker-ce --showduplicates | sort -r

yum install -y docker-ce-18.03.1.ce

systemctl start docker 启动

systemctl enable docker 开机启动 —很重要

docker version

[root@docker01 ~]# docker version
Client:
Version: 18.03.1-ce
API version: 1.37
Go version: go1.9.5
Git commit: 9ee9f40
Built: Thu Apr 26 07:20:16 2018
OS/Arch: linux/amd64
Experimental: false
Orchestrator: swarm

Server:
Engine:
Version: 18.03.1-ce
API version: 1.37 (minimum version 1.12)
Go version: go1.9.5
Git commit: 9ee9f40
Built: Thu Apr 26 07:23:58 2018
OS/Arch: linux/amd64
Experimental: false

修改为阿里云镜像

mkdir -p /etc/docker

touch daemon.json

vi daemon.json

加入内容:{ “registry-mirrors”: [“专属加速地址”] }

systemctl daemon-reload

systemctl restart docker

3.docker常见的基础命令

  • 非交互式

    docker run ubuntu:18.04 /bin/echo “HelloWorld”

  • 交互式

    docker -i -t -d ununtu:18.04 /bin/bash

docker --help 帮助命令

docker pull ubuntu 默认下载最新版本

docker pull ubuntu:18.06

docker ps -a 查看启动的容器的状态

docker ps -aq 查看容器的ID

docker run -i -t -d ubuntu 后台运行

docker run -p 8888:8080 tomcat 指定容器端口运行tomcat

docker run -P tomcat 随机端口运行

docker restart 容器ID 重启

docker stop 容器ID 停止

docker start 容器ID 启动

docker rm 容器ID 删除

docker log 容器名称/容器ID 查看日志

docker attach 容器ID 进入容器

docker exec -it /bin/bash 容器ID 进入容器

docker exec -it 容器ID ls -l 不用进入容器

4.镜像操作

docker search httpd 搜索镜像

docker images 显示所有镜像

docker rmi ubuntu 删除镜像

docker rmi -f ubuntu 强制删除镜像

docker export 容器ID>ubuntu.tar.gz 导出到文件

docker import ./ubuntu.tar 导入镜像

docker commit -m=“comment” -a=“author” 容器ID name:tag 创建镜像并提交到本机

5.容器数据卷

​ docker run -it -v /usr/dataCentosVolume:/usr/dataCentosVolume centos 容器和宿主机共享文件系统

​ docker run -it -v /usr/dataCentosVolume:/usr/dataCentosVloume:ro centos 容器和宿主机共享文件系统,容器只能读取文件不能修改和添加

6.DockerFile

docker inspect 容器ID 查看容器的信息

准备文件

mkdir /mydocker

vi DockerFile

填入内容:简易版

FROM centos
VOLUME ["/dataCentosVolume01",“dataCentosVolume02”]
CMD echo “finished … success”
CMD /bin/bash

docker build -f /mydocker/DockerFile -t my_centos . 用dockerfile构建新的centos镜像

启动:docker run -it my_centos

7.用DockerFile创建容器数据卷

docker run -it --name dc01 my_centos

docker run -it --name dc02 --volumes-from dc01 my_centos

docker run -it --name dc03 --volumes-from dc01 my_centos

dc02和dc03共享dc01的数据卷,容器的关闭不会影响其他容器对数据卷的读写操作

8.DockeFile解析

FROM 基础镜像,当前镜像基于哪个镜像

MAINTAINER 镜像维护者的姓名和邮箱

RUN 容器构建时需要运行的命令

EXPOSE 容器对外暴露的端口

WORKDIR 指定在创建容器后,终端登录进来的默认工作目录

ENV 用来在构建镜像过程中设置的环境变量

ADD 将宿主机目录下的文件拷贝到镜像并且ADD命令会自动处理URL和解压tar压缩包

COPY 类似ADD,但是不会自动处理URL和解压

VOLUME 容器数据卷

CMD 指定一个容器启动时运行的命令,有多个CMD只会生效最后一个,CMD会被dockers run之后的参数替换

ENTRYPOINT 和CMD一样,指定容器启动程序和参数

ONBUILD 当构建一个被继承的DockerFile时运行命令,父镜像在被子继承后父镜像的onbuild出发

1.案例一

FROM centos
MAINTAINER waj123@qq.com>
ENV mypath /mywork
RUN mkdir $mypath
RUN yum -y install vim
RUN yum -y install net-tools
WORKDIR $mypath
VOLUME $mypath
EXPOSE 80
CMD echo “==========================================”
CMD /bin/bash

2.案例二

FROM centos
RUN yum -y install curl
CMD [“curl”,"-s",“http://www.baidu.com”]

启动容器run后面的命令会替换CMD后面的命令

FROM centos
RUN yum -y install curl
ENTRYPOINT [“curl”,"-s",“http://www.baidu.com”]

启动容器run后面的命令会追加到CMD命令

3.案例三

FROM centos
RUN yum -y install curl
ENTRYPOINT [“curl”,"-s",“http://www.baidu.com”]
ONBUILD RUN echo “^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^”

docker build -f /mydocker/myip02 -t myip02:2.0 .

FROM myip02:2.0
RUN yum -y install curl
CMD [“curl”,"-s",“http://www.baidu.com”]

docker build -f /mydocker/myip03 -t myip03:1.0

在构建myip03:1.0的时候会触发myip02:2.0镜像的onbuild

mysql

docker run -d -p 3306:3306 --name mysql -v /mydocker/mysql/conf:/etc/mysql/conf.d -v /mydocker/mysql/logs:/logs -v /mydocker/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 mysql

redis

docker run -d -p 6379:6379 --name redis -v /mydocker/redis/data:/data -v /mydocker/redis/conf/redis.conf:/usr/local/etc/redis/redis.conf redis:3.2 redis-server /usr/local/etc/redis/redis.conf --appendonly yes

docker exec -it 容器ID redis-cli 打开redis客户端

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值