docker常见命令

1.帮助命令

# 显示docker的版本信息
[root@Link ~]# docker version 

# 显示docker的系统信息,包括镜像和容器的数量
[root@Link ~]# docker info   

2. 镜像命令

# 查看所有本地的主机上的镜像
dokcer images  

# 搜索镜像
docker search 镜像名[:tag]

# 下载镜像
docker pull  镜像名[:tag]

# 删除镜像
docker rmi -f 镜像id

 3.容器命令

# 新建容器并启动
docker run 

# 列出所有运行的容器
docker ps 

# 查看日志
docker logs -tf  容器id
docker logs -tf --tail number 容器id

# 进入当前正在运行的容器
docker exec -it 容器id /bin/bash
docker attach 容器id
# 两种方式的区别  docker exec进入容器后开启一个新的终端,可以在里面操作。 docker attach进入容器正在执行的终端,不会启动新的进程。

# 从容器内拷贝文件到主机上
docker cp 容器id:容器内路径 目的主机的路径

# 查看镜像的元数据
docker inspect 容器id

# 删除容器
docker rm -f 容器id

# 启动容器
docker start 容器id        

# 重启容器
docker restart 容器id    

# 停止当前正在运行的容器
docker stop 容器id        

# 强制停止当前容器
docker kill 容器id       

 

4.完整的docker run 命令

docker run -d -p 3306:3306 \
-v /home/mysql/conf:/etc/mysql/conf.d \
-v /home/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
--name mysql01 mysql:5.7

# 参数含义
-d 后台启动
-v 数据卷挂载
-e 设置环境变量
--name 设置容器名

5. 容器数据卷

容器之间可以有一个数据共享的技术,Docker容器中产生的数据,同步到本地。这就是**卷技术**,即目录的挂载,将我们容器内的目录,挂载到Linux主机上面。**容器的持久化和同步操作,容器间也是可以数据共享的。**

>方式一:直接使用命令来挂载:-v
>
>```shell
>-v 容器内的路径                    # 匿名挂载
>
>-v 卷名:容器内的路径               # 具名挂载
>
>-v /宿主机路径:容器内路径          # 指定路径挂载


>方式二:使用Dockerfile实现挂载
>Dockerfile 就是用来构建 docker 镜像的构建文件,命令脚本
>
>VOLUME ["volume01","volume02"]
>
>方式三:数据卷容器  --volumes-from  通过此命令使容器间的数据共享
>--volumes-from  容器名


6. 如何编写dockerfile文件

FROM          # 基础镜像,一切从这里开始构建
MAINTAINER    # 镜像是谁写的:姓名+邮箱
RUN           # 镜像构建的时候需要运行的命令
ADD           # 步骤:tomcat镜像,这个tomcat压缩包。添加内容
WORKDIR       # 镜像的工作目录 
VOLUME        # 挂载的目录
EXPOSE        # 暴露端口配置
CMD           # 指定这个容器启动的时候要运行的命令,只有最后一个会生效,可被替代
ENTRYPOINT    # 指定这个容器启动的时候要运行的命令,可以追加命令
ONBUILD       # 当构建一个被继承DockerFile这个时候就会运行ONBUILD的指令。触发指令。
COPY          # 类似ADD,将我们文件拷贝到镜像中
ENV           # 构建的时候设置环境变量
#基础镜像
FROM centos:7    
#作者信息
MAINTAINER cm<xxxx@qq.com>                  

#拷贝readme.txt至容器内
COPY readme.txt /usr/local/readme.txt       

#添加JDK压缩包至容器内,ADD命令可以自动解压
ADD jdk-8u144-linux-x64.tar.gz  /usr/local/ 
#添加tomcat压缩包至容器内,ADD命令可以自动解压
ADD apache-tomcat-8.5.61.tar.gz /usr/local/

#安装vim命令
RUN yum -y install vim						

#设置环境变量,一启动镜像会进入的工作目录
ENV MYPATH /usr/local				
#设置工作目录
WORKDIR $MYPATH								

#配置JAVA的环境变量
ENV JAVA_HOME /usr/local/jdk1.8.0_144		       
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
#配置tomcat的环境变量
ENV CATALINA_HOME /usr/local/apache-tomcat-8.5.61  
ENV CATALINA_BASH /usr/local/apache-tomcat-8.5.61
ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin
#配置tomcat暴露的端口8080
EXPOSE 8080										   

#运行时执行的命令
CMD /usr/local/apache-tomcat-8.5.61/bin/startup.sh && tail -F /usr/local/apache-tomcat-8.5.61/bin/logs/catalina.out

7.微服务打包docker镜像

1.新建Dockerfile文件

2.上传jar包、Dockerfile文件至服务器

3.构建镜像  docker build -t hello .

4.启动镜像  docker run -d -P --name demo-springboot hello


FROM openjdk:8

COPY *.jar /app.jar

CMD ["--server.port=8080"]

EXPOSE 8080

ENTRYPOINT ["java","-jar","/app.jar"]

8.其他常见命令

# 列出Docker主机上的全部网络
docker network ls
# 移除指定的网络
docker network rm 网络名
# 查看网络
docker network inspect 网络名 
# 创建网络
docker network create --d 网络驱动类型 --subnet 子网范围 --gateway 网关地址 网络名
# 将容器连接到网络,例如跨网络操作
docker network connect 网络名 容器名
# 断开容器的网络
docker network disconnect 网络名 容器名
# 删除全部未使用的网络
docker network prune

# 创建网络
# --driver bridge 可不写,默认桥接模式
# --subnet 192.168.0.0/16 IP范围:192.168.0.2 ~ 192.168.255.255 总数:255*255个
# --gateway 192.168.0.1 设置网关
[root@Link ~]# docker network create --driver bridge --subnet 192.168.0.0/16 --gateway 192.168.0.1 mynet

# 列出Docker主机上的全部网络
[root@Link ~]# docker network ls

# 查看网络
[root@Link ~]# docker network inspect mynet

# 启动容器并指定自定义网络
[root@Link ~]# docker run -d -P --name tomcat_net_01 --net mynet tomcat:9 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值