Docker使用

1、说明

      我使用的事腾讯云轻量级应用,直接系统安装自带ubuntu + Docker,所以docker安装直接省略。

2、设置开机自启

      

1 #启动Docker并允许开机自启
2 sudo systemctl start docker
3 
4 #查看当前Docker运行情况
5 sudo systemctl status docker
View Code

 

3、安装Docker Compose

      Docker Compose,定义和运行多容器Dcker的应用程序工具。

1 # 从github下载docker compose 二进制文件
2 sudo curl -L "https://github.com/docker/compose/releases/download/1.23.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
3 
4 #对下载的二进制文件应用可执行权限
5 sudo chmod +x /usr/local/bin/docker-compose
6 
7 #查看 docker compose 版本
8 docker-compose --version
View Code

4、构建程序镜像

5、挂载和数据卷

      docker在容器中管理数据主要有两种方式:数据卷 Volumes,挂载主机目录 Bind mounts

      5.1、挂载到本地

               Docker容器启动时,如果要挂载注意上的一个目录,可以用 -v参数指定。

               例如要启动一个容器,宿主机/data1目录挂载到容器/data2目录,可以用以下命令:            

docker run -it -v /data1 : /data2 centos /bin/bash

               在容器启动后,容器内会自动创建/data2目录。

               -v参数中 ,冒号 “:” 前面的目录是宿主机目录,后面的目录是容器内目录。

               冒号“:”前的路径必须是绝对路径,以下斜线“/”开头。

               宿主机目录如果不存在,这回自动生成。

               现在镜像内就可以在宿主机和docker里互相共享文件了。               

       5.2、docker数据卷

                数据卷,就是一个正常容器,专门用来提供数据卷供给其他容器挂载。

               1、创建数据卷

                     docker volume create edc-nginx-vol // 创建一个自定义容器卷

                     docker volume ls // 查看所有容器卷

                     docker volume inspect edc-nginx-vol // 查看指定容器卷详情信息                   

                    

                   注:volumes,默认位于/var/lib/docker/volumes目录中。

              2、创建使用指定卷的容器

                    docker run -d -it --name=share-vol -v shared-vol:/shareddata  ubuntu:18.4

                    docker ps

                    docker exec -it 80692ff2b813 /bin/bash          

                    

                     到刚刚创建的数据卷里面查看:                    

                   

                除此之外,我们还可以启动多个容器实例,并且共享同一个数据卷,复用性和扩展性较强。

                a、利用多个 -v 参数使得一个容器挂载多个数据卷目录

                      docker run ... -v local_path1:container_path1 -v local_path2:container_path2

                b、将两个容器挂载到同一个数据卷,可以实现两个容器之间的数据交互

                      docker run -it --name-test1 -v local_path:container_path1 ...

                      docker run -it --name-test2 -v local_path:container_path2 ...

                      创建两个容器test1和test2,两者都挂载到同一个数据卷local_path,两个容器可以通过该数据卷实现数据交互。

               3、如果不在使用数据卷,可以手动清理掉

                    docker stop xxx  #暂停容器实例

                    docker rm xxx #移除容器实例

                    docker volume rm xxx #删除自定义容器卷                 

         docker volume rm $(docker volume ls -qf dangling=true) #清理没有关联的数据volume

                   

 

posted on 2022-03-03 08:35  木乃伊人  阅读(35)  评论(0编辑  收藏  举报

导航