yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum list docker-ce --showduplicates | sort -r
yum install docker-ce
yum install docker-ce-17.12.0.ce
阿里云镜像
[root@localhost ~]# cat /etc/docker/daemon.json
{
"registry-mirrors":[
"https://6kx4zyno.mirror.aliyuncs.com",
"https://ustc-edu-cn.mirror.aliyuncs.com",
"http://hub-mirror.c.163.com"
]
}
systemctl daemon-reload
systemctl restart docker
docker info
常用操作
systemctl status docker
systemctl start|restart|stop docker
docker info
docker version
镜像操作
docker images
docker rm -f 镜像name
docker rm -f 镜像id
docker pull 镜像:tag
docker search 镜像
保存镜像到本地
docker save 镜像name -o 指定文件路径
载入镜像到docker
docker load -i 本地镜像文件路径
容器操作
启动容器
docker start 容器id或者容器name
docker restart 容器id或者容器name
停止容器
docker stop 容器id或者容器name
强制停止容器
docker kill 容器id或者容器name
进入容器
docker attach 容器id或者容器name
不退出容器退出交互
ctrl p q
退出容器
exit
新建启动容器
docker run 镜像名
docker run [options] centos
docker run 参数
交互式
-i
-t
守护进程后台运行
-d
数据卷挂载文件
-v 宿主机文件目录:容器目录
映射端口
-p 宿主机端口:容器内端口
指定容器名字
--name xxx
容器退出后自动删除
--rm
查看正在运行容器
docker ps
查看所有的容器
docker ps -a
查看所有容器id
docker ps -a -q
删除所有容器
docker rm -f $(docker ps -a -q)
在容器外部执行命令
docker exec 容器id 执行的命令
docker exec f1443ff565bb ls
复制容器内文件到本地
docker copy 容器id:容器目录 本地目录
复制一个文件
docker cp 834f803eaf67:/etc/nginx/conf.d/default.conf /nginx/default.conf
复制整个目录
docker cp 74106420c8aa:/etc/nginx .
--后台启动nginx,挂载文件,映射端口
docker run --rm -d -p 80:80 \
--name nn \
-v /nginx/nginx.conf:/etc/nginx/nginx.conf \
-v /nginx/default.conf:/etc/nginx/conf.d/default.conf \
nginx
查看日志
docker logs 容器id或者容器name
实时日志
docker logs -f 容器id或者容器name
实时日志加上时间戳
docker logs -tf 容器id或者容器name
查看最后5行
docker logs --tail N 容器id或者容器name
docker logs --tail 5 46c773d4c58a
将容器打包成镜像
提交镜像到本地
-a 作者
-m 描述信息
docker commit -a="aa" -m="rename" e7654157100a wushujie/tomcat1.0
docker commit -a "gdut17" -m "add aa.txt" cc6 tomcat1.0.0
网桥
docker network
docker network ls
创建一个网桥
docker network create ems
删除网桥
docker network rm 16ca6ade01f4
查看网桥详细
docker inspect ems
启动容器时指定网桥
docker run -d --network ems tomcat
同一个网桥的容器,容器id和容器ip地址是一个映射,可以提供容器id访问
----
[root@localhost ~]# docker run -d -p 8083:8080 --network ems --name myt tomcat
b34fe51bfdac3aad495c57a540f83561c310b439406398e09eacbeaaf836199a
[root@localhost ~]# docker run -d -p 8082:8080 --network ems --name my2 tomcat
461806a4134badad9e1bd9d7e0173f654fd1ee2010b124af708e628ba727bdc6
[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
461806a4134b tomcat "catalina.sh run" 4 seconds ago Up 2 seconds 0.0.0.0:8082->8080/tcp my2
b34fe51bfdac tomcat "catalina.sh run" 13 seconds ago Up 12 seconds 0.0.0.0:8083->8080/tcp myt
[root@localhost ~]# docker exec -it 461806a4134b bash
root@461806a4134b:/usr/local/tomcat# curl http://myt:8080
<!doctype html><html lang="en"><head><title>HTTP Status 404 – Not Found</title><style type="text/css">body {font-family:Tahoma,Arial,sans-serif;} h1, h2, h3, b {color:white;background-color:#525D76;} h1 {font-size:22px;} h2 {font-size:16px;} h3 {font-size:14px;} p {font-size:12px;} a {color:black;} .line {height:1px;background-color:#525D76;border:none;}</style></head><body><h1>HTTP Status 404 – Not Found</h1><hr class="line" /><p><b>Type</b> Status Report</p><p><b>Description</b> The origin server did not find a current representation for the target resource or is not willing to disclose that one exists.</p><hr class="line" /><h3>Apache Tomcat/9.0.41</h3></body></html>root@461806a4134b:/usr/local/tomcat#
root@461806a4134b:/usr/local/tomcat# curl http://172.18.0.3:8080
<!doctype html><html lang="en"><head><title>HTTP Status 404 – Not Found</title><style type="text/css">body {font-family:Tahoma,Arial,sans-serif;} h1, h2, h3, b {color:white;background-color:#525D76;} h1 {font-size:22px;} h2 {font-size:16px;} h3 {font-size:14px;} p {font-size:12px;} a {color:black;} .line {height:1px;background-color:#525D76;border:none;}</style></head><body><h1>HTTP Status 404 – Not Found</h1><hr class="line" /><p><b>Type</b> Status Report</p><p><b>Description</b> The origin server did not find a current representation for the target resource or is not willing to disclose that one exists.</p><hr class="line" /><h3>Apache Tomcat/9.0.41</h3></body></html>root@461806a4134b:/usr/local/tomcat#
root@461806a4134b:/usr/local/tomcat#
----
查看容器详细信息,json格式
docker inspect 4e8
Dockerfile
FROM 基于那个镜像
maintainer 作者信息
env 环境变量设置
workdir 初始工作目录
run 执行的命令
expose 对外暴露的端口
cmd 命令(不能叠加)
--自定义centos,有vi,网络
from centos
maintainer gdut17<335729510@qq.com>
env mypath /usr/local
workdir $mypath
run yum -y install vi
run yum -y install net-tools
expose 80
cmd echo $mypath
cmd /bin/bash
构建
docker build -f ./Dockerfile -t mycentos:1.0 .
执行
docker run -it mycentos:1.0