zoukankan      html  css  js  c++  java
  • docker基本命令

    Docker:

    ​ docker是一个容器,docker可以打包、发布、运行任何的应用,docker就像一个盒子,里面可以装很多物件,如果需要物件,可以一件一件拿走。

    docker基本概念:

    • 镜像(Image):相当于虚拟机的ISO镜像
    • 容器(Container): 镜像创建的运行实例
    • 仓库(Repository): 类似于GitHub,用来托管镜像的

    ​ docker里面的容器是由镜像生成的,必须去镜像中拉取容器,比如说要安装一个Nginx服务,要去仓库里面拉取一个Nginx镜像,通过一些命令将镜像创建容器,再通过一些命令开启容器。这个容器会共用电脑的资源(CPU、内存),但是功能和服务是独立开的,因为容器的内核是Ubuntu。

    ​ docker服务可以打包、解包。给其他人一起用。

    centos7安装docker:

    # 安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
    >> yum install -y yum-utils device-mapper-persistent-data lvm2
    # 设置源,我这里用的是中央仓库
    >> yum-config-manager --add-repo http://download.docker.com/linux/centos/docker-ce.repo
    # 查看所有仓库中的所有的docker版本,选择一个自己喜欢的
    >> yum list docker-ce --showduplicates | sort -r
    # 我这里选择的是18.06.1.ce-3.el7 
    >> yum install docker-18.06.1.ce-3.el7
    # 启动docker,然后设置开机启动
    >> systemctl start docker
    >> systemctl enable  docker
    # 查看版本
    >> docker version
    

    其他命令:

    docker pull 服务名:版本号		# 拉取服务
    docker ps 	# 查看当前正在运行的容器
    docker ps -a # 查看所有容器的状态
    docker start/stop id/name 	# 启动/停止某个容器
    docker attach id 	# 进入某个容器(使用exit退出后容器也跟着停止运行)
    docker exec -ti id /bin/bash 	# 启动一个伪终端以交互式的方式进入某个容器(使用exit退出后容器不停止运行)
    docker images 	# 查看本地镜像
    docker rm id/name 	# 删除某个容器
    docker rmi id/name 	# 删除某个镜像
    docker run --name test -ti ubuntu /bin/bash  	# 复制ubuntu容器并且重命名为test且运行,然后以伪终端交互式方式进入容器,运行bash
    

    通过镜像去创建容器:

    docker run [option] 镜像名 【向启动容器中闯入命令】
    
    # 运行Nginx服务
    >> docker run -it nginx:1.18.0 /bin/bash
    # 查看该Nginx服务下有什么文件
    >> ls
    
    # 查看当前在运行的容器
    >> docker container ls
    # 查看所有的容器
    >> docker container ls -all
    # 简写
    docker ps
    docker ps -a
    
    * REPOSITORY:镜像所在的仓库名称 
    * TAG:镜像标签 
    * IMAGEID:镜像ID 
    * CREATED:镜像的创建日期(不是获取该镜像的日期) 
    * SIZE:镜像大小
    
    常用可选参数:
    * -i 表示以《交互模式》运行容器。
    * -t 表示容器启动后会进入其命令行。加入这两个参数后,容器创建就能登录进去。即分配一个伪终端。 /bin/bash
    * --name 为创建的容器命名。
    * -v 表示目录映射关系,即宿主机目录:容器中目录。注意:最好做目录映射,在宿主机上做修改,然后共享到容器上。 
    * -d 会创建一个守护式容器在后台运行(这样创建容器后不会自动登录容器)。 
    * -p 表示端口映射,即宿主机端口:容器中端口。
    * --network=host 表示将主机的网络环境映射到容器中,使容器的网络与主机相同。
    

    常用的创建docker容器:(-d --name=XXX)

    # 开启容器并在后台运行
    >> docker run -d ngixn
    # 创建一个自命名为mynginx的并开启后台运行的Nginx服务
    >> docker run -d --name=mynginx nginx
    

    创建端口映射创建容器(特定的端口和容器映射):(-p)

    ​ 把宿主机的8080端口映射到docker容器中的80端口,这时候就可以通过宿主机的8080端口去访问容器的80端口!

    >> docker run -d --name=mynginx -p 8080:80 nginx
    # 查看本机ip
    ifconfig
    

    创建一个网络环境和主机相同的容器(网络映射):(--network)

    >> docker run -d --name=ip_nginx --netowrk=host nginx
    

    创建与宿主机目录映射的容器(把容器的目录映射到宿主机中):(-v)

    ​ 目录映射以后可以直接在宿主机中修改容器里面的文件

    >> cd /home
    >> mkdir Desktop
    >> cd Desktop
    >> mkdir home
    >> docker run -d --name=nginx111 -v /home/Desktop/home:/home
    

    进入到开启的容器中:(exec -it XXX /bin/bash)

    # CONTAINER ID(NAMES)== 容器id(名字)
    >> docker exec -it  CONTAINER ID(NAMES) /bin/bash
    

    停止某个容器

    >> docker stop mynginx

    启动某个容器

    >> docker star mynginx

    删除容器:(rm)

    # 开启的容器不能删除
    >> docker container rm mynginx
    # 先关闭开启的容器
    >> docker container stop mynginx
    >> docker container rm mynginx
    
    # 强制删除开启的容器
    >> docker container rm -f mynginx
    

    在docker中拷贝本地文件到容器里面:

    ​ 没有目录映射的时候就用此方法

    >> docker cp 宿主机本地文件名 容器名:容器路径
    

    将容器制作成镜像并打包成压缩包:

    # 将容器制作成镜像
    >> docker commit 容器名 镜像名
    # 将镜像打包成压缩文件
    >> docker save -o XXX.tar 镜像名	#会在本地生成一个压缩包XXX.tar
    

    删除镜像:

    >> docker image rm 镜像名
    

    把压缩包解压成镜像:

    >> docker load -i XXX.tar 
    

    查看容器的报错状态:

    docker logs 容器名
    
  • 相关阅读:
    记账程序2.0
    安装redHat6.5详细图文教程
    redHat6设置ip地址
    如何开通B站的直播空间
    python实战技巧之两个字典,如何实现键同则值相加【不等长或等长】
    python实战技巧之去除列表中的空值元素
    python实战技巧之两个不等长列表让里面的数字一一对应地相加
    python实战技巧之两个列表实例中,如何让里面的数字一一对应地相加【对于两个列表是等长的情况】
    java基础_网络编程
    java基础_String
  • 原文地址:https://www.cnblogs.com/lance-lzj/p/13989493.html
Copyright © 2011-2022 走看看