[Linux]Docker安装及常用命令

一、centos7安装docker

看版本:
cat /etc/redhat-release


检查安装gcc相关:
ping www.baidu.com
yum -y install gcc

yum -y install gcc-c++


却载旧版本:
sudo yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-selinux docker-engine-selinux docker-engine


安装需要的软件包:
yum install -y yum-utils device-mapper-persistent-data lvm2


设置stable镜像仓库:
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo


更新yun软件包索引:
yum makecache fast

安装docker ce:
yum -y install docker-ce


启动docker:
systemctl start docker


测试:
docker version

docker run hello-world

docker images

配置镜像加速:
mkdir -p /etc/docker

vim /etc/docker/daemon.json  {"registry-mirrors":["http://hub-mirror.c.163.com"}

systemctl daemon-reload

systemctl restart docker


卸载:
systemctl stop docker

yum -y remove docker-ce

rm -rf /var/lib/docker

二、ubuntu安装docker

检查docker环境:

docker -v

删除docker:

停止docker:
systemctl stop docker

删除docker文件:
apt-get autoremove docker dockerd ctr docker-proxy docker-init containerd containerd-shim runc docker-ce docker-engine docker.io

rm -rf /etc/systemd/system/docker.service.d

rm -rf /var/lib/docker
检查是否删除干净:
dpkg -l | grep docker

若有结果,则继续执行删除操作

在线安装docker:
安装docker:
apt-get install docker.io

启动docker:
systemctl start docker

设置开机自启:
systemctl enable docker

若不是root用户,将此用户加入到docker组中:
sudo usermod -a -G docker ${USER}

刷新用户加入到docker组:
newgrp docker

三、docker 使用相关命令

查看docker信息:
docker info

镜像tar解压:
docker load < [tar包]

列出本地主机镜像:
docker images
-a:列出本地所有的镜像(含中间映像层)
-q:只显示镜像ID
-digests:显示镜像的摘要信息
-no-trunc:显示完整的镜像信息


查询镜像:
docker search 某个xxx镜像名字
-no-trune:显示完整的镜像描述
-s:列出收藏数不小于指定值的镜像
--automated:只列出automated build类型的镜像


下载镜像:
docker pull 某个xxx镜像名字:[TAG]


删除镜像:
docker rmi 某个xxx镜像名字D
刪除多个:docker rmi -f 镜像名1:TAG 镜像名2:TAG
删除全部:docker rmi -f $(docker images -qa)


新建并启动容器:
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
OPTIONS:
-name="容器新名宁":为容器指定一个名称
-d:后台运行容器,并返回容器ID,也即启动守护式容器
-i:以交互模式运行容器,通常与-t同时使用
-t:为容器重新分配一个伪输入终端,通常与-i同时使用
-P:随机端口映射
-p:指定端口映射,有以下四种格式
ip:hostPort:containerPort

ip:containerPort

hostPort:containerPort

containerPort


ls -alh /.dockerenv


列出当前所有正在运行的容器:
docker ps [OPTIONS]
-a:列出当前所有正在运行的容器+历史上运行过的
-I:品示最近创建的容器
-n:鼎示最近n个创建的容器
-q:静态模式,只显示容器编号
--no-trunc:不截断输出

#字段说明
CONTAINER ID:容器的ID号
IMAGE:加载的镜像
COMMAND :运行的程序
CREATED :创建时间
STATUS:当前的状态
PORTS:端口映射
NAMES:名称

退出客器:
exit 容器停止退出
ctrl+P+Q:容器不停止退出


启动容器
docker start 容器ID或者容器名

停止容器:
docker stop 容器ID或者容器名


强制停止容器:
docker kill 容器ID或者容器名


删除已停止的容器:
docker rm 容器ID
一次性删除多个容器:
docker rm -f $(docker ps -a -q)
docker ps -a -q | xargs docker rm

查看容器ip地址:

docker inspect 容器id

进入运行着的容器:

#需要进入容器进行命令操作时,可以使用 docker exec 命令进入运行着的容器。

#格式:docker exec -it 容器ID/名称 /bin/bash
-i 选项表示让容器的输入保持打开;
-t 选项表示让 Docker 分配一个伪终端。

#示例:进入(三种方式)
docker run -itd centos:7 /bin/bash  #先运行容器
docker ps -a 
①使用run进入,可以使用ctrl+d退出,直接退出终端
docker run -it centos:7 /bin/bash 

②想永久性进入,退出后还是运行状态,用docker exec
docker ps -a 
docker exec -it b99e0771c4e1  /bin/bash

③docker attach,会通过连接stdin,连接到容器内输入输出流,公在输入exit后终止容器进程(临时性的,不推荐)

四、docker 使用示例

EMQX:

获取 Docker 镜像:

docker pull emqx/emqx:5.0.26

启动 Docker 容器:

docker run -d --name emqx -p 1883:1883 -p 8083:8083 -p 8084:8084 -p 8883:8883 -p 18083:18083 emqx/emqx:5.0.26

NPS:

获取 Docker 镜像:

docker pull ffdfgdfg/nps

启动 Docker 容器:

docker run --net=host --name nps_server -d ffdfgdfg/nps

你可能感兴趣的:(linux,linux,docker)