Docker命令

Docker常用命令

1、docker pull xxx 命令来拖取xxx镜像
2、docker images 查看docker的镜像
3、docker ps 查看当前运行的容器
   docker ps -l 查询最后一次创建的容器
   docker ps -a 全部容器
   docker ps -q 当前正在运行的容器ID
   docker ps -qa 全部容器以ID形式展示
4、docker rm ID 删除容器
   docker rm -f ID 强制删除
   docker rm $(docker ps -qa) 批量删除选中的容器ID
   docker rm xxID yyID 也是删除多个容器
5、docker rmi ID 删除镜像
6、docker inspect ID 来查看 Docker 的底层信息。它会返回一个 JSON 文件记录着 Docker 容器的配置和状态信息
7、docker run -it xxxID 以命令行的形式启动xxxID的镜像 name随机生成 -i交互式操作 -t终端
   docker run -it --name myxxx xxID(name) 以命令行的形式启动xxxID的镜像 并且name为myxxx
   docker run -it -v /Users/xxdir/mydocker:/containerVolume xxID
   在宿主机的/Users/xxdir/mydocker目录下 与 docker容器的containerVolume目录 建立容器数据卷(数据共享)
   docker run -it --privileged=true --name "xxx" 
-v /Users/XXXname/hostVolume:/containerVolume centos 
   给docker容器的授权写的权限
8、docker run -d xxxID 后台的形式启动xxxID的镜像 没有任务运行的话就会停止
   docker run -d --name tc -p 8888:8080 tomcat 启动tomcat 宿主机的8888端口对应docker_tomcat的8080端口
   docker run -d --name tc -P tomcat 随机端口号
9、docker build -f DockerFile -t xjm/centos .  构建镜像 命名为xjm/centos 
   -t :指定要创建的目标镜像名
. :Dockerfile 文件所在目录,可以指定Dockerfile 的绝对路径
10、docker start xxID 启动xxID容器
11、docker stop xxID 停止xxID容器
12、docker restart xxID 重启xxID容器
13、docker attach xxID 进入xxID容器 exit退出后容器停止
14、docker exec -it xxID /bin/bash 进入xxID容器 以/bin/bash的方式进入 exit退出后容器不停止
    docker exec -it xxID "echo $PATH" 运行完后就退出容器
15、docker commit -a "runoob.com" -m "my apache" a404c6c174a2  mymysql:v1
可以通过命令 docker commit 来提交容器副本
    -a提交的镜像作者 -m提交时的说明文字 -p :在commit时,将容器暂停 形成一个新的镜像 mymysql:v1
16、docker save -o mymysql.tar mymysql:v1 将mymysql.tar保存在当前文件夹
17、docker load -i ./mymysql.tar 加载mymysql.tar为镜像
18、docker export xxxID > xxx.tar 导出本地某个容器,可以使用 docker export 命令
19、cat docker/xx.tar | docker import - test/xxx:v1 导入容器快照
docker import url
20、docker logs ID 查看容器内部的标准输出 -f: 让 docker logs 像使用 tail -f 一样来输出容器内部的标准输出
21、docker top ID 查看容器内部运行的进程
22、docker search xxx 查询镜像
23、docker port ID 5000 命令可以让我们快捷地查看端口的绑定情况
24、docker cp /www/runoob 96f7f14e99ab:/www/ 将主机/www/runoob目录拷贝到容器96f7f14e99ab/www目录下
docker cp /www/runoob 96f7f14e99ab:/www 将主机/www/runoob目录拷贝到容器96f7f14e99ab中,目录重命名为www
docker cp  96f7f14e99ab:/www /tmp/ 将容器96f7f14e99ab/www目录拷贝到主机的/tmp目录中

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

DockerFile保留字指令:

1、FROM 基础镜像,当前镜像是基于哪个镜像的
2、MAINTAINER 镜像维护者的姓名和邮箱地址
3、RUN 容器构建时需要运行的命令
4、EXPOSE 对外暴露的端口
5、WORKDIR 指定在创建容器后,终端默认登录进来的工作目录,一个落脚点
6、ENV 用来构建镜像过程中设置环境变量
7、ADD 将宿主机目录下的问价你拷贝进镜像且ADD命令会自动处理URL和解压tar压缩包
8、COPY 类似ADD,拷贝文件和目录到镜像中
9、VOLUME 容器数据卷,用户数据保存和持久化工作
10、CMD 指定一个容器启动时要运行的命令 dockerfile中可以有多个CMD指令,但只有最后一个生效CMD会被docker run之后的参数替换
11、ENTRYPOINT 指定一个容器启动时要运行的命令 ENTRYPOINT的目的和CMD一样,都是在指定容器启动程序及参数
12、ONBUILD 当构建一个被继承的Dockerfile时运行命令,父镜像在被子继承后父镜像的onbuild被触发

相关DokcerFile案例:

Base镜像(scratch) Docker Hub中99%的镜像都是通过在base镜像中安装和配置需要的软件构建出来的
自定义镜像mycentos 登录后的默认路径 vim编辑器支持 查看网络配置ifconfig支持

FROM centos
MAINTAINER xxxname<xxxname@163.com>
ENV my_path /usr/local
WORKDIR $my_path
RUN yum -y install vim
RUN yum -y install net-tools
EXPOSE 80
CMD echo $my_path
CMD echo "success---------ok"
CMD /bin/bash

DockerFile保留字CDM 与 ENTRYPOINT 区别:

在dockerfile中只执行最后一个CMD 会被在docker run后面的命令覆盖 
dockerfile:
FROM centos
RUN yum -y install curl
CMD ["curl", "-s", "https://tool.lu/ip/"]

CMD ["curl", "-L", "tool.lu/ip"] ==> docker run -it mycentos:v2 ls -l ==> CMD ["curl", "-L", "tool.lu/ip"] CMD ["ls", "-l"]

ENTRYPOINT 在docker run后面加的会被追加到命令中
dockerfile:
FROM centos
RUN yum -y install curl
ENTRYPOINT ["curl", "-L", "tool.lu/ip"]
ENTRYPOINT ["curl", "-s", "https://tool.lu/ip/"]

ENTRYPOINT ["curl", "-L", "tool.lu/ip"]  ==> docker run -it mycentos:v2 -i ==> ENTRYPOINT ["curl", "-L", "-i", "tool.lu/ip"] 

自定义tomcat9 – Dockerfile

FROM centos
MAINTAINER xxx<xxxname@163.com>
#把宿主机当前上下文的c.txt拷贝到容器/usr/local路径下COPY只拷贝不解压
COPY c.txt /usr/local/container.txt
#把java与tomcat添加到容器 ADD命令COPY+解压
ADD jdk-8u161-linux-x64.tar.gz /usr/local
ADD apache-tomcat-9.0.37.tar.gz /usr/local
RUN yum -y install vim
RUN yum -y install net-tools
ENV MYPATH /usr/local
WORKDIR $MYPATH
#配置java与tomcat环境变量
ENV JAVA_HOME /usr/local/jdk1.8.0_161
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV CATALINA_HOME /usr/local/apache-tomcat-9.0.37
ENV CATALINA_BASE /usr/local/apache-tomcat-9.0.37
ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin
#容器运行时监听的端口
EXPOSE 8080
#启动时运行tomcat
#ENTRYPOINT ["/usr/local/apache-tomcat-9.0.37/bin/startup.sh"]
#CMD ["/usr/local/apache-tomcat-9.0.37/bin/startup.sh", "run"]
CMD /usr/local/apache-tomcat-9.0.37/bin/startup.sh && tail -F /usr/local/apache-tomcat-9.0.37/bin/logs/catalina.out

#tomcat9:
docker run -d -p 9080:8080 
-v /Users/xxxnamae/mydocker/tomcat9/test:/usr/local/apache-tomcat-9.0.37/webapps/test 
-v /Users/xxxname/mydocker/tomcat9/tomcat9logs:/usr/local/apache-tomcat-9.0.37/logs 
--name myt9 --privileged=true xxx/tomcat9

docker启动mysql

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

docker启动redis

docker run -p 6379:6379 -v /Users/WangSsyu/mydocker/myredis/data:/data -v 
/Users/xxxname/mydocker/myredis/conf/redis.conf:/usr/local/etc/redis/redis.conf 
--name redis -d redis redis-server /usr/local/etc/redis/redis.conf --appendonly yes 
// 数据持久化操作

push 推到阿里云的命令

docker login --username= registry.cn-hangzhou.aliyuncs.com
docker tag [ImageId] registry.cn-hangzhou.aliyuncs.com/xxxx/mycentos:[ImageVersion]
docker push registry.cn-hangzhou.aliyuncs.com/xxx/mycentos:[ImageVersion]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值