docker命令介绍
一、起步
1.环境准备
centOs 7
gcc
gcc-c++
2.安装docker
-
卸载旧版本docker
yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine
-
安装所需的软件包
yum install -y yum-utils \ #提供了 yum-config-manager device-mapper-persistent-data \ # device mapper 存储驱动程序需要 device-mapper-persistent-data 和 lvm2 lvm2
-
设置仓库源
官方的仓库源服务器在国外,所以速度非常慢,这里我们可以使用国内的源 如:阿里云源 清华大学源(二选一)
阿里云源
yum-config-manager \ --add-repo \ http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
清华大学源
yum-config-manager \ --add-repo \ https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo
-
安装最新版的Docker Engine-Community 和 containerd
yum install docker-ce docker-ce-cli containerd.io
-
启动docker服务
systemctl start docker
-
测试是否安装成功
docker run hello-world
3.卸载docker
-
删除安装包
yum remove docker-ce
-
删除镜像、容器、配置文件等内容
rm -rf /var/lib/docker
二、docker的常用命令
1.镜像命令
(1).查看镜像 docker images
- 查看帮助文档
docker images --help
[root@wsm ~]# docker images --help
Options:
-a, --all #显示所有镜像(默认隐藏中间镜像)
--digests #显示摘要
-f, --filter filter #根据所提供的条件过滤输出
--format string #使用Go模板打印镜像
--no-trunc #不截断输出
-q, --quiet #只显示镜像id
docker images -a
查看镜像的详细信息
[root@wsm ~]# docker images -a
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest d1165f221234 3 months ago 13.3kB
#仓库源 #镜像标签 #镜像id #创建时间 #镜像大小
docker images -q
只显示镜像的id
[root@wsm ~]# docker images -q
d1165f221234
(2)搜索镜像 docker-search
docker search 镜像名称
直接搜索
[root@wsm ~]# docker search linux
#镜像名 #镜像的描述说明 #star数 #官方的 #自动
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
linuxserver/sonarr A Sonarr container, brought to you by LinuxS… 1371 [OK]
linuxserver/plex A Plex Media Server container, brought to yo… 1189 [OK]
linuxserver/radarr A Radarr container, brought to you by LinuxS… 1029
linuxserver/transmission A Transmission container, brought to you by … 815
linuxserver/jackett A Jackett container, brought to you by Linux… 705
linuxserver/letsencrypt A Letsencrypt nginx container, brought to yo… 565
linuxserver/qbittorrent A Qbittorrent container, brought to you by L… 518
linuxserver/sabnzbd A Sabnzbd container, brought to you by Linux… 460 [OK]
docker search 镜像名 --filter=stars=1000
按条件搜索
[root@wsm ~]# docker search linux --filter=STARS=1000
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
linuxserver/sonarr A Sonarr container, brought to you by LinuxS… 1371 [OK]
linuxserver/plex A Plex Media Server container, brought to yo… 1189 [OK]
linuxserver/radarr A Radarr container, brought to you by LinuxS… 1029
(4)拉取镜像 docker pull
-
docker pull 镜像名
默认最新版 -
docker pull 镜像名:tag
指定的版本[root@wsm ~]# docker pull mysql Using default tag: latest #不写tag 默认安装最新版 latest: Pulling from library/mysql b4d181a07f80: Pull complete #分层下载 a462b60610f5: Pull complete 578fafb77ab8: Pull complete 524046006037: Pull complete d0cbe54c8855: Pull complete aa18e05cc46d: Pull complete 32ca814c833f: Pull complete 9ecc8abdb7f5: Pull complete ad042b682e0f: Pull complete 71d327c6bb78: Pull complete 165d1d10a3fa: Pull complete 2f40c47d0626: Pull complete Digest: sha256:52b8406e4c32b8cf0557f1b74517e14c5393aff5cf0384eff62d9e81f4985d4b #签名 Status: Downloaded newer image for mysql:latest docker.io/library/mysql:latest #真实地址
(5)删除镜像 docker rmi -f [id]
[root@wsm ~]# docker rmi -f d1165f221234
Untagged: hello-world:latest
Untagged: hello-world@sha256:9f6ad537c5132bcce57f7a0a20e317228d382c3cd61edae14650eec68b2b345c
Deleted: sha256:d1165f2212346b2bab48cb01c1e39ee8ad1be46b87873d9ca7a4e434980a7726
删除全部镜像 docker rmi -f $(docker images -aq)
2.容器命令
先有镜像之后才有容器 拉取容器 docker pull centos
(1) 运行容器 docker run
docker run -[参数] 镜像名
#参数
-it 使用交互方式运行,并且进入容器
-d 以后台的形式运行
-p 指定容器的端口 主机端口:容器端口
#启动容器,并且进入
[root@bogon ~]# docker run -it centos /bin/bash
[root@05b04176f1d3 /]# ls
bin dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys tmp usr var
(2)退出容器 exit
#离开容器 并且停止容器的运行
[root@05b04176f1d3 /]# exit
#离开容器但是不停止容器的运行
ctrl + Q + P
####(3)查看运行的容器 docker ps
-a, --all 显示所有容器 默认只显示运行中的
-f, --filter filter 根据条件过滤
-n, --last int 显示最近创建的容器(包括所有状态)(默认-1)
-q, --quiet 只显示容器id
-s, --size 显示总文件大小
(4)删除容器 docker rm
docker rm 容器id 删除单个容器
docker rm -f $(docker ps -aq) 删除所有容器
(5)启动和停止容器
docker start 容器id 启动容器
docker restart 容器id 重启容器
docker stop 容器id 停止容器
docker kill 容器id 强制停止容器
3.其他命令
(1)后台启动容器
docker run -d cnetos /bin/bash 后台运行命令 若无前台应用
(2)查看日志
docker logs -tf --tail 容器id 产看容器日志命令
(3)查看容器中的进程
docker top 容器id
(4)查看容器的元数据 docker inspect
docker inspect 容器id
(5)进入容器
docker exec -it 容器id /bin/bash 进入容器并且打开新的命令行
docker attach 容器id 进入容器正在执行的终端
(6)拷贝
docker cp 需要拷贝的路径 拷贝过去的路径