本文只是简单的记录一些docker的方式,具体说明会在后续的文章中写到
本实例的OS版本
$ cat /etc/redhat-release
CentOS Linux release 7.3.1611 (Core)
仓库配置文件:https://download.docker.com/linux/centos/docker-ce.repo
$ sudo wget -P /etc/yum.repos.d/ https://download.docker.com/linux/centos/docker-ce.repo
$ sudo yum repolist
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
repo id repo name status
base/7/x86_64 CentOS-7 9,911
docker-ce-stable/x86_64 Docker CE Stable - x86_64 20
epel/x86_64 Extra Packages for Enterprise Linux 7 - x86_64 12,671
extras/7/x86_64 CentOS-7 402
updates/7/x86_64 CentOS-7 1,333
repolist: 24,337
安装并运行docker
$ sudo yum install -y docker-ce
$ sudo systemctl enable docker.service
$ sudo systemctl restart docker.service
环境配置文件
/etc/sysconfig/docker-network
/etc/sysconfig/docker-storage
/etc/sysconfig/docker
Unit File
/usr/lib/systemd/system/docker.service
Docker Registry配置文件
/etc/containers/registries.conf
docker-ce 配置文件
/etc/docker/daemon.json
Docker镜像加速
docker cn
阿里云加速器
中国科技大学
{
"registry-mirrors": ["https://registry.docker-cn.com"]
}
查看doker相关信息,以及docker命令帮助
$ sudo docker info
$ sudo docker version
$ sudo docker --help
查找镜像,很多人因为不同的用途创建了各种不同的imags,使用docker search IMAGS_NAME 命令来查找它们
里面返回的结果包括image名字、描述、该image的受欢迎程度、是否是官网创建、是否自动创建
$ sudo docker search centos
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
centos The official build of CentOS. 4 672 [OK]
ansible/centos7-ansible Ansible on Centos7 116 [OK]
...................................
现在使用pull来下载一个镜像,如未指定具体版本仓库等信息,默认是下载最新版本,比如centos的最新版本7.5,标签是latest
$ sudo docker pull centos
查看已有的镜像,镜像下载完成后可以在 IMAGE ID 看到12位的hash值,这是镜像ID的精简表示,这些 IMAGE ID 是完整镜像ID的前12个字符
$ sudo docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos/mysql-57-centos7 latest 2e4ddfafaa6f 2 weeks ago 445MB
centos latest 5182e96772bf 4 weeks ago 200MB
查看镜像的完整信息
$ sudo docker inspect centos
基于镜像来跑一个container,--name给container取一个名字,-t分配一个伪终端并绑定到container的标准输入上,-i让container的标准输入保持打开(交互式)
[qkc@server166 ~]$ sudo docker run --name c1 -it centos /bin/bash
[root@2ef331ac626e /]#
container的核心是为所执行的应用程序提供依赖的环境,环境中的资源都是应用程序运行所必须的。这种特点使得container对资源的利用率极高
[root@2ef331ac626e /]# ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.0 11820 1880 pts/0 Ss 05:01 0:00 /bin/bash
root 15 0.0 0.0 51708 1716 pts/0 R+ 05:04 0:00 ps aux
退出container
按住ctrl,再按p和q
再次进入container
$ sudo docker container exec -it c1 /bin/bash