使用docker时的小记录,免得每次都要百度。

安装

阿里云的ECS,CentOs7

1
2
3
4
5
6
7
8
9
10
11
12
安装一些必要的系统工具:
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
安装一些必要的系统工具:
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
更新 yum 缓存:
sudo yum makecache fast
安装 Docker-ce:
sudo yum -y install docker-ce
启动 Docker 后台服务
sudo systemctl start docker
测试运行 hello-world
docker run hello-world

镜像加速

1
2
3
4
5
新版的 Docker 使用 /etc/docker/daemon.json(Linux) 或者 %programdata%\docker\config\daemon.json(Windows) 来配置 Daemon。
请在该配置文件中加入(没有该文件的话,请先建一个):
{
"registry-mirrors": ["http://hub-mirror.c.163.com"]
}

使用docker

1
2
docker run ubuntu:15.10 /bin/echo "Hello world"
Hello world

docker为二进制执行文件,docker run表示运行一个docker容器, ubuntu:15.10为要运行的docker镜像 ,/bin/echo “Hello world”表示在容器里执行的命令

交互式容器

1
2
3
4
5
docker run -i -t ubuntu:15.10 /bin/bash
-i 在容器里指定一个终端
-t 允许交互
当进入交互模式的时候,可以使用
exit 退出docker

后台模式启动容器

1
2
3
4
5
6
7
8
9
docker run -d ubuntu:15.10 /bin/sh -c "while true; do echo hello world; sleep 1; done"
在容器里每隔一秒输出一次helloworld
运行以上命令会得到一大串字符串
472aa8f1e22cc84649f50007f80a400fffb5955d8541a4007a1aba3a048afe56 这是容器ID
可以使用
dockers ps 来查看哪些docker在运行
并且使用
docker logs 472aa8f1e22c 来查看当前docker输出的内容
docker stop ID/NAME 可以停止docker运行

运行一个web应用

1
2
3
4
5
6
拉取一个镜像
docker pull training/webapp
运行
docker run -d -P training/webapp python app.py
-d 让容器在后台运行
-P 将容器内部使用的网络端口映射到我们使用的主机上。

将端口映射到指定端口

1
2
3
docker run -t -i -p 5555:22 ubuntu
这时这个ubuntu的22端口就被映射到了服务器的5555 我们可以用xshell链接物理机的5555端口,就是连接上了docker的22端口。(ubuntu里得配置允许远程连接,以及设置root的密码)
其实docker就是一台虚拟机。

停止docker容器的运行

1
2
3
docker stop ID/NAME
批量停止
docker stop $(docker ps -aq)

删除docker容器

1
2
3
4
docker rm ID/NAME
批量删除
docker rm $(docker ps -aq)
删除容器必须先把容器的应用停止,否则报错。

docker 镜像的使用

docker有官方提供的,或者各个社区贡献的镜像,很方便我们搭建环境

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
docker images
列出本机已经拉去的所有镜像文件
[root@iZuf67aowbj7d9ldydy2ovZ ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
httpd latest 2d1e5208483c 4 days ago 132MB
ubuntu latest 47b19964fb50 4 weeks ago 88.1MB
hello-world latest fce289e99eb9 2 months ago 1.84kB
ubuntu 15.10 9b9cb95443b5 2 years ago 137MB
training/webapp latest 6fae60ef3446 3 years ago 349MB
REPOSITORY:表示镜像的仓库源
TAG:镜像的标签
IMAGE ID:镜像ID
CREATED:镜像创建时间
SIZE:镜像大小

搜索镜像
docker search httpd 搜索httpd的镜像

结束

简单的获取,管理,运行docker就以上这些了。如何编写dockers,以及创建docker应用更多的玩法之后再看吧。