docker笔记
docker安装
在Linux中安装
首先 你要有一台服务器 可以去阿里云买 或者有一台虚拟机 会点Linux基础操作
就可以了
然后安装
#1.卸载以前的版本
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
#2.需要安装的安装包
yum install -y yum-utils
#3.配置镜像仓库 默认官网的是国外的镜像
用国内的
yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
#4.开始安装docker
yum install docker-ce docker-ce-cli containerd.io
#5.安装后启动
systemctl start docker
#6.docker version 看看启动成功没有
#7.docker run hello-world 启动一个hello 到此 安装成功
安装之后 为了让镜像的速度更快 我们可以再次加强镜像速读
1.打开阿里云网页
2.登录自己的阿里云账号
3.搜索镜像配置
4.找到 自己的镜像专属配置
基本命令
帮助命令
docker version 显示docker版本
docker info 显示docker系统信息
docker 命令 --help 万能命令
镜像命令
[root@izbp12nmkl044l6gs1yldoz /]# docker images -a
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest bf756fb1ae65 9 months ago 13.3kB
REPOSITORY 仓库
TAG 标签
IMAGE ID id
CREATED 创建时间
SIZE 大小
docker images -a (all) 显示所有的镜像
docker images -q (quiet)只显示镜像的id
docker search 搜索镜像 + 命令
docker pull 下载镜像
docker pull 镜像[:tag] 指定你下载的镜像的版本 如果不指定 默认是最新的版本
docker rmi 名字 或者 id 删除指定的镜像
docker rmi -f ${docker images -aq} 递归删除所有的镜像
容器命令
说明:我们有了镜像才能创建容器 Linux中下载一个centos镜像
docker pull centos
新建容器后 启动
docker run [参数]
--name="" 容器名字 用来区分容器
-d 后台方式运行
-it 交互方式运行 进入容器查看内容
-p 指定容器的端口
-p ip:主机端口:容器端口
-p 主机端口:容器端口 主机端口映射容器端口(常用)
-p 容器端口
容器端口
-P 随机指定端口
测试 并机进入容器
[root@izbp12nmkl044l6gs1yldoz /]# docker run -it centos /bin/bash #交互运行 需要控制台 而控制台一般在bin下面
进入后
[root@d21d257391f5 /]# ls
bin etc lib lost+found mnt proc run srv tmp var
dev home lib64 media opt root sbin sys usr
使用后退出
exit
列出正在运行的容器
docker ps 命令
docker ps -a 列出使用过的容器和正在运行的容器
docker ps -a -n=1 列出最近最后一个使用的容器
-aq 只显示出容器的编号
删除容器
docker rm 容器的id 不能删除正在运行的容器
docker rm -f $(docker ps -aq) 查出所有的容器id 并递归删除
docker start 容器id
docker restart 容器id
docker stop 容器id
docker kill 容器id
常用的其它命令
后台启动容器
docker run -d 镜像名
但是:如果你的前台没有进程的话 后台的镜像 会默认关闭的
查看日志
docker logs -f -t --tail 条数 容器
-tf 显示所有的日志
tail number
查看centos的前10条数据
docker logs -tf -tail 10 centos
查看容器中的进程信息
docker top 容器id
查看元数据
docker inspect 容器id
进入当前正在运行的容器
docker exec -it 容器id bashshell
进入后开启新的终端
[root@izbp12nmkl044l6gs1yldoz /]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9958e85e2f09 centos "/bin/bash" 41 seconds ago Up 40 seconds crazy_brahmagupta
[root@izbp12nmkl044l6gs1yldoz /]# docker exec -it 9958e85e2f09 /bin/bash
[root@9958e85e2f09 /]# docker ps
bash: docker: command not found
[root@9958e85e2f09 /]# ps -ef
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 11:46 pts/0 00:00:00 /bin/bash
root 14 0 0 11:47 pts/1 00:00:00 /bin/bash
root 28 14 0 11:48 pts/1 00:00:00 ps -ef
docker attach 容器id
attach的作用是不是直接进入容器本身 而是直接进入容器正在运行的命令行
从容器中拷贝数据到主机上
docker cp 容器id:容器内的路径 目的的主机路径
docker安装Nginx
1.搜索镜像 docker search
2.下载镜像 pull
3.运行测试
进入Nginx容器中
docker exec -it nginx01 /bin/bash
[root@izbp12nmkl044l6gs1yldoz /]# docker exec -it nginx01 /bin/bash
root@fb14ae239b9a:/# whereis nginx
nginx: /usr/sbin/nginx /usr/lib/nginx /etc/nginx /usr/share/nginx
root@fb14ae239b9a:/# cd /etx/nginx
bash: cd: /etx/nginx: No such file or directory
root@fb14ae239b9a:/# cd /etc/nginx
root@fb14ae239b9a:/etc/nginx# ls
conf.d koi-utf mime.types nginx.conf uwsgi_params
fastcgi_params koi-win modules scgi_params win-utf
root@fb14ae239b9a:/etc/nginx#
es
docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms64m -Xmx512m" elasticsearch:tag
docker镜像讲解
镜像是什么?
是一种轻量级,可执行的独立软件包,用来打包软件运行环境和基于运行环境开发的软件,它包含运行某个软件所需要的内容,包括代码,库,配置文件,环境变量
所有的应用直接打包下载就可以直接跑起来
数据卷挂载
将容器中的数据实时更新到本地中去
-v
docker run -it -v /home/ceshi:/home
#将容器中home目录下的所有东西 都挂载到本机的home下的ceshi中去
DockerFile
dockerfile是面向开发的 我们以后发布项目 作镜像 就需要写dockerfile,这个文件很简单
docker镜像逐渐称为企业交付的标准
步骤:开发 部署 运维
dockerfile:构建文件 定义一切步骤 源代码
dockerimages:通过dockerfile构建生成的镜像,最终发布和运行的产品
docker容器:容器就是镜像运行起来提供的服务器
dockerfile的指令
FORM # 基础镜像 一切从这里开始
MAINTAINE # 镜像是谁写的 姓名+邮箱
RUN # 镜像构建的时候需要运行的命令
ADD # 步骤:Tomcat镜像 这个Tomcat压缩包 添加内容
WORKDIR # 镜像的工作目录
VOLUME # 挂载的目录
EXPOSE # 保留端口配置
CMD # 指定这个容器启动的时候要运行的命令 只有最后一个会生效
ENTRYPOINT # 指定一个容器启动的时候要运行的命令 可以追加命令
ONBUILD # 当构建一个被继承的dockerfile 这个时候就会运行这个指令
COPY # 类似ADD 将我们文件拷贝到镜像中
ENV # 构建时候设置环境变量
自己构建一个centos
1.写配置信息
WORKDIR $MYPATH
RUN yum -y install vim
RUN yum -y install net-tools
EXPOSE 80
CMD echo $MYPATH
CMD echo "-------end--------"
CMD /bin/bash
2.运行这个脚本文件
docker build -f mydockerfile-centos -t mycentos:0.1 .注意 这个点不能没有
3.运行测试 docker run -it
自己构建一个Tomcat镜像 在自己配置的centos中
FROM centos
MAINTAINER zxh<331759124@qq.com>
ADD jdk-8u261-linux-x64.tar.gz /usr/local
ADD apache-tomcat-9.0.37.tar.gz /usr/local
RUN yum -y install vim
ENV MYPATH /usr/local
WORKDIR $MYPATH
ENV JAVA_HOME /usr/local/jdk1.8.0_11
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV CATALINA_HOME /usr/local/apache-tomcat-9.0.37
ENV CATALINA_BASH /usr/local/apache-tomcat-9.0.37
ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin
EXPOSE 8080
CMD /usr/local/apache-tomcat-9.0.37/bin/startup.sh && tail -F /usr/local/apache-tomcat-9.0.37/bin/logs/catalina.out