安装
sudo apt-get remove docker docker-engine docker-ce docker.io
sudo apt-get update
sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common  (使apt能接受https的ppa库)
curl -fsSL https://download.docker.com/linux/ubuntu/gpg |www.jimeiyulept.com  sudo apt-key add -       (docker官方GPG密钥)
sudo add-apt-repository "deb [arch=amd64] https://www.yigouyule2.cn  download.docker.com/linux/ubuntu $(lsb_release -cs) stable"     (ppa库)
sudo apt-get update
sudo apt-get install -y docker-ce      (安装最新版)
如果不想要最新版:
apt-cache madison docker-ce       (查看版本列表)
sudo apt-get install docker-ce=<VERSION>      (指定版本安装

创建docker用户组
sudo groupadd docker            (应该不需要执行,已经有了)
sudo usermod -aG docker $USER     (将当前用户添加到附加组群docker)
重新登录用户账户使生效

验证
systemctl status docker     (启动状态)
sudo systemctl start www.dasheng178.com docker    (启动,或 sudo service docker start)
sudo docker run hello-world     (官方提供hello world程序)

docker概念
Docker客户端        命令行允许时给客户端发送命令,客户端分发到指定容器
Docker Daemon 守护进程        docker允许依赖的进程
Docker Image 镜像        docker启动前需要指定之前制作的镜像(即源码,只读模式)
Docker Container 容器        docker运行镜像的拷贝于虚拟机上(运行后的镜像为叫容器,即镜像的实例,读写模式),可对其停止运行,重新运行,内部命令操作,修改后重新打包为新镜像,一个镜像可运行为多个容器
Docker Registry 仓库        docker镜像存储的位置,有公有仓库与私有仓库
交互式容器与守护式容器        交互式容器:当前命令进程执行完毕容器即退出;守护式容器:当前命令进程与该进程启动的进程都运行完毕才退出,通常没有交互式程序时使用

创建镜像并运行生成容器
准备用于运行的springboot项目jar包 springboot-1.0.jar
新建任意名字文件夹a,进入文件夹,将jar包拷贝到文件夹内
新建Dockerfile文件,输入如下内容并保存:

  1.  
    FROM hub.c.163.com/xbingo/jdk8:latest
  2.  
     
  3.  
    ADD springboot-1.0.jar app.jar
  4.  
     
  5.  
    CMD ["java","-jar"www.ysyl157.com,"/app.jar"]

文件中,为了方便,继承了现有的jdk8的docker镜像(hub.c.163.com/xbingo/jdk8)的最新版本
在该目录下直接执行以下命令新建镜像:
docker build -t uettydkr/test:1.0 .        (不要漏了最后的点,最后那个点代表当前目录,倒二参数镜像名可任意设置,-t 为tag) 
docker images            可看到uettydkr/test:1.0已进入现有镜像列表中
docker run -p 80:8080 -t uettydkr/test:1.0          启动docker镜像新建立一个容器(-p 表示将主机80端口映射到容器内部的8080端口,--name=myname :手动分配名字,-t 伪tty终端,-d 守护进程的方式后台执行(默认交互进程方式),CMD为.sh文件时需要-d否则sh执行完docker就退出了),如果Dockerfile中没有定义命令CMD运行不成功,这时可在docker run的最后面添加运行命令手动指定

容器停止与启动
docker stop 8d43            停止正在运行的容器(发出结束的信号,8d43为通过docker ps 查看到的name前面几个字符,stop时name无须填完整,只要docker能识别不引起歧义就行)
docker start -i 8d43            重新运行容器(-i 标准输入始终打开)
docker kill 8d43            快速强制停止容器

容器与镜像的删除
docker rm 8d43            删除已经停止的容器(需先停止容器)
docker rmi uettydkr/test:1.0            删除镜像(需先删除该镜像的所有容器实例)

容器端口映射
docker run -P -i -t uettydkr/test:1.0            对容器暴露的所有端口进行映射
docker run -p 8080 -i -t uettydkr/test:1.0            指定容器8080端口映射到宿主机的随机端口
docker run -p 80:8080 -i -t uettydkr/test:1.0            容器的8080端口映射到宿主机的80端口
docker run -p 0.0.0.0:8080 -i -t uettydkr/test:1.0            指定容器ip和容器的端口
docker run -p 0.0.0.0:80:8080 www.thd540.com  -i -t uettydkr/test:1.0            指定容器ip,容器8080端口映射到宿主机的80端口
docker port 8d43            查看端口映射情况

其他操作命令一览
docker ps                        查看各镜像状态(无参数:列出运行的容器,-a:列出所有的容器,-l:列出最后运行的容器)
docker exec -it 8d43 /bin/bash            容器中启动新进程,异步方式进入docker容器命令行(如果容器构建使用的是/bin/sh,最后一个参数换成/bin/sh)
docker images            可看到uettydkr/test:1.0已进入现有镜像列表中
docker attach 8d43           附加到docker容器,同步方式进入容器命令行(如果某个客户端阻塞了,该方式进入也会被阻塞,因此不推荐)
docker inspect 8d43            列出容器json格式信息
ctrl+p && ctrl+q            退出交互式容器,容器不会停止运行(先后按下这两个命令)
exit           对交互式容器会退出
docker logs 8d43            返回日志(默认返回所有日志,-f:持续返回日志,-t:返回的日志增加时间戳,--tail 10 指定显示最新的10条日志)
docker top 8d43            查看运行中容器的进程情况
docker info            查看docker信息,包括镜像存储位置

远程镜像仓库
https://hub.docker.com/           docker官方仓库地址
docker search ubuntu             --automated=false true时只选中自动化构建出的镜像;--no-trunc=false true时不以截断的方式输出;-s或--stars=0 限制显示结果的最低星级
docker pull ubuntu:14.04            从远程拉取镜像

笔记 docker入门笔记的更多相关文章

  1. Docker入门笔记

    Docker入门笔记 随笔记录初学Docker遇到的问题, 以免下次再犯. 本机系统Ubuntu18.04 安装 Docker有2个版本 Community Edition (CE) 社区版(免费) ...

  2. Docker入门笔记(1)

    Docker入门笔记(1) 1.安装Docker yum -y install docker-ce 2.查看Docker版本 [root@localhost ~]# docker -v Docker ...

  3. Centos7——docker入门(笔记)

    docker 入门(笔记) 一.Docker是什么? 官方原话: Docker provides a way to run applications securely isolated in a co ...

  4. Docker入门-笔记-1

    Docker入门 Docker 是 Golang 编写的, 自 2013 年推出以来,受到越来越多的开发者的关注.如果你关注最新的技术发展,那么你一定听说过 Docker.不管是云服务还是微服务(Mi ...

  5. Docker 入门笔记

    Docker 可以理解为一个轻量化的虚拟机, 启动速度快,本身占的资源小 [重要], 容器里是不能保存数据的,容器只要一停止, 所有的数据都会丢失,所以如果重要的数据, 都需要通过配制,把数据保存在 ...

  6. Docker入门笔记(Centos7)

    centos7 wget https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo vim docker-c ...

  7. 【笔记】Docker入门

    这个文章讲的比较透彻,就不复制粘贴了 <Docker从入门到实践>阅读笔记 Docker安装 环境 root@fudonghai:~# uname -a Linux fudonghai - ...

  8. docker入门与部署微服务--学习笔记

    最近公司进一步去windows,走向 linux+云化. 原来的一大坨windows虚拟机服务器都要转向linux, 既然走向linux的话,那么docker肯定是要涉足的. 故学习了docker入门 ...

  9. docker学习笔记1 -- 安装和配置

    技术资料 docker中文官网:http://www.docker.org.cn/ 中文入门课程:http://www.docker.org.cn/book/docker.html docker学习笔 ...

随机推荐

  1. Unity的sendmessage用法

    刚学完sendmessage用法,自己也尝试测试了一下,用法如下: 1.在unity2017新建一个场景test 2.在场景中添加一个立方体cube作为主角,另添加一个胶囊体capsule,调整为如图 ...

  2. Drupal7强制把主题恢复到默认主题

    今天在写Theme,退出登陆的时候无法进入管理后台. 万不得已之下只有使用数据库进行恢复. Rest Drupal Theme to Bartik SQL语句如下: WHERE type = 'the ...

  3. Excel自动从身份证中提取生日、性别、年龄

    现在学生的身份证号已经全部都是18位的新一代身份证了,里面的数字都是有规律的.前6位数字是户籍所在地的代码,7-14位就是出生日期.第17位“2”代表的是性别,偶数为女性,奇数为男性.我们要做的就是把 ...

  4. vue的属性监听

    一.vue的监听 1.监听的例子 如: html:<input type="number" v-model="a" /> js: watch: { ...

  5. 51nod——1402最大值、2479小b分糖果 (套路)

    1402最大值:正向从1到n,如果没有限制,就依次递增1,如果有限制,就取那个限制和递增到这的最小值.这样保证1和每个限制点后面都是符合题意的递增,但是限制点前面这个位置可能会有落差(之前递增多了). ...

  6. SpingBoot之配置文件的值注入问题

    我们在这里研究的是以yml配置文件值注入的问题: Person: lastName: 张三 age: 23 boss: false birth: 2018-10-11 maps: {k1: v1,k2 ...

  7. bat 服务启动脚本

    当电脑上有多个数据库(特别是Oracle,占用内存大,所以我都是设置为手动启动的,或者想在电脑上运行一下其他UI类软件或玩些游戏的时候也需要暂时关掉,奈何我这渣机(V_V))需要启动或停止的时候,就用 ...

  8. redis redis-cli 操作指令

    默认选择 db库是 0 redis-cli -p 6379   查看当前所在“db库”所有的缓存key redis 127.0.0.1:6379> keys *   选择 db库 redis 1 ...

  9. videojs的使用

    [官网]http://www.videojs.com/ videojs就提供了这样一套解决方案,他是一个兼容HTML5的视频播放工具,早期版本兼容所有浏览器,方法是:提供三个后缀名的视频,并在不支持h ...

  10. 关于debug

    2019-04-05  11:18:15 1. debug 需巧用两个工具 1.1  用‘#’把感觉会出错的代码段注释掉 多行注释有两种快捷操作: 在需要注释的多行代码块前后加一组三引号''' 选中代 ...