Docker使用

本文详细介绍了Docker的安装、镜像与容器的管理,包括搜索、拉取、删除镜像,启动、停止、重启及删除容器,数据拷贝,端口映射,镜像推送以及使用Dockerfile创建镜像等核心操作。通过实例演示,帮助读者快速上手Docker。
摘要由CSDN通过智能技术生成

Docker使用

安装

菜鸟教程

https://www.runoob.com/docker/docker-command-manual.html

一键安装

curl -sSL https://get.daocloud.io/docker | sh

镜像加速 通过自己的阿里云账号直接加速 参考 菜鸟教程 不做介绍

指令

镜像指令

  

//搜索
docker search tomcat

//拉取  可以加tag
docker pull tomcat

//查询本地镜像
docker images

//删除镜像
[root@iZbp1hmyyp75h0xc481p40Z ~]# docker rmi nginx
Untagged: nginx:latest
Untagged: nginx@sha256:10b8cc432d56da8b61b070f4c7d2543a9ed17c2b23010b43af434fd40e2ca4aa
Deleted: sha256:f6d0b4767a6c466c178bf718f99bea0d3742b26679081e52dbf8e0c7c4c42d74
Deleted: sha256:4dfe71c4470c5920135f00af483556b09911b72547113512d36dc29bfc5f7445
Deleted: sha256:3c90a0917c79b758d74b7040f62d17a7680cd14077f734330b1994a2985283b8
Deleted: sha256:a1c538085c6f891424160d8db120ea093d4dda393e94cd4713e3fff3c82299b5
Deleted: sha256:a3ee2510dcf02c980d7aff635909612006fd1662084d6225e52e769b984abeb5


如果镜像的容器在运行的时候 不能使用rmi删除 但是可以使用 rmi -f 强制删除 会把对应的容器停掉再删除

删除所有镜像 恢复环境
docker rmi $(docker images -q)

容器指令

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

mysql启动 -d 后台 -p端口映射
docker run -p 3339:3306 --name mymysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7

使用镜像nginx:latest以交互模式启动一个容器,在容器内执行/bin/bash命令。
docker run -it nginx:latest /bin/bash
使用exit 退出

再进去使用
docker exec -it {id}
在容器 mynginx 中开启一个交互模式的终端:
在docker 里面新开了一个bash 进程,在该终端可以通过命令和容器交互,类似于通过ssh和远程linux server 交互。
所以大多数情况,可以直接使用 docker exec 命令。
docker exec -i -t  mynginx /bin/bash
sudo docker exec -i -t loving_heisenberg /bin/bash

使用docker镜像nginx:latest以后台模式启动一个容器,并将容器命名为mynginx。 -d是守护式 就是后台运行 这个是最常用的
docker run --name mynginx -d nginx:latest

显示正在运行的容器  容器使用id去弄 不然tag容易出错
docker ps
所有
docker ps -a
暂时最近的2个
docker ps -n 2

进入容器
docker attach 容器id  

重启容器
docker restart 容器id

停止容器  正常关
docker stop 容器id

强杀进程 可能出现意外 不建议使用
docker kill 容器id

物理删除容器
docker rm 容器id

docker rm -f 容器id  删除带运行的 以后都用带f的就行了


docker cp :用于容器与主机之间的数据拷贝。

将主机/www/runoob目录拷贝到容器96f7f14e99ab的/www目录下
docker cp /www/runoob 96f7f14e99ab:/www/

将容器96f7f14e99ab的/www目录拷贝到主机的/tmp目录中
docker cp  96f7f14e99ab:/www /tmp/

端口映射

-p

Docker Commit

**docker commit 😗*从容器创建一个新的镜像。

docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
OPTIONS说明:

-a :提交的镜像作者;

-c :使用Dockerfile指令来创建镜像;

-m :提交时的说明文字;

-p :在commit时,将容器暂停。


将容器a404c6c174a2 保存为新的镜像,并添加提交人信息和说明信息。

runoob@runoob:~$ docker commit -a "runoob.com" -m "my apache" a404c6c174a2  mymysql:v1 
sha256:37af1236adef1544e8886be23010b66577647a40bc02c0885a6600b33ee28057
runoob@runoob:~$ docker images mymysql:v1
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
mymysql             v1                  37af1236adef        15 seconds ago      329 MB


推送镜像到服务器 hub 或者阿里云服务器

需要注册账号

docker push

目录挂载

不使用目录挂载就需要使用 docker cp 进行复制 使用不是很方便

有一项重要的参数 -v 目录挂载,就是让容器内部目录和宿主主机目录关联起来,这样就可以直接操作宿主主机目录而不用再操作具体容器了

譬如我要启动一个centos容器,宿主机的/test目录挂载到容器的/soft目录,可通过以下方式指定:

# docker run -it -v /test:/soft centos /bin/bash

这样在容器启动后,容器内会自动创建/soft的目录。通过这种方式,我们可以明确一点,即-v参数中,冒号":"前面的目录是宿主机目录,后面的目录是容器内目录。

通常有多个目录挂载

Springboot项目运行

使用简单的主从mysql

docker file 必须掌握

https://www.cnblogs.com/panwenbin-logs/p/8007348.html

下面给出mycat的文件

FROM centos

MAINTAINER caomingxing

 

LABEL name="cmx myCat Image" \

    build-date="20210119"

    
ADD jdk-8u251-linux-x64.tar.gz /home/
ADD Mycat-server-1.6.7.4-release-20200105164103-linux.tar.gz /home/


ENV WORKPATH /home/mycat/
WORKDIR $WORKPATH


ENV JAVA_HOME /home/jdk1.8.0_251
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin

 
EXPOSE 8066
CMD /home/mycat/bin/mycat console
docker build -f mycatdockerfile -t mycat:1.0 .
docker run -p 3341:8066 -it accb423d38ae

我们先把conf配置和logs日志目录copy到宿主机,主要是我们启动的时候挂载宿主机,方便配置和查看日志;

docker cp 3a8a153a3312:/home/mycat/conf /home/docker/mycat/

 docker cp 3a8a153a3312:/home/mycat/logs /home/docker/mycat/
docker run -p 3341:8066 -it  -v /home/docker/mycat/conf/:/home/mycat/conf/ -v /home/docker/mycat/logs/:/home/mycat/logs/ 镜像id

docker run -p 3341:8066 -it  -v /home/docker/mycat/conf/:/home/mycat/conf/ -v /home/docker/mycat/logs/:/home/mycat/logs/ b9ad9d026f9c

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

星仔说

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值