Docker -- 1.安装和基本命令

1. 环境搭建

1.1 环境介绍

  首先, Docker 并不是容器,它是一个管理容器的引擎。采用Linux 版本是 CentOS 7,Docker 也更推荐在 Linux 环境下使用;Docker 支持 CentOS 6 及以后的版本,并且要求CentOS 系统的内核版本要高于 3.10,我们可以通过uname -r命令查看验证。
在这里插入图片描述
  Docker版本分为Docker CE 和 Docker EE。Docker CE 即社区免费版,可永久免费使用;Docker EE 即企业版,功能更全,更强调安全,但需付费使用;这里介绍 Docker CE 版本, Docker 官方网站:https://www.docker.com/
  Docker中主要术语解释如下:镜像和容器的关系在Jaav中就相当于, 类class(镜像)和new出来的对象(容器)
在这里插入图片描述

1.2 安装

  CentOS7 系统可以直接通过 yum 进行安装:安装前可以查看一下系统是否已经安装了 Docker,如果存在则卸载,不存在则安装。

#查看是否安装
yum list installed | grep docker

#卸载
yum remove docker.x86_64 -y
yum remove docker-client.x86_64 -y 
yum remove docker-common.x86_64 -y

#安装
yum install docker -y

  启动、关闭、重启,查看Docker状态:

#启动:
systemctl start docker 或者 service docker start
#停止:
systemctl stop docker 或者 service docker stop
#重启:
systemctl restart docker 或者 service docker restart
#查看状态:
systemctl status docker 或者 service docker status
#查看docker进程
ps -ef | grep docker

2.基本命令

2.1 修改默认镜像源地址

  Docker默认的源为国外官方源,下载速度较慢,可改为国内,加速

  1. 第一种:修改或新增 /etc/docker/daemon.json,增加下面配置,重启服务:systemctl restart docker
 vi /etc/docker/daemon.json

{

"registry-mirrors": ["http://hub-mirror.c.163.com"]

}

  1. 第二种修改或新增 /etc/sysconfig/docker,在OPTIONS变量后追加参数 --registry-mirror=https://docker.mirrors.ustc.edu.cn
vi /etc/sysconfig/docker

OPTIONS='--selinux-enabled --log-driver=journald --registry-mirror=https://docker.mirrors.ustc.edu.cn'

Docker 官方中国区
https://registry.docker-cn.com

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

中国科技大学
https://docker.mirrors.ustc.edu.cn

阿里云
https://pee6w651.mirror.aliyuncs.com

2.2 服务信息相关命令

  查看 docker 系统信息

docker info 

  查看所有的帮助信息

docker
docker commond –help 

2.3 镜像相关命令

  搜索镜像

docker search tomcat 

  拉取镜像

docker pull tomcat

#拉取最新版本的
docker pull redis:latest

  查看镜像

docker images

#或者列出特定镜像
docker images redis

  运行镜像,-d是后台运行,运行之后就会得到一个运行中的容器

docker run -d tomcat

  运行镜像,映射端口,将宿主机端口映射到docker内部端口,左侧是宿主机端口,右侧是docker内部端口

docker run -d -p 8080:8080 tomcat

  删除镜像,rmi是删除镜像,rm是删除容器

docker rmi tomcat 或者镜像id

  运行镜像,挂载目录,将宿主机的/root/tomcat目录映射到docker内部的/root/tomcat目录,后面那个tomcat是镜像名称,也可以是镜像id,最后面的/bin/bash是docker内部使用/bin/bash命令。
  i 表示交互式的,也就是保持标准输入流打开;t 表示虚拟控制台,分配到一个虚拟控制台;

docker run -it -v /root/tomcat:/root/tomcat tomcat /bin/bash

2.4 容器相关命令

  列出docker运行的所有容器

docker ps

#查看全部
docker ps -a

  列出docker所有容器,包括运行中、已关闭等所有

docker container ls -a
#等价于上面的
docker ps -a

  进入、退出容器控制台

#进入
docker exec -it 容器id /bin/bash
#或者
docker attach

#退出
exit

  停止容器

docker stop 容器 ID/名称

  删除容器

docker rm 容器 id 或容器名称

  停止全部运行中的容器

docker stop $(docker ps -q)

  删除全部运行中的容器

docker rm $(docker ps -aq)

  停止全部运行中的容器并删除容器

docker stop $(docker ps -q) & docker rm -f $(docker ps -aq)

2.5 其他命令

  查看容器启动日志

docker logs <container>

  从宿主机向容器中导入文件

docker cp 宿主机文件地址 容器id:容器内地址

  从容器向宿主机导出文件

docker cp 容器id:容器内地址 宿主机文件地址 

3.问题

3.1 docker启动容器后,通过docker ps查不到运行中的容器

退出原因

  1. docker容器运行必须有一个前台进程, 如果没有前台进程执行,容器认为空闲,就会自行退出
  2. 容器运行的命令如果不是那些一直挂起的命令( 运行top,tail、ping、循环等),就是会自动退出
  3. 这个是 docker 的机制问题

解决

  1. 方案1:网上有很多介绍,就是起一个死循环进程,让他不停的循环下去,前台永远有进程执行,那么容器就不会退出了,以centos为例。缺点: 命令太冗长了,还占用一个终端
docker run -d centos /bin/sh -c "while true; do echo hello world; sleep 1; done"
  1. 方案2:通过一个交互后台运行,添加-it 参数交互运行,添加-d 参数后台运行,这样就能启动一个一直停留在后台运行的Centos了。
docker run -dit centos /bin/bash

docker ps 
#容器运行起来了

#或者使用能够一直挂起的命令,例如:
docker run centos:latest ping www.baidu.com
发布了66 篇原创文章 · 获赞 18 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/Aeve_imp/article/details/101429596