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
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Docker是一种开源的容器化平台,通过使用容器来实现应用程序的快速部署和可移植性。以下是一些Docker基本命令: 1. docker run:通过镜像创建并运行一个容器。 2. docker ps:列出当前正在运行的容器。 3. docker stop:停止一个正在运行的容器。 4. docker rm:删除一个已停止的容器。 5. docker images:列出所有的镜像。 6. docker pull:从远程仓库中下载一个镜像。 7. docker push:将一个本地镜像推送到远程仓库。 8. docker build:使用Dockerfile构建一个镜像。 9. docker exec:在一个正在运行的容器中执行命令。 10. docker logs:显示一个容器的日志。 而docker-compose是一个用于定义和运行多个Docker容器的工具。以下是一些docker-compose的基本命令: 1. docker-compose up:根据docker-compose.yml文件启动所有的容器。 2. docker-compose down:停止并删除所有的容器、网络和卷。 3. docker-compose start [服务名称]:启动docker-compose.yml文件中的单个服务。 4. docker-compose stop [服务名称]:停止docker-compose.yml文件中的单个服务。 5. docker-compose restart [服务名称]:重启docker-compose.yml文件中的单个服务。 6. docker-compose logs [服务名称]:显示docker-compose.yml文件中单个服务的日志。 希望以上信息能够对您有所帮助。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [dockerdocker-compose命令学习](https://blog.csdn.net/qq_29277155/article/details/124409801)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值