一、docker安装
1、更新yum
yum update
2、安装需要的软件包
yum install -y yum-utils device-mapper-persistent-data lvm2
3、设置阿里云镜像
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
4、docker安装
yum install docker-ce
5、查看docker安装的版本号
docker -v
二、设置ustc的镜像
作用:加快加速器访问。
编辑文件
mkdir -p /etc/docker
vim /etc/docker/daemon.json
然后修改文件输入以下内容
{
"registry-mirrors":["https://docker.mirrors.ustc.edu.cn"]
}
三、docker的启动与停止
1.启动
systemctl start docker
2、停止
systemctl stop docker
3、查看docker是否启动成功
systemctl status docker4、重启 restart
systemctl restart docker
四、镜像相关命令
1、查看有哪些镜像
docker images
2、查找镜像
docker search images(镜像名称)
eg:docker search tomcat8
3、拉去镜像
docker pull tomcat:8
4、删除镜像
需要使用docker images查看进项列表,需要删除那个(TAGET ID)镜像id
docker rmi xxxxxxx(镜像id)
docker rmi xxxxxxx(镜像名称)
5、删除所有镜像
docker rmi `docker images -q`
五、容器的相关命令
1、查看容器
1、查看正在运行的容器
docker ps
2、查看所有容器
docker ps -a
3、查看最后一次运行的容器
docker ps -l
4、查看停止的容器
docker ps -f status=exited
2、创建、启动、停止容器
1、docker run
-i: 表示运行容器
-t: 表示容器启动会进入其命令行。加入这两个参数后,容器就能登陆进去,及分配了一个伪终端。
--name: 为创建的容器名称
-v: 表示目录映射关系(前者是宿主机目录,后者是映射到宿主机上的目录),可以使用多个-v做多个目录或者文件映射,注意:最好做目录映射,在宿主机上做修改,然后共享到容器上。
-d: 在run后面加-d参数,则会创建一个守护式容器在后台运行(这创建后不会自动登陆容器,如果只加-i -t 两个参数,创建后就会自动进去容器)。
-p: 表示端口映射,前者食宿主机端口,后者是容器内的映射端口,可以使用多个-p做多个端口映射。
1、交互式方式创建容器
docker run -it --name:容器名称 镜像名称:标签/bin/bash
这时候我们通过ps命令查看,发现可以查看到启动的容器,状态为启动状态
2、退出当前容器
exit
3、启动tomcat
eg:docker run -it --name=tomcat8 tomcat:8 /bin/bash
进入到tomcat的运行环境中
docker exec -it centos8 /bin/bash
查看正在运行的容器列表[root@localhost ~]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 2733fcf1d8a2 tomcat:8 "/bin/bash" 27 minutes ago Up 27 minutes 8080/tcp tomcat8-1 b4cc254381a9 tomcat:8 "/bin/bash" 46 minutes ago Exited (0) 42 minutes ago tomcat8
4、停止某个容器
docker stop b4cc254381a9
5、删除某个docker容器(需要先停止)
docker rm centos8(根据名称停止)
docker rm b4cc254381a9(根据id删除)
6、启动容器
docker start 2733fcf1d8a2(按照id启动)
docker start tomcat8-1(按照名字启动)
7、重启容器
docker restart 2733fcf1d8a2(按照id重启)
docker restart tomcat8-1(按照name重启)
六、docker的文件拷贝
1、从宿主机的文件拷贝到docker的容器中
1、docker cp xxx CONTAINER ID:/xx/xx
eg:docker /opt/usr/aa.txt b4cc254381a9:/usr/local
2、容器内部的项目拷贝
docker cp tomcat8:/usr/local/anaconda-ks.cfg anaconda-ks-1.cfg
说明:在正在运行的容器tomcat8里面,将路径/usr/local/anaconda-ks.cfg的文件拷贝一份到自己的目录下
2、从docker容器中拷贝文件到宿主机上。
docker cp tomcat8:/usr/local/anaconda-ks.cfg /usr/local/
七、查看容器的运行参数
1、查看全部
docker inspect tomcat8-1
2、过滤参数
docker inspect --format='{ {.NetworkSettings.IPAddress}}' tomcat8-1
八、dockerfile
dockerfile是由一系列命令和参数构成的脚本,这些命令于基础镜像并最终创建一个新的镜像
命令 | 作用 |
FROM image_name:tag | 定义使用了那些基础镜像启动构件流程 |
MAINTAINER user_name | 声明镜像的创建者 |
ENV key value | 设置环境变量的创建者 |
RUN command | 是Dockerfile的核心文件部分,可以写多条 |
ADD source_dir/file desc_file/file | 将宿主机的文件复制到容器内,如果是一个压缩文件,将会在复制后自动解压 |
COPY source_dir/file desc_dir/file | 和add相似,但是如果有压缩文件并不能解压 |
WORKDIR path_dir | 设置工作目录 |
eg:构建dockerfile jdk1.8
1、创建一个目录
mkdir -p /usr/local/dockerjdk8
2、然后进入该目录
cd /usr/local/dockerjdk8
将jdk8复制到改目录下
mv /usr/jdk-8u11-linux-x64.tar.gz /usr/local/dockerjdk8/
3、写Dockerfile[在dockerjdk8目录下]
vim Dockerfile[必须写vim Dockerfile其他不加任何命令,D是大写]
在里面编写以下脚本
FROM nginx
# 以nginx基础镜像进行构建
MAINTAINER zhangsan
WORKDIR /usr
RUN mkdir /usr/local/java
ADD jdk-8u11-linux-x64.tar.gz /usr/local/java
# [将jdkxxx这个文件拷贝到/usr/local/java下]
ENV JAVA_HOME /usr/local/java/jdk1.8.0_11
# [配置环境变量jdk1.8.0_11这个目录是提前就已经知道解压后得到的该目录,不可乱写]
ENV PATH $JAVA_HOME/bin;$PATH
3、此时进行构建
docker build -t='jdk1.8' .
-t 表示构建好的镜像叫什么,就叫做jdk1.8
. 表示当前目录的Dockerfile [Dockerfile和当前执行的同一目录,所以用.]