1. yum 更新已有rpm包,升级linux内核(不做也可以)

yum update

2. 安装需要的软件包,yum-util提供yum-config-manager功能,另外两个是devicemapper驱动依赖

yum install -y yum-utils device-mapper-persistent-data lvm2

3. 设置yum源为阿里云

yum-config-manager —add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

4. 安装docker【docker-ce: 社区版,免费;docker-ee:企业版,收费】

yum install docker-ce -y

5. 安装后查看docker版本

docker -v

Docker:设置ustc镜像源

mkdir /etc/docker
vi /etc/docker/daemon.json

  1. {
  2. "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
  3. }

启动docker服务

systemctl start docker

停止docker服务

systemctl stop docker

重启docker服务

systemctl restart docker

查看docker服务状态

systemctl status docker

设置开机启动docker服务

systemctl enable docker

查看docker概要信息

docker info

查看docker帮助文档

docker —help

查看镜像可以使用如下命令:

docker images

+ REPOSITORY: 镜像名称
+ TAG: 镜像标签 (默认是可以省略的,也就是latest)
+ IMAGE ID: 镜像ID
+ CREATED: 镜像的创建日期(不是获取该镜像的日期)
+ SIZE: 镜像大小

如果你需要从网络中查找需要的镜像,可以通过以下命令搜索

docker search 镜像名称

+ NAME: 镜像名称
+ DESCRIPTION: 镜像描述
+ STARS: 用户评价,反应一个镜像的受欢迎程度
+ OFFICIAL: 是否官方
+ AUTOMATED: 自动构建,表示该镜像由Docker Hub自动构建流程创建的

拉取镜像就是从Docker仓库下载镜像到本地,镜像名称格式为 名称:版本号,如果版本号不指定则是最新的版本 命令如下:

docker pull 镜像名称

拉取centos 7

docker pull centos:7

拉取centos 最后版本镜像

docker pull centos:latest

按照镜像id删除镜像,或者镜像名称:版本号

docker rmi 镜像ID

删除所有镜像(谨慎操作)

docker rmi docker images -q

Docker:容器相关命令

+ 查看正在运行容器: docker ps

+ 查看所有容器: docker ps -a 

+ 查看最后一次运行的容器: docker ps –l

9.2 创建与运行容器

可以基于已有的镜像来创建容器,创建与运行容器使用命令: docker run

-i: 表示运行容器

-t: 表示容器启动后会进入其命令行。加入这两个参数后,容器创建就能登录进去。即分配一个伪终端/bin/bash。

--name: 为创建的容器命名(名称必须唯一)。

-v: 表示目录映射关系(前者是宿主机目录,后者是容器的目录),可以使用多个-v做多个目录或文件映射。注意:最好做目录映射,在宿主机上做修改,然后共享到容器上。

-d: 在run后面加上-d参数, 则会创建一个守护式容器在后台运行(这样创建容器后不会自动登录容器,如果只加-i -t两个参数,并指定终端,创建后就会自动进去容器)。

-p: 表示端口映射,前者是宿主机端口,后者是容器内的映射端口。可以使用多个-p做多个端口映射。

交互式容器
  • 交互式方式创建并运行容器,启动完成后,会直接进入当前容器。使用exit命令退出容器。以此种方式创建并启动容器,如果退出容器,则容器会变成停止状态。
    ```java

    先拉取一个镜像;这一步不是每次启动容器都要做的,而是因为前面我们删除了镜像,

    无镜像可用所以才再拉取一个

    docker pull centos:7

创建并启动名称为 mycentos7 的交互式容器

容器名称 mycentos7

镜像名称:TAG (centos:7) 也可以使用镜像id (5e35e350aded)

/bin/bash: 进入容器命令行

docker run -it —name=mycentos7 centos:7 /bin/bash

<a name="MTTEi"></a>
##### 守互式容器

- 对于一个需要长期运行的容器来说,我们可以创建一个守护式容器,命令如下(容器名称不能重复)
```java
# 创建并启动守护式容器
# 容器名称: mycentos2
# 镜像名称:TAG (centos:7)  也可以使用镜像id (5e35e350aded)
docker run -di --name=mycentos2 centos:7

# 进入容器:
# docker exec -it container_name (或者 container_id) /bin/bash
# exit退出时,容器不会停止
docker exec -it mycentos2 /bin/bash

停止正在运行的容器: docker stop 容器名称|容器ID

docker stop mycentos2

启动已运行过的容器: docker start 容器名称|容器ID

docker start mycentos2

重启正在运行的容器: docker restart 容器名称|容器ID

docker restart mycentos2

在linux宿主机下查看 mycentos2 的ip

docker inspect 容器名称(容器ID)

docker inspect mycentos2

删除容器

  • 删除指定的容器: docker rm 容器名称|容器ID
  • 删除所有容器: docker rm docker ps -a -q
    ```java docker rm mycentos2

    或者

    docker rm 2095a22bee70

删除所有容器

docker rm docker ps -a -q ```

docker cp 需要拷贝的文件或目录 容器名称:容器目录

创建一个文件abc.txt

touch abc.txt

复制 abc.txt 到 mycentos2 的容器的 / 目录下

docker cp abc.txt mycentos2:/

进入mycentos2容器

docker exec -it mycentos2 /bin/bash

查看容器 / 目录下文件

ll

docker cp 容器名称:容器目录 需要拷贝的文件或目录

进入容器后创建文件aaa.txt

touch aaa.txt

退出容器

exit

在Linux宿主机器执行复制;将容器mycentos2的/aaa.txt文件复制到 宿主机器的/root目录下

docker cp mycentos2:/aaa.txt /root

创建linux宿主机器要挂载的目录

mkdir /usr/local/test

创建并启动容器mycentos3

并挂载 linux中的/usr/local/test目录到容器的/usr/local/test

也就是在 linux中的/usr/local/test中操作相当于对容器相应目录操作

docker run -di -v /usr/local/test:/usr/local/test —name=mycentos3 centos:7

在linux宿主机下创建文件

touch /usr/local/test/bbb.txt

进入容器

docker exec -it mycentos3 /bin/bash