# Dokcer常用命令 ## 1、安装 一些必要的系统工具: ``` sudo yum install -y yum-utils device-mapper-persistent-data lvm2 ``` 获取安装脚本:wget -qO- https://get.docker.com/ | sh 注意操作docker前要启动它的后台服务: service docker start ## 2、镜像操作 搜索镜像:docker search centos 下载镜像:docker pull centos 或 docker pull ubuntu:13.10 同一仓库源可以有多个 TAG,代表这个仓库源的不同个版本,如ubuntu仓库源里,有15.10、14.04等多个不同的版本,我们使用 REPOSITORY:TAG 来定义不同的镜像。 列出镜像:docker images 更新镜像:docker commit -m="install lnmp" -a="frogchou" 5d8038de50f9 frogchou/centos-lnmp - **m:**提交的描述信息 - **-a:**指定镜像作者1688:1688 - **e218edb10161:**容器ID - **runoob/ubuntu:v2:**指定要创建的目标镜像名 ## 3、容器操作 使用镜像创建一个容器:docker run -i -t --name="centos-new" centos /bin/bash ​ **-d:**让容器在后台运行 ​ -P**:**将容器内部使用的网络端口映射到我们使用的主机上。 ​ **-t:**在新容器内指定一个伪终端或终端。 ​ **-i:**允许你对容器内的标准输入 (STDIN) 进行交互。 ``` 查看正在运行的容器:docker ps 查看正在所有的容器:docker ps -a 包括停止的 ``` - 使用docker logs命令,查看容器内的标准输出 : ``` docker logs 2b1b7a428627 ``` 启动容器: docker start 容器ID或者容器名称 停止容器:docker stop 容器ID或者容器名称 删除容器:docker rm 容器ID或者容器名称 (删除时容器必须是停止状态) 容器启动后建立一个与容器可交互的命令行窗口:docker exec -it 容器名称/id 执行命令 docker exec -it centos-ss-kms /bin/bash 容器端口映射: ``` docker run -d -p 5000:5000 training/webapp python app.py ``` - **-P :**是容器内部端口**随机**映射到主机的高端口。 - **-p :** 是容器内部端口绑定到**指定**的主机端口。 可以指定容器绑定的网络地址,比如绑定 127.0.0.1 ``` docker run -d -p 127.0.0.1:5001:5000 training/webapp python app.py ``` 镜像导入导出操作: 保持镜像为文件:docker save -o 要保存的文件名 要保存的镜像 从文件载入镜像:docker load --input 文件 删除镜像 docker rmi 镜像id 容器导入导出操作: 容器导出: ``` docker export -o 要保存的文件名 要保存的容器名/id docker import 要导入的文件名 导入的镜像名称 ``` - **-c :**应用docker 指令创建镜像; - **-m :**提交时的说明文字; ## 4、特殊 目前使用centos的镜像创建容器后,容器内不能执行service 和systemctl等命令,创建容器使用以下命令 docker run --privileged -p 55555:55555 -p 1688:1688 --name="centos-ss-kms" centos-ss-kms-nginx /usr/sbin/init privileged :使用该参数,container内的root拥有真正的root权限。 否则,container内的root只是外部的一个普通用户权限。 privileged启动的容器,可以看到很多host上的设备,并且可以执行mount。 甚至允许你在docker容器中启动docker容器。 从容器中拷贝文件出来: docker cp nginx-web-server:/etc/nginx/nginx.conf ~/docker-nginx/conf/nginx.conf 离线安装步骤: 更具系统,下载离线包: ``` yum install docker-ce --downloadonly --downloaddir=/home/student/docker-local ``` rpm -ivh --force *.rpm