Docker HUB
https://hub.docker.com/u/linsdom/ #docker
1、修改/etc/docker/daemon.json文件配置,没有则新建;
{
"registry-mirrors": ["https://72idtxd8.mirror.aliyuncs.com"]
}
2、重启daemon;
systemctl daemon-reload
3、重启docker服务;
systemctl restart docker
docker --h #查看帮助
docker version #查看版本
docker info #查看详细信息
1、查看镜像帮助
docker image --help
docker images
2、列出所有镜像
docker images -a , --all 列出所有镜像
docker images -q , --quiet 只显示镜像的id
3、搜索镜像
search <name> #如 docker search MySQL
#可选项,通过搜索来过滤
--filter=STARS=3000 如 docker search mysql -s 3000 #搜索stars超3K的
4、下载镜像
docker pull 下载镜像
如:docker pull mysql #如果不写tag,默认就是latest
docker pull mysql:5.7 #指定下载版本
5、 docker rmi #删除镜像
docker rmi -f <镜像id或名称> #单个删除 如:docker rmi -f 121212
docker rmi -f $(docker imsages -aq) # 删除所有的容器
说明:有了镜像就可以创建容器,linux,下载一个centos镜像来学习
1、下载容器
docker pull <容器名称> 如: docker pull centos
2、新建容器并启动
docker run [可选参数] <image 名称>
#参数说明
--name "" 容器名称 如:Tomcat1
-d 后台方式运行
-it 使用交互方式运行,进入容器查看内容
-p 指定容器的端口 -p 8080:8080
启动并进入容器 例: docker run -it centos /bin/bash
启动后台动行的容器 例: docker run -it -d centos
3、列出所有容器
docker ps #列出所有运行的容器
douker ps -a #查看曾经运行的容器
docker ps -n=? #显示最近创建的容器
docker ps -q #只显示容器的编号
4、删除容器
docker rm <容器id> 删除指定的容器 如 :docker rm 15155
docker rm -f $(docker ps -aq) 删除所有容器
5、进入或退出容器
docker attach id #重新进入容器
exit #直接退出容器,容器会停止
Ctrl + P + Q # 退出容器 不停止运行
6、启动和停止容器
docker start <容器id> #启动容器
docker restart <容器id> #重启容器
docker stop <容器id> #停止容器
docker kill <容器id> #强制停止容器
例:停止所有容器 : docker -ps -aq docker stop $(docker ps -aq)
** 1、后台互动容器**
docker run -d center
#常见的坑 docker 容器使用后台运行,就必须有一个前台进程,如果没有就会自动停止
2、查看日志命令
docker logs --help 帮助
docker logs -f -t --tail <条数> <容器id> # docker logs -f -t --tail 10 ee12 #显示指定行数的日志
docker logs -f -t <容器id> #显示所有日志
-tf # 显示日志
--tail number #指定条数
3、显示容器内部进程信息
docker top <容器id> # docker top 0c3ffc237acc
4、查看容器内部信息
docker inspect <容器id> #docker inspect 0c3ffc237acc
5、进入当前运行的容器
docker attach <容器id> #docker attach 0c3ffc237acc
docker exec -it <容器id> /bin/bash #docker exec -it 0c3ffc237acc /bin/bash
两种方式的区别:
exec 进入容器后开启一个新的终端
attach 进入当前正在运行的终端
6、容器和主机间的内容拷贝
一、docker cp <容器id:容器内路径> 目的主机路径
例:docker cp 0c3ffc237acc:/home/test.JAVA ~/
二、docker cp 目的主机路径 <容器id:容器内路径>
例:docker cp /root/copy.java 0c3ffc237acc:/home/
1、搜索nginx
docker search nginx
2、下载镜像
docker pull nginx
3、启动镜像
docker run -d --name nginx01 -p:3344:80 nginx
-d 后台运行 --name 重命名 -p指定端口 3344外部端口 80 内部端口
4、自测测试
curl localhost:3344
5、进入容器
docker exec -it nginx01 /bin/bash
1、搜索查看tomcat版本
到 https://hub.docker.com/
2、安装tomcat
douker -run -it tomcat:9.0 #其他方法 用于测试用完即删 douker -run -it --rm tomcat:9.0
3、启动tomcat
docker run -d -p 3355:8080 --name tomcat01 tomcat
4、进入tomcat镜像
docker exec -it tomcat01 /bin/bash
5、数据卷容器
数据共享
docker run -it -name centos02 --volumes-from centos01
centos02 能获取到centos01挂截的内容
安装和启动
docker run -d -p 8088:9000
--restart=always -v /var/run/docker.sock:/var/run/docker.sock --privileged=true portainer/portainer
启动
访问地址:192.168.31.30:8088
1、使用数据卷
方式一 :直接使用命令挂截 -v
docker run -it -v 主机目录:容器内目录 镜像名称
例: docker run -it -v /home/test:/home centos
2.查看所有数据卷
docker volume ls
3、查看数据卷所在位置
docker volume inspect <卷id>
具名挂载
docker run -it -v <自定义名称>:容器内目录 镜像名称
docker run -d -p 3306:3306 -v /home/mysql/conf.d:/etc/mysql/conf.d -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSword=123456 --name mysql01 mysql:5.7
-p 映射端口
-v 挂载目录
-e 配置能数
--name 指定容器名称
mysql:5.7 镜像版本
FROM #基础镜像
MAINTAINER #镜像作者
RUN #镜像构建的时候需要运行的命令
ADD #添加内容
WORKDIR #镜像的工作目录
VOLUME #挂截的目录
EXPOSE #保留端口配置
CMD #指定这个容器在启动时要运行的命令,只有最后一个有效
ENTRYPOINT #指定这个容器启动时候要运行的命令,可以追加命令
ONBULID #当构建一个被继承 Dockerfile这个时候会运行 ONBUILD 的指命令
COPY #类 ADD 将我们文件拷到镜像中
ENV #构建的时候设置环镜变量!
1、创建dockerfile文件
2、构建image
docker build dockerifle文件路径 -t 镜像名称:[tag] .
3、运行镜像
docker run -it mydocker:0.1
4、查看镜像构建过程
doucher history <镜像id>
1、构建Springboot项目
2、打包应用
3、编写dockerfile
FROM java:8
COPY *.jar /App.jar
CMD ["--------server.port=8080-------"]
EXPOSE 8080
ENTRYPOINT ["java","-jar","/app.jar"]
4、构建镜像
docker build dockerfile -t servie:0.1 .
docker build -t chzzservic .
5、发布运行
docker run -d -P -it chzzservic