- 安装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指定镜像名)
- 创建镜像
- 创建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
- 构建镜像 docker build -t jintao/centos:7.2 . (-t镜像名注意.不能掉,指定当前路径Dockerfile,可以使用绝对路径)
- 使用命令docker run -t -i runoob/centos:6.7 /bin/bash 进入镜像并创建容器
- 将docker镜像保存为文件 docker sava -o /path/filename dockerimage(或者docker save dockerimage -o /path/filename)---注意文件名用tar做后缀
- 加载镜像 docker load -i dockerfile.tar
- 删除docker镜像
- 先删除容器docker images查看镜像 docker ps -a 查看镜像对应的容器删掉容器
- 容器全部删除完成删除镜像 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容器的网络会附属在主机上,两者是互通的