记录一些docker的基础和命令

安装就是正常的Linux下载命令,下载下来就是docker-ce

yum install docker

安装之后,使用命令来设置docker的开机自启动

systemctl enable docker

没有使用过的朋友可以输入docker来查询所有的命令,带介绍。

记录一些docker的基础和命令 记录一些docker的基础和命令

 

Docker下载基础镜像的命令也非常简单,直接docker pull xxx 就会自动查询并下载镜像,也可以在镜像后标明要下载镜像的版本号 如:xxx:5,这种格式。

如果不确定要下载的公共镜像,可以使用docker search xxx来查询要下载的镜像,从中间挑一个你需要的镜像来使用。

  1. 下载镜像之后输入docker images 来查看下载的镜像
  2. 然后使用docker run –d –p 80:80 xxx镜像名称   来运行
  1. -d:让容器在后台运行。
  2. -P:将容器内部使用的网络端口映射到我们使用的主机上,在外部也可以使用运行的端口来访问。
  3. 还可以使用—net来设置docker的网络模式
  4. Docker 一共有四种网络模式。
  5. Bridge模式:这是docker默认的网络模式,它会为容器分配网络空间、设置IP等,并且将容器连接到一个虚拟网桥上,具体没有去了解。
  6. None模式:这个模式一般不使用,这种模式下,容器拥有属于自己的网络空间,但是没有任何网络配置,所有的配置都需要手动添加
  7. Container模式:这个模式和host模式比较像,但是它是指定容器和已经存在的某一个容器共享网络环境,所以它使用起来是这样的--net=container:镜像名称_or_镜像id
  8. Host模式:docker一般都是完全隔离的网络环境,但是如果使用了host模式,docker就不会再去创建虚拟的网卡、IP等,而是直接使用宿主机的网络,但是除了网络,其他还是和宿主机隔离的。

运行之后就可以使用docker ps 来查看正在运行的容器,加上-a代表显示所有容器,包括未运行的容器。-q代表只显示容器id

Docker top 容器id  可以用来查看容器内部运行的进程

如果想查看容器日志 的话,可以使用docker logs –f 容器id

容器的一些命令:

 

 

  1. 停止容器:docker stop 容器id 。
  2. 重启容器:docker start 容器id
  3. 删除容器:docker rm 容器id,删除容器之前必须先停止容器,否则删除不了
  4. 删除镜像:docker rmi 镜像id,删除镜像之前必须先删除容器
  5. 构建镜像
  6. 构建一个镜像需要先创建Dockerfile,格式为:from  基础镜像名称(基于哪个镜像) volume /文件夹(挂在哪个目录下) add xxx.jar(把jar包添加到镜像中) run xxx(在镜像中执行什么命令)  expost 端口(对外映射的本地端口,需要在docker run 的时候使用-p才起作用) ,然后使用docker build -t xxx:1.0.0 . -f Dockerfile来生成镜像
  7. Docker pause 容器id 暂停容器,暂停之后方便docker commit命令
  8. Docker commit 容器id 提交当前容器为新的镜像
  9. Docker unpause 容器id 继续暂停的容器
  10. 有的微服务可能会操作到文件上传下载,但是容器是单独隔离的,所以可以用-v来挂在目录,如-v /java:/java ,如果没有该文件夹会自动创建,默认挂载文件是可读写的,也可以指定只读,如:-v /java:/java:ro,可以同时挂载多个文件夹,只用多次使用-v就可以
  11. 运行镜像创建容器时,可以使用—name来指定创建的容器名称,不指定的话会自动创建名称,容器名称必须唯一
  12. docker logs -f -t --since="2019-05-30" --tail=10 docker_container_name
  13. --since : 此参数指定了输出日志开始日期,即只输出指定日期之后的日志。
  14. -f : 查看实时日志 -t : 查看日志产生的日期 -tail=10 : 查看最后的10条日志

 因为docker默认从官方下载镜像,所以速度会比较慢,下面附一些docker镜像地址

Docker国内镜像地址

Docker 官方中国区

https://registry.docker-cn.com

网易

http://hub-mirror.c.163.com

中国科技大学

https://docker.mirrors.ustc.edu.cn

阿里云

https://pee6w651.mirror.aliyuncs.com

腾讯云

https://mirror.ccs.tencentyun.com

daemon.json格式

{
 "registry-mirrors":["https://registry.docker-cn.com","https://mirror.ccs.tencentyun.com"]
}

修改完daemon.json文件后重新加载文件并重启docker

systemctl daemon-reload

service docker restart