一、设置ustc的镜像、docker的安装目录

关于daemon.json更多信息,请访问官网dockerd | Docker Documentation

 作用:加快加速器访问。
 

cat > /etc/docker/daemon.json << EOF
{
   "data-root":"/usr/local/dockerWorkspace/",
    "registry-mirrors": [
        "https://2a6bf1988cb6428c877f723ec7530dbc.mirror.swr.myhuaweicloud.com",
        "https://docker.m.daocloud.io",
        "https://hub-mirror.c.163.com",
        "https://mirror.baidubce.com",
        "https://your_preferred_mirror",
        "https://dockerhub.icu",
        "https://docker.registry.cyou",
        "https://docker-cf.registry.cyou",
        "https://dockercf.jsdelivr.fyi",
        "https://docker.jsdelivr.fyi",
        "https://dockertest.jsdelivr.fyi",
        "https://mirror.aliyuncs.com",
        "https://dockerproxy.com",
        "https://mirror.baidubce.com",
        "https://docker.m.daocloud.io",
        "https://docker.nju.edu.cn",
        "https://docker.mirrors.sjtug.sjtu.edu.cn",
        "https://docker.mirrors.ustc.edu.cn",
        "https://mirror.iscas.ac.cn",
        "https://docker.rainbond.cc"
    ]
}
EOF

网上有很多启动不起来,需要将daemon.json改为daemon.conf就可以了

cat > /etc/docker/daemon.conf << EOF
{
   "graph":"/usr/local/dockerWorkspace/",
    "registry-mirrors": [
        "https://2a6bf1988cb6428c877f723ec7530dbc.mirror.swr.myhuaweicloud.com",
        "https://docker.m.daocloud.io",
        "https://hub-mirror.c.163.com",
        "https://mirror.baidubce.com",
        "https://your_preferred_mirror",
        "https://dockerhub.icu",
        "https://docker.registry.cyou",
        "https://docker-cf.registry.cyou",
        "https://dockercf.jsdelivr.fyi",
        "https://docker.jsdelivr.fyi",
        "https://dockertest.jsdelivr.fyi",
        "https://mirror.aliyuncs.com",
        "https://dockerproxy.com",
        "https://mirror.baidubce.com",
        "https://docker.m.daocloud.io",
        "https://docker.nju.edu.cn",
        "https://docker.mirrors.sjtug.sjtu.edu.cn",
        "https://docker.mirrors.ustc.edu.cn",
        "https://mirror.iscas.ac.cn",
        "https://docker.rainbond.cc"
    ]
}
EOF

二、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

    6、设置开机启动

        systemctl daemon-reload  

        systemctl enable docker    设置docker开机自启

        systemctl disable docker  关闭docker开机自启

三、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 文件详解、docker-maven-plugins的使用_Koma-forever的博客-CSDN博客_dockerfile maven 缓存

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

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐