docker的安装运行和常见命令的使用

 一、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 docker

4、重启 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和当前执行的同一目录,所以用.]

猜你喜欢

转载自blog.csdn.net/www1056481167/article/details/114834369