镜像基本命令

帮助命令

docker --help

docker info 显示docker 的容器和镜像信息

docker version 显示docker的版本信息

镜像命令

docker images

显示docker 的镜像。

docker 搜索命令

image

docker pull

现在镜像
docker pull mysql:[tag]

docker pull docker.io/library/mysql:latest

docker rmi

删除镜像

docker rmi -f 镜像ID

删除所有的镜像

docker rmi -f $(docker images -aq)

容器命令

下载一个centos 的镜像 ,docker pull centos

新建容器并启动

docker run [可选参数] 镜像

参数说明

参数 说明
--name 容器名称
-d 后台方式运行
-it 交互方式运行
-p 端口映射 -p 主机端口:容器端口 -p 8080:8080
-P 随机指定端口

启动并进入容器

docker run -it centos /bin/bash

image

进入容器后,使用exit 命令退出容器。

查看运行的容器

docker ps 查看活动的容器

参数 说明
-a 查看所有的容器,包括停止的
-n=? 查看最近运行的容器
-q 只显示容器ID docker ps -aq

退出容器

exit 容器停止并退回
ctrl + p +q 容器不停止退出

删除容器

docker rm 容器ID
docker rm -f $(docker ps -aq)
docker ps -a -q | xargs docker rm
docker ps -a -q | xargs docker rm -f

启动或停止容器

docker start 容器ID
dokcer restart 容器ID
docker stop 容器ID
docker kill 容器ID

常用的其他命令

后台启动容器

docker run -d centos

查看日志

docker logs -f -t -tail 条数 容器ID

让容器一直运行
docker run -d centos /bin/sh -c "while true;do echo ray;sleep 1;done"

docker logs -t -f --tail 10 1239043eefa8

查看容器内部的进程信息

docker top 容器ID

image

查看镜像元数据

docker inspect 容器ID

image

进入正在运行的容器

docker exec -it 容器ID /bin/bash #进入容器后开启一个新的终端,可以在里面操作
docker attach 容器id # 进入容器正在执行的终端

从容器拷贝文件到主机

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

测试

安装nginx

下载镜像
docker pull nginx
运行容器

docker run -d --name 名字 -p 主机端口:容器端口 镜像名称

docker run -d --name nginx001 -p 8080:80 nginx

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

用完即删除

docker run -it --rm tomcat:9.0 ,一般用来测试,用完即删除

docker run -d -p 3355:8080 --name tomcat01 tomcat

安装 elasticsearch

docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:7.17.3

image

docker stats

image

增加内存配置:

docker run -d --name elasticsearch001 -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms512m -Xmx512m" elasticsearch:7.17.3

docker 图形化管理工具

docker run -d -p 9000:9000 --restart=always -v /var/run/docker.sock:/var/run/docker.sock --privileged=true portainer/portainer

image

image

commit 镜像

docker commit 提交容器为一个新的副本

docker commit -m="提交的信息" -a="作者信息" 容器ID 目标镜像名称:[tag]

测试步骤:

1.启动一个tomcat
2.在tomcat中增加一个webapps 应用
3.拷贝文件到webapps目录。
4.将操作过的容器通过commit 提交为一个镜像,以后就可以使用这个镜像。

容器数据卷

什么是容器数据卷

数据不能保存在容器中,容器一删除,数据就删除了。数据不放在容器中。容器之间有一个数据共享技术。数据卷就是将容器内的目录 挂载到 宿主机目录上。

image

使用数据卷

使用命令挂载:
docker run -it -v /home/test:/home centos /bin/bash

docker inspect 容器ID

image

docker run -d -p 3310:3306 -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql01 mysql:8.0.29

Dockfile

用来构建docker镜像。
1.编写一个docker文件
2.构建镜像
3.运行镜像
4.dockerpush 发布镜像

docker 指令

1.指令必须都是大写字母。
2.从上到下执行
3.# 为注释
4.每一个指令会创建一个新的镜像层。

dockerfile 指令说明

image

指令 说明
FROM 基础镜像
MAINTAINER 镜像是谁写的
RUN 镜像构建是需要运行的命令
ADD 步骤 tomcat镜像,需要添加的内容
WORKDIR 镜像的工作目录
VOLUME 挂载的目录
EXPOSE 保留端口配置
CMD 指定这个容器需要运行的命令,只有最后一个会生效
ENTRYPOINT 指定这个容器需要运行的命令,可追加命令
ONBUILD 当构建一个被继承DockerFile这个时候会运行ONBUILD的指令,触发指令
COPY 类似ADD 将文件copy到镜像
ENV 构建的时候 设置环境变量

编写 dokerfile


FROM centos:7

MAINTAINER  RAY<58133370@qq.com>

ENV MYPATH /usr/local
WORKDIR $MYPATH

RUN yum -y install vim
RUN yum -y install net-tools

EXPOSE 80

CMD echo $MYPATH
CMD /bin/bash

编译构建

docker build -f dockfile -t mycentos:1.0 .

测试运行

docker run -it mycentos:1.0

1.进入后,直接进到工作目录
2. 支持 ifconfig 明
3.支持vi 命令

可以通过 docker history '镜像ID'查看进行编译的过程

CMD和 ENTRYPOINT区别

CMD ["ls" ,"-a"]

docker run 镜像ID -l 会报错

ENTRYPOINT ["ls" ,"-a"]

docker run 镜像ID -l 会变成 ls -al ,不会报错

tomcat 镜像

  • 编写Dockerfile
FROM centos:7

MAINTAINER ray<58133370@qq.com>

ADD jdk-8u191-linux-x64.tar.gz /usr/local/
ADD apache-tomcat-9.0.62.tar.gz /usr/local/

RUN yum -y install vim

ENV MYPATH /usr/local
WORKDIR $MYPATH

ENV JAVA_HOME=/usr/local/jdk1.8.0_191
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV CATALINA_HOME /usr/local/apache-tomcat-9.0.62
ENV CATALINA_BASE /usr/local/apache-tomcat-9.0.62
ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib;$CATALINA_HOME/bin

EXPOSE 8080

CMD $CATALINA_HOME/bin/startup.sh && tail -F $CATALINA_HOME/logs/catalina.out
  • 编译镜像

docker build -t tomcat:1.0 .

  • 运行镜像

docker run -d -p 8080:8080 -v /home/tomcat/webapps:/usr/local/apache-tomcat-9.0.62/webapps tomcat:1.0

  • 打tag

docker tag 容器ID ray/tomcat:1.0

导出导入镜像

  • 将镜像保存到tar文件中,这个镜像可以拷贝给其他人
    docker save -o tomcat.tar tomcat:1.0
  • 可以将导出的镜像导入
    docker load -i tomcat.tar

Docker网络

posted on 2022-05-02 13:45  自由港  阅读(37)  评论(0编辑  收藏  举报