版权声明:本文为博主原创文章,转载请指明地址。 https://blog.csdn.net/Mr_rsq/article/details/84820154
1 Docker安装
Docker 版本:
Docker从1.13版本之后采用时间线的方式作为版本号,分为社区版CE和企业版EE。
- 社区版(CE)是免费提供给个人开发者和小型团体使用的
- 企业版(EE)会提供额外的收费服务,比如经过官方测试认证过的基础设施、容器、插件等
由于Docker安装需要,最好使用64位
的操作系统且内核版本大于等于3.10
。
Docker的安装部署很简单,可以先获取到我们需要的docker-ce源,而后直接yum安装,这里介绍docker-ce的安装。
wget -q https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum install docker-ce -y
2 Docker镜像加速
docker镜像加速器:
- docker cn(docker在中国官方的加速站点,效果一般)
- 阿里云加速器(需要注册个阿里云账号)
- 中科大加速器
加速器配置文件:
/etc/docker/daemon.json
配置加速器:
# 这里我用的docker-cn,阿里云加速器需要自己去注册个账号,然后阿里云会分配专用加速器
[root@docker ~]# cat /etc/docker/daemon.json
{
"registry-mirrors": ["https://registry.docker-cn.com"]
}
[root@docker ~]# systemctl start docker.service
3 Docker常用操作命令
命令 | 作用 |
---|---|
docker search | 在docker hub中查询镜像是否存在 |
docker pull | 从仓库中pull镜像 |
docker images | 列出本地镜像 |
docker create | 创建一个容器 |
docker start | 开启一个或多个处于停止状态的容器 |
docker run | 指定命令运行一个新容器,若此容器在本地images中没有,会从docker hub中pull |
docker attach | 进入到一个容器中 |
docker ps | 列出所有状态的容器 |
docker logs | 从容器中获取日志 |
docker restart | 重启一个容器 |
docker stop | 停止一个容器 |
docker kill | kill一个或多个正在运行的容器 |
docker rm | 删除一个或多个容器 |
帮助
[root@docker ~]# docker --help
[root@docker ~]# docker image --help
查看版本
[root@docker ~]# docker version
Client:
Version: 18.06.1-ce
API version: 1.38
Go version: go1.10.3
Git commit: e68fc7a
Built: Tue Aug 21 17:23:03 2018
OS/Arch: linux/amd64
Experimental: false
Server:
Engine:
Version: 18.06.1-ce
API version: 1.38 (minimum version 1.12)
Go version: go1.10.3
Git commit: e68fc7a
Built: Tue Aug 21 17:25:29 2018
OS/Arch: linux/amd64
Experimental: false
更详细的信息
[root@docker ~]# docker info
pull一个镜像
[root@docker ~]# docker image pull nginx:1.14-alpine
[root@docker ~]# docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx 1.14-alpine 14d4a58e0d2e 7 weeks ago 17.4MB
[root@docker ~]# docker image ls nginx
删除镜像
[root@docker ~]# docker image rm busybox
[root@docker ~]# docker rmi busybox
创建容器
[root@docker ~]# docker run --name b1 -it busybox:latest
/ # ls
bin dev etc home proc root sys tmp usr var
/ # pwd
/
/ # ls /bin
启动httpd
/ # mkdir /data/html/ -p
/ # vi /data/html/index.html
Busybox httpd server
/ # httpd -f -h /data/html/
[root@docker ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
009a12f4defc busybox:latest "sh" 6 minutes ago Up 6 minutes b1
[root@docker ~]# docker inspect b1 | grep "IPAddress"
"SecondaryIPAddresses": null,
"IPAddress": "172.17.0.2",
"IPAddress": "172.17.0.2",
[root@docker ~]# curl 172.17.0.2
Busybox httpd server
如果在docker busybox shell中按终止就会连接不上
[root@docker ~]# curl 172.17.0.2
curl: (7) Failed connect to 172.17.0.2:80; Connection refused
启动容器
[root@docker ~]# docker start -ai b1
[root@docker ~]# docker container start -ai b1
运行nginx
[root@docker ~]# docker run --name web1 -d nginx:1.14-alpine
[root@docker ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c859e333c65c nginx:1.14-alpine "nginx -g 'daemon of…" About a minute ago Up 59 seconds 80/tcp web1
[root@docker ~]# docker inspect web1 | grep "IPAddress"
"SecondaryIPAddresses": null,
"IPAddress": "172.17.0.2",
"IPAddress": "172.17.0.2",
[root@docker ~]# curl 172.17.0.2
启动一个没有镜像的redis,只需要把版本号写对即可
[root@docker ~]# docker run --name kvstor1 -d redis:4-alpine
[root@docker ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e7ca0d93c496 redis:4-alpine "docker-entrypoint.s…" 5 seconds ago Up 3 seconds 6379/tcp kvstor1
c859e333c65c nginx:1.14-alpine "nginx -g 'daemon of…" 4 minutes ago Up 3 minutes 80/tcp web1
[root@docker ~]# docker exec -it kvstor1 /bin/sh
/data # ps
PID USER TIME COMMAND
1 redis 0:00 redis-server
18 root 0:00 /bin/sh
23 root 0:00 ps
/data # netstat -tnl
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:6379 0.0.0.0:* LISTEN
tcp 0 0 :::6379 :::* LISTEN
/data # redis-cli
127.0.0.1:6379> keys *
(empty list or set)
127.0.0.1:6379> exit
/data # exit
查看容器日志
[root@docker ~]# docker logs web1
172.17.0.1 - - [02/Nov/2018:01:12:42 +0000] "GET / HTTP/1.1" 200 612 "-" "curl/7.29.0" "-"