命令:
yum -y update #安装 Docker yum install docker -y #启动 Docker systemctl start docker.service systemctl status docker.service systemctl stop docker.service systemctl start docker.service systemctl restart docker.service systemctl status docker.service #安装常用工具 yum install iproute ftp bind-utils net-tools wget -y 其中: iproute 用来执行 ip address 查看本机地址 ftp 用来测试ftp 服务器 bind_utils 用来运行 nslookup net-tools 用来执行 netstate wget 既是执行 wget的 #配置dns nslookup www.baidu.com vi /etc/resolv.conf # Generated by NetworkManager search www.tendawifi.com nameserver 119.29.29.29 nameserver 182.254.116.116 nslookup www.baidu.com #配置镜像加速器 sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://hvmf8r55.mirror.aliyuncs.com"] } EOF sudo systemctl daemon-reload sudo systemctl restart docker tail /etc/docker/daemon.json #拉取镜像 docker pull how2j/tmall #运行镜像 docker run -dit --privileged -p21:21 -p80:80 -p8080:8080 -p30000-30010:30000-30010 --name how2jtmall how2j/tmall:latest /usr/sbin/init docker run 表示运行一个镜像 -dit 是 -d -i -t 的缩写。 -d ,表示 detach,即在后台运行。 -i 表示提供交互接口,这样才可以通过 docker 和 跑起来的操作系统交互。 -t 表示提供一个 tty (伪终端),与 -i 配合就可以通过 ssh 工具连接到 这个容器里面去了 --privileged 启动容器的时候,把权限带进去。 这样才可以在容器里进行完整的操作 -p21:21 第一个21,表示在CentOS 上开放21端口。 第二个21 表示在容器里开放21端口。 这样当访问CentOS 的21端口的时候,就会间接地访问到容器里了 -p80:80 和 21一个道理 -p8080:8080 和21 一个道理,在本例里,访问的地址是 http://192.168.84.128:8080/tmall/, 这个 192.168.84.128 是CentOS 的ip地址,8080是 CentOS 的端口,但是通过-p8080:8080 这么一映射,就访问到容器里的8080端口上的 tomcat了 -p30000-30010 和21也是一个道理,这个是ftp用来传输数据的 --name how2jtmall 给容器取了个名字,叫做 how2jtmall,方便后续管理 how2j/tmall:latest how2j/tmall就是镜像的名称, latest是版本号,即最新版本 /usr/sbin/init: 表示启动后运行的程序,即通过这个命令做初始化 #进入容器 docker exec -it how2jtmall /bin/bash #检查端口 netstat -anp|grep 8080 #ip地址 ip address 仓库: 别人做好的现成的镜像,都放在仓库里 镜像: 自己要用哪个镜像,就先拉到本地来。镜像就相当于还没激活的容器。 容器: 容器就是跑起来的镜像,就是一个完整的工作环境 #镜像管理 docker search how2j docker search tomcat docker run -it --rm -p 8888:8080 tomcat:8.0 docker images docker rmi docker.io/tomcat:8.0 docker tag docker.io/tomcat:8.0 docker.io/mytomcat:8.0 #删除全部镜像 docker rmi $(docker images -q) #容器管理 docker run -dit --privileged -p21:21 -p80:80 -p8080:8080 -p30000-30010:30000-30010 --name how2jtmall how2j/tmall:latest /usr/sbin/init docker exec -it how2jtmall /bin/bash docker commit how2jtmall how2j/tmall:now 暂停:pause 恢复:unpause 停止:stop 开始:start docker ps -a docker psdocker inspect how2jtmall docker rm how2jtmall #删除所有容器 docker rm `docker ps -a -q` -f #提交镜像 注册账号https://hub.docker.com/signup docker login docker push how2j/tmall:latest #DockerFile DockerFile 与 commit一样,也是用于做镜像的。 与 commit 把现成的 容器转换为镜像不同的是, DockerFile 需要自己写脚本,一条一条地把最终镜像需要的内容撸进去~ #DockerFile命令 https://www.jianshu.com/p/10ed530766af
参考: