目录
Docker安装以及卸载
官网地址:https://docs.docker.com/engine/install/centos/
卸载旧版本:
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
安装gcc环境
yum -y install gcc
安装gcc-c++环境
yum -y install gcc-c++
设置存储库
yum install -y yum-utils
这是阿里云的存储库,官网上的速度太慢,容易超时
yum-config-manager \
> --add-repo \
> https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
安装Docker引擎,也可以参考官网选择版本
yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin
启动Docker
systemctl start docker
设置开机启动
systemctl enable docker && systemctl start docker # 这里是设置了开机启动,并同时启动docker
可以查看版本
docker version
启动hello world
docker run hello-world
卸载
先停掉Docker
systemctl stop docker
yum remove docker-ce docker-ce-cli containerd.io docker-compose-plugin
rm -rf /var/lib/docker
rm -rf /var/lib/containerd
Docker 镜像加速
通过阿里云来完成
直接一步步复制命令就行
Docker常用命令(更多请查看官网)
镜像命令
列出本地镜像
docker images [-a -q -qa]
搜索镜像
docker search [镜像名]
下载镜像
docker pull [镜像名:版本]
查看本地信息
docker system df
删除
docker rmi -f hello-world # -f 表示强制删除
容器命令
启动
docker run [option] image [command] [arg]
查看命令
docker ps [参数]
-a 历史上出现过,用过,当前活着的
-l 显示最近创建的
-n 显示最近n个创建的容器
-q 静默模式,只显示容器编号
容器停止
exit
容器不停止
ctrl+p+q
启动已停止的
docker start [容器名或id]
停止
docker stop [容器名或id]
强制停止
docker kill [容器名或id]
删除已停止的
docker rm [容器名或id] # -f 强制
批量操作
docker rmi -f $(docker images -a) # 这是批量删除镜像,谨慎操作,当然,也可以批量删除容器
查看容器日志
docker logs 容器id
查看容器进程
docker top 容器id
查看容器细节
docker inspect 容器id
重新进入
docker exec -it 容器id [参数] #可以使用exit退出,不导致容器停止
docker exec -it mysql /bin/bash
docker attach 容器id #使用exit回让容器停止
当然,2个都可以使用Ctrl+p+q退出而不停止容器
拷贝文件
docker cp 容器id:文件路径 主机路径
导出容器
docker export 容器id> 文件名.tar
导入容器
cat abcd.tar | docker import - 镜像用户/镜像名(其实就是容器名,这位置):版本号
从容器创建一个新的镜像
docker commit -m=容器信息 -a=作者 容器id 镜像名:版本号
容器数据卷
目的:为了数据持久化
docker run -it --privileged=true -v 本机目录:容器目录 --name=名字 镜像名
#如果没有目录它回自己创建,而且不管是主机还是容器上的数据都是同步的
# 也就是说,在本机上改目录里面的会同步到容器上
docker run -it -v 本机目录:容器目录:读写规则 --name=名字 镜像名
# rw 读写
# ro 只读
注意: 如使用mysql和redis等需要数据持久化的需要使用容器数据卷
Dockerfile
编写centos Dockerfile模板
内容:
添加 java8
添加 vim 编辑器
添加 ifcondig
# 指定从那个镜像
# 这里不推荐新版本,因为下载源换了
FROM centos:7
# 作者邮箱
MAINTAINER 作者邮箱
# ENV是指环境变量的配置,这里是登录了以后进入到/usr/local目录下
ENV MYPATH /usr/local
# 引用前面定义好的
WORKDIR $MYPATH
# RUN 指在镜像中运行后面的RUM 后的命令
# 安装vim编辑器
RUN yum -y install vim
# 安装ifconfig
RUN yum -y install net-tools
# 安装java8 以及lib库
RUN yum -y install glibc.i686
RUN mkdir /usr/local/java
# 这里是将jdk的压缩包解压到指定目录下,jdb包和Dockerfile文件在同一目录下,否则容易报错
ADD jdk-8u112-linux-x64.tar(1).gz /usr/local/java/
# 更改系统环境变量
ENV JAVA_HOME /usr/local/java/jdk1.8.0_112
ENV JRE_HOME $JAVA_HOME/jre
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH
ENV PATH $JAVA_HOME/bin:$PATH
# 指暴露端口
EXPOSE 80
# 打印路径和成功信息
CMD echo $MYPATH
CMD echo "success...ok"
CMD /bin/bash
编译
docker build -t centosjava8:1.5 .