教程参考B站狂神视频:
环境
linux CentOs7 系统内核3.0以上
安装
参照官方文档
$ sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
sudo yum install -y yum-utils
sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum makecache fast
sudo yum install docker-ce docker-ce-cli containerd.io
sudo systemctl start docker
docker version
systemctl start docker.service
systemctl enable docker.service
sudo docker run hello-world
docker images
sudo yum remove docker-ce docker-ce-cli containerd.io
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd
镜像基本命令
docker version
docker info
docker --help
docker帮助文档官网
镜像命令
docker images:查看当前所有的镜像 docker images [OPTIONS] [REPOSITORY[:TAG]]
docker images -a
docker images -q
docker search – 搜索镜像
docker search mysql
docker pull 下载镜像
docker pull mysql
docker pull mysql:5.0
docker rmi: 删除镜像
docker rmi imageId|imageName 根据镜像id或者名称删除镜像
docker rmi -f ${docker images -aq}
docker rmi -f name1 name2 name3
容器命令
有了镜像才可以创建容器,这里下载centos容器并启动
docker pull centos
docker run [可选参数] image
--name 名称
-d 以后台方式运行
-i 使用交互方式运行,进入容器查看内容
-t
-p 指定容器的端口 -p 8080:8080
主机端口:容器端口
容器端口
-P(大写) 随机指定端口
--rm 运行完退出后会删除容器
docker run -it centos /bin/bash
exist
docker ps
docker ps -a
docker ps -n=7
docker ps -q
exist
ctrl + P + Q
docker rm 容器id
docker rm -f [参数]
docker start 容器id
docker restart
docker stop
docker kill
其他常用命令
docker run -d centos
docker logs [OPTIONS] CONTAINER
-t
-f
--details
docker top CONTAINER [ps OPTIONS]
docker inspect
docker exec -it 容器id
docker attach 容器id
docker cp 容器id:/home/text.java /home
commit镜像
docker commit -a "作者" -m "嗯update" 容器id 镜像名称:版本号
容器数据卷
将容器内部的文件与当前系统中的文件绑定共享
docker run -it -v 主机目录文件:容器内部文件 mysql /bin/bash
docker inspect 容器id
docker volume --help
docker volume ls
docker volume inspect 挂载名
docker run -it -v 主机目录文件:容器内部文件:ro|rw
docker run -it -name test --volumes-from 另一个容器名称 要启动的容器名称:版本号
具名挂载
docker run -it -v 主机目录文件:容器内部文件 mysql /bin/bash
匿名挂载
docker run -it -v 主机目录文件:容器内部文件 mysql /bin/bash
Dockerfile
用来构建docker镜像的构建文件.
需要知道,dockerfile中,#开头的语句默认为注释,不会被编译执行
文件字段:
FROM
MAINTAINER
RUN
ADD
WORKDIR
VOLUME
EXPOSE
CMD
ENTRYPOINT
ENV
构建自己的镜像
- 编写Dockerfile文件
FROM JAVA:8
MAINTAINER VOIVVVV(voidvvv@git.com)
WORKDIR /usr/local
ADD springboot_image_demo.jar /app.jar
CMD ["--server.port=8080"]
ENTRYPOINT ["java","-jar","app.jar"]
springboot项目从github源码直接打包构建镜像
FROM maven:3.3-jdk-8
VOLUME /tmp
WORKDIR /code
ADD pom.xml /code/pom.xml
ADD src /code/src
RUN ["mvn", "clean", "install"]
RUN ["ls", "/code/target"]
RUN ["pwd"]
RUN ["ls", "-ltrh", "/code/target/myspringboot.jar"]
EXPOSE 8080
ENTRYPOINT [ "java", "-jar", "/code/target/myspringboot.jar" ]
- build 镜像
docker build -f Dockerfile文件名 -t 镜像名称:版本号 .(这个点代表构建所需的环境)
docker build -f Dockerfile文件名 -t 镜像名称:版本号 .
. 当前文件夹下
tar.gz 压缩包内的所有文件
git仓库 指定某个仓库,还可以指定分支,文件夹,就以该仓库指定分支指定文件夹下的内容为环境构建镜像
|