docker 查看版本
docker version
docker下载(最新版本)
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
docker指定版本下载
##安装依赖
yum install -y yum-utils device-mapper-persistent-data lvm2
##添加docker源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
##更新源
yum update
##指定下载18.09.0版本
yum install -y docker-ce-18.09.9 docker-ce-cli-18.09.9 containerd.io
##版本降级 降到指定版本
##yum downgrade --setopt=obsoletes=0 -y docker-ce-18.09.9 docker-ce-cli-18.09.9 containerd.io
启动docker
sudo systemctl start docker
docker卸载旧版本命令
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine
docker安装仓库
yum install -y yum-utils
配置docker阿里云镜像
或直接访问 https://promotion.aliyun.com/ntms/act/kubernetes.html3
yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
配置成功后可以使用docker info查看是否配置成功或是进入 /etc/docker中查看daemon.json文件是否配置了
配置完成后执行 systemctl restart docker 重启docker
{
"registry-mirrors": ["https://t81qmnz6.mirror.aliyuncs.com"]
}
docker查看可以下载的镜像
nginx是镜像名称用于代理
docker search nginx
docker下载镜像
默认下载最后一个版本
docker pull nginx
#指定下载1.8版本的
docker pull nginx:1.8
docker 查看已下载的镜像
docker images
docker image ls
docker 登录harbor
docker login -u admin -p 123456 192.168.0.1:8080
docker login -u 用户名 -p 密码 harbor的IP地址:harbor的暴露端口
docker 为镜像打印标签
docker tag javaapplication:1 192.168.0.1:8080/javaproject/javaapplication:1
docker tag 镜像名称:版本 harbor地址:harbor端口/harbor模块/上传后的镜像名称
docker 发布镜像
docker push 192.168.0.1:8080/javaproject/javaapplication:1
docker push 刚才打标记的镜像
docker退出harbor
docker logout
docker 查看Dockerfile 打包过程
docker history
docker运行镜像
docker run nginx
#指定后台运行 -d
#随机映射端口 -P
#选择映射端口 -p 例如 8080:9090 (8080代表外部访问的端口,9090表示容器内部端口)
#挂载镜像文件 -v (ro容器只读 rw容器读写)
#以交互模式运行容器 -i
#为容器重新分配一个伪输入终端 -t
#重命名 --name
#环境 -e
例如:
docker run -d -it -p 80:80 --name "nginx01" -v /home/config:/usr/nginx/config:rw nginx
docker run -itdp 3306:3306 --restart always --name mysql -v /home/mysql/data:/var/lib/mysql:rw -e MYSQL_ROOT_PASSWORD="root" mysql:5.7
#请注意 卷挂载时候,如果仅挂载指定文件需要重新容器修改的东西才出现到容器里,而直接挂载目录在外部修改文件会直接同步到容器里
docker 查看运行记录
请注意CONTAINERID 是docker ps 命令后查看结果的一个列,类似于主键,代表容器id
docker logs CONTAINERID
docker 进入运行的容器
docker exec -it CONTAINERID /bin/bash
docker退出进入的容器
exit
docker查看运行中的容器
docker ps
#查看所有的容器
docker ps -a
#查看停止的容器
docker ps -l
docker获取容器的元数据
docker inspect CONTAINERID
docker 停止容器
docker stop CONTAINERID
docker 启动停止的容器
docker start CONTAINERID
docker 重启容器
docker restart CONTAINERID
docker 删除运行的容器
docker rm -f CONTAINERID
docker删除全部下载的镜像与 rm -rf /* 类似
docker rmi -f $(docker images -q)
docker删除下载的镜像
docker rmi nginx
docker镜像打成压缩包
docker save -o ./rabbitmq.tar rabbitmq:management
docker导入压缩包后的镜像
docker load -i ./rabbitmq.tar
springboot项目打包发布docker
编写Dockerfile
FROM java:8
WORKDIR /maven
ENV JAVA_OPTS="-XX:+UseG1GC"
COPY home/project/java.jar java.jar
ENTRYPOINT ["sh","-c","java -jar ${JAVA_OPTS} java.jar"]
-------------------------------------Dockerfile编写详情 点击查看 ----------------------------------------------
docker命令发布jar包
请注意 javaapp 是镜像的名称自己定义
docker build -t javaapp .
docker拷贝
docker cp /home/config CONTAINERID:/config
docker 网络查看
docker network ls
创建自定义docker网络
请注意多个网桥之间网络IP段不能重复
docker network create --driver bridge --subnet 192.168.0.0/24 --gateway 192.168.0.1 mybridge
docker容器之间网络互通
#起两个不同容器名称的项目保持有一个网桥下边
docker run -itdP --name javaa --net mybridge javaapplication:1
docker run -itdP --name javab --net mybridge javaapplication:1
#通过ping来查看是否相通
docker exec -it javaa ping javab
docker 不同网桥下进行网络互通
#起一个不同上边的容器名称,不同网桥的容器
docker run -itdP --name javac javaapplication:1
#将需要互通的网络进行关联
docker network connect mybridge javac
#查看网络的互通情况
docker exec -it javaa ping javac
#查看之前网桥的集体信息
docker network inspect mybridge
查看docker配置信息
dockr info
查看docker与虚拟机网络关系
ip addr