发布时间:2024-02-07 12:00
本文是基于CentOS 7.3系统环境,进行Docker的学习和使用
若之前没有安装过Docker,则跳过该步骤
yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine
yum -y install yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum-config-manager --enable docker-ce-edge
yum-config-manager --enable docker-ce-test
yum -y install docker-ce
systemctl enable docker
systemctl start docker
vim /etc/docker/daemon.json
{
\"registry-mirrors\": [\"https://6i50hm7r.mirror.aliyuncs.com\"]
}
systemctl daemon-reload
systemctl restart docker
docker info
docker run hello-world
docker version
docker info
docker --help
cat /var/log/upstart/docker.log
jounarlctl -u docker
docker images
docker images -a
docker images -q
docker images --digests
docker images --no-trunc
docker search tomcat
docker search -s 30 tomcat
docker search tomcat --no-trunc
docker search tomcat --automated
docker pull tomcat
docker pull tomcat:latest
docker pull tomcat:7.0
docker rmi tomcat:latest
docker rmi -f 镜像1:TAG 镜像2:TAG
# 强制删除多个镜像
docker rmi -f $(docker images -qa)
# 强制删除多个镜像
docker run [options] image [command][arg...]
--name \"容器的新名字\":为容器指定一个名词
-d:后台运行容器,返回容器ID,启动守护式容器
-i:以交互模式运行容器,通常与-t同时使用
-t:为容器重新分配一个伪输入终端
-P:随机端口映射
-p:指定端口映射
--privileged=true:如果写权限不够,加上这句话
docker run -it --name mycentos b5b4d78bc90c
# 启动centos容器,并命名为mycentos
docker run -it --name mycentos b5b4d78bc90c --privileged=true
docker ps [options]
无参数:列出当前正在运行的容器
-a:列出当前正在运行的容器和历史上运行过的容器
-l:显示最近创建的容器
-n:显示最近n个创建的容器
-q:静默模式,只显示容器编号
--no-trunc:显示完整信息
停止并退出容器
exit
退出不停止容器
ctrl + P + Q
docker start 容器ID或者容器名
docker restart 容器ID或者容器名
docker stop 容器ID或者容器名
docker kill 容器ID或者容器名
docker rm 容器ID或者容器名
docker rm f $(docker ps -aq)
docker ps -aq | xargs docker rm
docker logs [options] 容器ID
-t:加入时间戳
-f:跟随最新的日志打印
--tail:数字显示最后多少条
docker top 容器ID
docker inspect 容器ID
docker attach 容器ID或者容器名
docker exec -it 容器ID或者容器名 /bin/bash
docker cp mycentos1030:/tmp/temp.log /root
docker commit -m \"tomcat without docs\" -a \"xuzheng\" 8312674095ff inspur/tomcat01:1.0
容器在运行时,会产生一些数据,对于有些数据来说,是需要进行保存的,也就是我们要求对数据进行持久化存储。容器是在内存中运行的,一旦容器停止运行或者关闭,那么这些数据都将会消失
数据卷就是在宿主中可以在容器之间进行共享和重用的一系列和文件和文件夹
docker run -it -v /宿主机绝对路径目录:/容器内目录 镜像名
#对于容器来说,只读不可写
docker run -it -v /宿主机绝对路径目录:/容器内目录:ro 镜像名
FROM centos
VOLUME [\"/dataVolume1\",\"/dataVolume2\"]
CMD echo \"finished...successful\"
CMD /bin/bash
docker build -f /data/Dockerfile -t xuzheng/centos .
子父之间的容器数据卷中的内容可以实现传递和共享(全都是双向的传递数据的)
docker run -it --name dc01 centos
#继承dc01
docker run -it --name dc02 --volumes-from dc01 centos
DockerFile是用来构建Docker镜像的构建文件,是由一系列命令和参数构成的脚本
FROM centos
# 基础镜像,当前镜像基于哪一个镜像
MAINTAINER xuzheng<601797071@qq.com>
# 标记作者和邮箱
RUN ls -l
# 容器在构建时,需要执行的命令
EXPOSE 8080
# 暴露的端口号
WORKDIR /usr/local
# 登录容器内,默认的目录
ENV MYPATH /usr/local
# 设置环境变量
ADD centos-7-docker.tar.gz
# 加载tar压缩包进入镜像,并解压缩
COPY centos-7-docker.txt
# 拷贝文件或者目录进入镜像
VOLUME [\"/dataVolume1\",\"/dataVolume2\"]
# 设置数据卷
CMD ls -l
# 容器启动时要执行的命令,可以带多个cmd,但只有最后一个生效
ENTRYPOINT ls -l
# 容器启动时要执行的命令
ONBUILD RUN echo \"father image is inherited\"
# 父镜像被继承时,父镜像的ONBUILD被触发
FROM centos:7
MAINTAINER xuzheng<601797071@qq.com>
ENV MYPATH /tmp
WORKDIR $MYPATH
# 配置网络代理
ENV http_proxy \"http://192.168.0.198:808\"
ENV https_proxy \"http://192.168.0.198:808\"
RUN yum -y install vim
RUN yum -y install net-tools
EXPOSE 80
CMD echo $MYPATH
CMD echo \"success------------------ok\"
CMD /bin/bash
docker build -f /opt/containerd/mydocker/DockerFile -t xuzheng/centos7-vim-ifconfig:1.0 .
# 登录
docker login --username=hitwh1106102 registry.cn-beijing.aliyuncs.com
docker tag [ImageId] registry.cn-beijing.aliyuncs.com/inspur_xuzheng/tomcat01:[镜像版本号]
docker push registry.cn-beijing.aliyuncs.com/inspur_xuzheng/tomcat01:[镜像版本号]
Windows10 + Anaconda + Pytorch GPU版本安装教程
Python&C++相互混合调用编程全面实战-07Python调用 Windows系统函数
亲自教你在netty中使用TCP协议请求DNS服务器的详细过程
python程序 爱意_程序员式优雅表白,教你用python代码画爱心
Vuex持久化插件(vuex-persistedstate)
js 普通函数和es6箭头函数的区别以及箭头函数的注意事项、不适用场景
python——视频爬虫:m3u8文件中.ts视频流的解密下载