Docker 基础操作

基本docker技术简介

# 使用场景:
搭建环境(开发 测试等)
微服务架构(k8s)---基于容器
# docker与传统的vm对比
# 启动速度
vm    一般几十秒 或者几分钟
docker   几秒 或者几十毫秒
# 大小
vm    几个G   几十G
docker   mb   
# docker组成
镜像:相当于python里面类的概念,是静态的,不能直接使用
仓库:存放镜像的地方
容器:是通过镜像创建的,相当于实例的概念,是动态的,可以访问的

Docker安装

卸载旧版本

较旧的 Docker 版本称为 docker 或 docker-engine 。如果已安装这些程序,请卸载它们以及相关的依赖项。

sudo yum remove  docker \
         docker-client \
         docker-client-latest \
         docker-common \
         docker-latest \
         docker-latest-logrotate \
         docker-logrotate \
         docker-engine

安装 Docker Engine-Community

使用 Docker 仓库进行安装
在新主机上首次安装 Docker Engine-Community 之前,需要设置 Docker 仓库。之后,您可以从仓库安装和更新 Docker。

设置仓库

安装所需的软件包。yum-utils 提供了 yum-config-manager ,并且 device mapper 存储驱动程序需要 device-mapper-persistent-data 和 lvm2。
sudo  yum install -y yum-utils \
 device-mapper-persistent-data \
 lvm2

使用以下命令来设置稳定的仓库。

阿里云

sudo  yum-config-manager \
  --add-repo \
  http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

安装 Docker Engine-Community

安装最新版本的 Docker Engine-Community 和 containerd,或者转到下一步安装特定版本:

sudo yum install docker-ce docker-ce-cli containerd.io -y

启动docker

sudo systemctl start docker

docker进程相关操作

查看docker 版本

docker -v

查看docker帮助 命令

docker --help

查看docker 服务端与客户端版本详情

docker version

启动docker进程

# 方式一
systemctl start docker
# 方式2
service docker start

关闭docker

# 方式一
systemctl stop docker
# 方式二
service docker start

重启docker

# 方式一
systemctl restart docker
# 方式二
service docker restart

查看docker运行状态

systemctl status docker

镜像操作

镜像–容器的模板–打包好的—静态的概念–使用的时候请创建容器

# 查看镜像---本地的
docker images

# 搜索镜像--首先本地 --默认的地址
docker search 镜像名称

# 找到所有的镜像--拉取  pull 
docker pull tomcat   #最新版本
docker pull tomcat:7  # 指定版本

# 镜像重命名
docker images​	    # 查看镜像ID
docker rmi IMAGEID:TAG    #  使用IMAGE ID删除镜像
docker rmi PEPOSITORY  # 使用镜像名称删除

容器操作

查看容器
docker ps # 查看在运行的容器
docker ps -a   # 查看所有的容器
重命名容器
docker rename 容器旧名称  ​容器新名称

根据本机镜像,创建一个容器

docker create --name=容器名称 镜像名称   #  只是创建,没有运行
运行容器
docker start 容器名称 # start 后面可以跟 容器的id(前2-3位) 或者 name

停止容器

docker stop 容器名称 # start 后面可以跟 容器的id(前2-3位) 或者 name

删除没有运行的容器

docker rm 容器id或者名字

删除在运行的容器

docker rm -f 容器id或者名字

删除所有的容器

先停止所有的容器
docker stop $(docker ps -a -q)
删除
docker rm $(docker ps -a -q)

容器运行时的一些设置

注意:访问端口 你需要访问的是容器内部的端口

查看docker run 常用命令

  • docker run 后面的参数解释
  • docker run --help 查看帮助命
    • --name 指定容器名称
    • -i # 运行容器
    • -t # 容器启动后,进入命令行
    • -d # 守护进程-后台运行
    • -e # 设置环境变量
    • -p 宿主机的端口:容器的端口 # 端口映射
    • --link 容器名称 # 启动时关联其他容器
    • -v 宿主机目录:容器目录 # 目录映射--挂载
      • 我们将硬盘上的一个目录挂载到这个位置,方便后续更新镜像后继续使用原来的工作目录
      • -v /etc/localtime:/etc/localtime 让容器使用和服务器同样的时间设置
    • 后续用到继续补充

创建容器,并且进入命令行—进入容器

# 进入命令行
docker run -it --name=容器名称 镜像名称 /bin/bash	  # -t 指定shell类型
# 不进入命令行
docker run -di --name=容器名称 镜像名称

进入容器

docker exec -it myTomcat2 /bin/bash​

退出容器

exit # 退出容器

宿主机与docker容器的文件传递

在宿主机创建一个文件

touch xt.txt
# 把该文件复制到容器里去
docker cp xt.txt myTomcat2:/
# 进入根目标
cd /
# 查看
ls

怎么从容器中的文件copy 到宿主机里

touch abc.txt
#2- 退出容器
exit
#3- 
docker cp myTomcat2:/abc.txt /root

docker logs命令

docker logs [options] 容器获取容器的日志。
命令格式:
$ docker logs [OPTIONS] CONTAINER
  Options:
        --details        显示更多的信息
    -f, --follow         跟踪实时日志
        --since string   显示自某个timestamp之后的日志,或相对时间,如42m(即42分钟)
        --tail string    从日志末尾显示多少行日志, 默认是all
    -t, --timestamps     显示时间戳
        --until string   显示自某个timestamp之前的日志,或相对时间,如42m(即42分钟)
例子:
例如打印容器某应用后10行的内容
docker logs -f --tail 10 容器名称或容器ID

查看指定时间后的日志,只显示最后100行:
docker logs -f -t --since="2022-03-27" --tail=100 CONTAINER_ID

查看最近30分钟的日志:
docker logs --since 30m CONTAINER_ID

查看某时间之后的日志:
docker logs -t --since="2022-03-27T10:20:37" CONTAINER_ID

查看某时间段日志:
docker logs -t --since="2022-03-27T10:20:37" --until "2022-03-27T10:20:37" CONTAINER_ID

docker配置

docker加速

默认情况下,docker下载镜像是从官网下载,下载速度特别特别的慢。使用阿里云加速器可以提升获取Docker官方镜像的速度。

在指定目录创建文件(如已存在请忽略此步):

# 打开daemon.json文件,添加或修改如下内容
vi /etc/docker/daemon.json

{
  "registry-mirrors": ["https://3q6v6v0z.mirror.aliyuncs.com"]
}

# 重启
systemctl restart docker

注意:此网址是从阿里云控制台复制过来的,每个登录用户都不一样。当然用上面的这个地址也可以。

镜像备份

把tomcat镜像打包成文件,

docker save -o name.tar 容器名称

把tomcat.tar放到其他电脑,其他人变成镜像使用

docker load -i name.tar

时间同步问题

宿主机linux查看时间

date
Sun Mar 27 12:01:36 CST 2022

如果时间不对使用下面措施(正确则跳过)

安装ntp
yum install  ntp  #安装ntp服务
# 同步阿里时间
docker cp /etc/localtime CONTAINER_ID:/etc/localtime

# 可能存在问题
# 抛异常
Error response from daemon: Error processing tar file(exit status 1): invalid symlink "/usr/share/zoneinfo/UCT" -> "../usr/share/zoneinfo/Asia/Shanghai”

# 解决办法
docker cp /usr/share/zoneinfo/Asia/Shanghai 容器id:/etc/localtime
​
#重启容器
docker restart 容器id
​
ntpdate  ntp1.aliyun.com

注意事项:

  • 可能网络会断开,请重新reboot下linux
  • 虚拟机的ip可能会改变

轻量级图形页面管理之portainer

1.查看portainer镜像
docker search portainer

2.选择喜欢的portainer风格镜像,下载

docker pull portainer/portainer 
3.启动dockerui容器
docker run -d --name portainerUI -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock portainer/portainer

4、浏览器访问 http://你虚拟机的ip:9000, 设置一个密码即可,点击创建用户  密码要8位以上

5、进入页面直接选择Local ,点击连接

Linux防火墙相关操作

# 查看防火墙状态
systemctl status firewalld
service  iptables status

1:查看防火状态
systemctl status firewalld
service  iptables status

2:暂时关闭防火墙(重启后失效)
systemctl stop firewalld
service  iptables stop

3:永久关闭防火墙
systemctl disable firewalld
chkconfig iptables off

4:重启防火墙
systemctl enable firewalld
service iptables restart  

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