Docker使用命令

本文详细介绍了Docker的基本安装与使用,包括容器的启动、停止、删除、重命名等操作,以及如何构建和使用Docker镜像。同时,深入解析了Docker的网络模式,包括桥接、无网络、主机网络以及自定义网络的创建和使用。
摘要由CSDN通过智能技术生成
  • 安装docker 命令: wget -qO- https://get.docker.com/ | sh
  • 启动docker服务(如不启动使用Docker命令会出现下列错误Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?)
  • 后台启动docker: docker run -d ubuntu:15.10 /bin/sh -c "while true; do echo hello world; sleep 1; done" (后台参数-d)
  • 关闭docker容器 docker stop ID
  • 查看本地docker容器 docker images
  • 修改docker容器名 docker rename oldID newID
  • 删除docker容器 docker rm ID(需要先停止容器)
  • 查看docker状态 :docker ps
  • 从仓库下载docker镜像 docker pull ubuntu:13.10  (ubuntu为仓库,13.10为标签版本)
  • 搜索镜像版本docker search httpd
  • Docker镜像提交容器副本docker commit -m="has update" -a="runoob" e218edb10161 runoob/ubuntu:v2(-m备注 -a用户 e218edb10161容器ID runoob/ubuntu:v2指定镜像名)
  • 创建镜像
  1. 创建Dockerfile文件 cat Dockerfile,并将下列数据加入

FROM ubuntu:15.10
# Set timezone as docker/jintao
#RUN cp /usr/share/zoneinfo/PRC /etc/localtime
RUN mkdir /usr/java
# Copy jre install file
COPY jre-8u191-linux-x64.tar.gz /usr/java/
WORKDIR /usr/java/
RUN tar zxvf /usr/java/jre-8u191-linux-x64.tar.gz
RUN rm -rf /usr/java/jre-8u191-linux-x64.tar.gz
# Eureka server directory
RUN mkdir /eureka
# set evn
ENV JRE_HOME /usr/java/jre1.8.0_191
ENV PATH $PATH:$JRE_HOME/bin
# Copy app jar file
COPY fms-cloud-zuul-0.0.1-SNAPSHOT.jar /eureka/fms-cloud-zuul-0.0.1-SNAPSHOT.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/usr/java/./urandom","-server","-Xms64m","-Xmx64m","-jar","/eureka/fms-cloud-zuul-0.0.1-SNAPSHOT.jar"]
EXPOSE 8889

  1. 构建镜像 docker build -t jintao/centos:7.2 .  (-t镜像名注意.不能掉,指定当前路径Dockerfile,可以使用绝对路径)
  2. 使用命令docker run -t -i runoob/centos:6.7  /bin/bash 进入镜像并创建容器
  3. 将docker镜像保存为文件 docker sava -o /path/filename  dockerimage(或者docker save dockerimage -o /path/filename)---注意文件名用tar做后缀
  4. 加载镜像 docker load -i dockerfile.tar
  • 删除docker镜像
  1. 先删除容器docker images查看镜像 docker ps -a 查看镜像对应的容器删掉容器
  2. 容器全部删除完成删除镜像 docker rmi imagesID
  • Docker运行一个web镜像(-p指定端口第一个为服务器端口,第二个为docker容器端口)-d表示后台启动 -p指定端口 --net host指定容器网络模式  docker run -d -p 8888:8888 --net host dockerid/eureka:1.1 
  • docker进入一个正在运行的容器    docker exec -it dockerid/eureka:1.1 bash
  •  docker拷贝文件文件夹到容器中 docker cp eureka.jar containerID:/home/
  • 查看docker容器运行日志

docker logs -f ID (-f参数可以像Linux命令tail -f一样展示最新日志)

  • 查看docker容器进程 docker top ID=
  • Docker使用的使用每个容器中使用的端口注册微服务不能使用localhost
  • docker拷贝文件夹到镜像中时,只会拷贝文件夹中的内容,不会拷贝该文件夹 COPY fms_cloud_data_jar /eureka 这样会将fms_cloud_data_jar下的所有内容拷贝到容器/eureka
  • docker如果需要指定容器IP可以使用自定义网络模式(这种模式可以随意指定docker容器IP,但是该容器和其他容器无法访问,需要配置路由规则,单独部署可使用)
  • 创建自定义网络类型,并且指定网段

docker network create --subnet=192.168.191.0/16 staticnet

通过docker network ls可以查看到网络类型中多了一个staticnet

 

    1. 使用新的网络类型创建并启动容器

         docker run -d -p 8888:8888 --net staticnet --ip 192.168.191.128 dockerjintao/config:1.2

     2. Docker集群部署使用主机IP和端口(选择网络模式为host)

          docker run -d -p 8888:8888 --net host dockerjintao/config:1.2

      3. Docker默认的三种网络类型

bridge:网络桥接

默认情况下启动、创建容器都是用该模式,所以每次docker容器重启时会按照顺序获取对应ip地址,这就导致容器每次重启,ip都发生变化

none:无指定网络

启动容器时,可以通过–network=none,docker容器不会分配局域网ip

host:主机网络

docker容器的网络会附属在主机上,两者是互通的

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值