docker重启
systemctl restart docker
查看当前有的镜像
docker images
查看容器
docker ps
删除镜像
docker rmi -f 镜像id
删除容器
docker rm 容器id
搜索镜像
docker search 容器id
删除容器(-f强制删除,正在运行的容器也删除)
docker rm -f {containerID}
从镜像仓库中拉取或者更新指定镜像:
docker pull
杀掉一个运行中的容器
docker kill 容器id
启动容器
docker start 容器ID
停止容器
docker stop 容器ID
重启容器:
docker restart 容器ID
运行springboot
docker run -p 8080:8083 -t hello-docker -- 8080 是外部暴露的端口 -- 8083 docker里面的项目的端口
打包镜像
docker save hello:v1 -o hello.tar
镜像加载
docker load -i hello.tar
推送到镜像仓库
docker push xxx:version
修改版本
docker tag imageId com.xxx/xx.tar
docker将容器内的目录复制到本地
docker cp 容器号:/路径 /本地路径 例如:dcoker cp e90660a4331f:/go/src E:/project/www/go
docker自动启停命令
docker update 容器名称 --restart=always
docker启动里面服务获取参数
SpringBoot 配置文件写 ${address}:3306 实际启动: docker run -it xxx:latest --address=127.0.0.1 ###这样就可以动态的获取变量了
进入容器
docker exec -it 容器名称 bash
docker exec -it 容器名称 bash docker container exec -it 容器id /bin/bash
退出
ctrl+d或者exit
启动所有容器
docker start `docker ps -a -q`
删除所有容器
docker stop `docker ps -a -q` docker rm `docker ps -a -q`
删除所有镜像
docker rmi `docker images -q`
删除数据卷
docker volume rm my-vol docker volume ls
无主的数据卷可能会占据很多空间,要清理请使用以下命令
docker volume prune
docker删除未使用到的镜像
docker image prune -a
查看网络
docker network ls
查看网络详细信息
docker inspect 网络名
Docker容器安装软件和中使用国内镜像
cp /etc/apt/sources.list /etc/apt/sources.list.bak echo "" > /etc/apt/sources.list echo "deb http://mirrors.aliyun.com/debian buster main" >> /etc/apt/sources.list echo "deb http://mirrors.aliyun.com/debian-security buster/updates main" >> etc/apt/sources.list echo "deb http://mirrors.aliyun.com/debian buster-updates main" >> /etc/apt/sources.list 然后更新 1、更新 apt-get apt-get update apt-get upgrade 2、yum apt install yum 3、vim apt install vim 4、ifconfig apt install net-tools 5、ping apt install iputils-ping 6、ps apt-get install procps
不启动容器进入镜像中
docker run -it --entrypoint bash openjdk:8
Docker查找在线查找镜像命令
docker search java
查看日志
docker logs -f 2950b6f847c0
查看运行容器的状态
docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 2950b6f847c0 2f66aad5324a "docker-entrypoint.s…" About a minute ago Up About a minute 6379/tcp redis 9d82c13fef77 2f66aad5324a "docker-entrypoint.s…" About a minute ago Exited (1) About a minute ago compassionate_johnson 3db7cfbe0519 2f66aad5324a "docker-entrypoint.s…" 2 minutes ago Exited (1) About a minute ago sharp_montalcini 34f77d9f0413 openjdk:8 "bash" 37 hours ago Exited (1) 36 hours ago magical_bardeen STATUS : Exited (1) 非正常退出 Exited (0) 容器运行完自动销毁 NAMES: 运行容器的名称
使用Dockerfile构建镜像
docker build -t my-docker:latest . # .表示当前目录 #基于dockerfile文件构建镜像命令 完整的写法: docker build -f dockerfile -t nginx:new . docker build : 基于dockerfile 构建镜像 -f :指定dockerfile 文件(默认不写的话指的是当前目录) -t :(tag) 打标签 ——》nginx:new . :专业说法:指的是构建镜像时的上下文环境,简单理解:指的当前目录环境中的文件
搭建私有镜像仓库
# 拉取镜像 docker pull registry:2 # 运行镜像 docker run -d -p 5000:5000 --restart always --name registry registry:2 # 打本地镜像tag docker tag redis:latest localhost:5000/redis:latest # 推送到本地镜像仓库 docker push localhost:5000/redis:latest # 查看镜像仓库 [root@localhost ~]# curl localhost:5000/v2/_catalog {"repositories":["redis"]}
Dockerfile 制作-1
#基于jdk1.8.0_191镜像 FROM jdk1.8.0_191:v1 #作者信息 MAINTAINER liupei #将jar拷贝到容器中去 ADD springcloud-eureka.jar /opt #赋予执行权限 RUN chmod +x /opt/springcloud-eureka.jar #Java JVM 启动参数变量,这里需要在这里加一个时区参数。 ENV JAVA_OPTS="-Duser.timezone=Asia/Shanghai" #暴露端口 EXPOSE 7001 #Spring 容器启动参数变量,方便后续操作时能通过此变量配置 Spring 参数 ENV APP_OPTS="" #运行jar ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -jar /opt/springcloud-eureka.jar $APP_OPTS" ]
Dockerfile 制作-1
#基于我们刚刚创建的jdk镜像 FROM jdk1.8.0_191:v1 #作者信息 MAINTAINER liupei #将应用包拷贝进入容器 ADD springcloud-getwey.jar /opt #赋予容器内应用程序执行的权限 RUN chmod +x /opt/springcloud-getwey.jar #运行jar CMD java -jar /opt/springcloud-getwey.jar
Dockerfile 制作-2使用其他镜像做为基础镜像
FROM www.xxx.xx/centos4.0.2_java8-x86:base # 当前目录拷贝到 root路径 COPY . /root/ # 使用该基础镜像的时候执行这个脚本,给这个脚本分配权限 RUN ["chmod","+x" ,"/root/xx/xx.sh"] # 使用该基础镜像的时候执行这个脚本 ONBUILD RUN ["/root/xx/xx.sh"]
Dockerfile 制作-3使用3作为基础镜像
FROM www.xx.xx/使用1制作的镜像:latest # 当前要执行的复制到容器/opt/ COPY . /opt/ RUN ["chmod","+x" ,"/opt/service-xx/install.sh"] ENTRYPOINT ["/opt/service-xx/install.sh","执行参数"]
Dockerfile 制作-4制作基础镜像并安装其他依赖
FROM python:3.6 MAINTAINER liupei RUN pip install thrift
Dockerfile操作指令
指令 | 含义 |
FROM [镜像] | 指定新镜像所基于的镜像,第一条指令必须为FROM指令,每创建一个镜像就需要一条FROM指令,例如centos:7。from有两层含义:①开启一个新的镜像②必须写的一行指令 |
MAINTAINER [名字] | 说明新镜像的维护人信息(可写可不写) |
RUN命令 | 每一条RUN后面跟一条命令,在所基于的镜像上执行命令,并提交到新的镜像中,RUN必须大写 |
CMD [“要运行的程序”,“参数1”、“参数2”] | 指定启动容器时需要运行的命令或者脚本,Dockerfile只能有一条CMD命令,如果指定多条则只能执行最后一条,“bin/bash”也是一条CMD,并且会覆盖image镜像里面的cmd。 |
EXPOSE [端口号] | 指定新镜像加载到Docker时要开启的端口暴露端口,就是这个容器暴露出去的端口号。 |
ENV [环境变量] [变量值] | 设置一个环境变量的值,会被后面的RUN使用。容器可以根据自己的需求创建时传入环境变量,镜像不可以。 |
ADD [源文件/目录] [目标文件/目录] | ①将源文件复制到目标文件,源文件要与Dockerfile位于相同目录中,②或者是一个URL,③若源文件是压缩包则会将其解压缩 |
COPY [源文件/目录] [目标文件/目录] | 将本地主机上的文件/目录复制到目标地点,源文件/目录要与Dockerfile在相同的目录中,copy只能用于复制,add复制的同时,如果复制的对象是压缩包,ADD还可以解压,copy比add节省资源 |
VOLUME [“目录”] | 在容器中创建一个挂载点,简单来说就是-v,指定镜像的目录挂载到宿主机上。 |
USER [用户名/UID] | 指定运行容器时的用户 |
WORKDIR [路径] | 为后续的RUN、CMD、ENTRYPOINT指定工作目录,相当于是一个临时的"CD",否则需要使用绝对路径,例如workdir /opt。移动到opt目录,并在这下面的指令都是在opt下执行。 |
ONBUILD [命令] | 指定所生成的镜像作为一个基础镜像时所要运行的命令*(是一种优化)** |
HEALTHCHECK | 健康检查 |