docker安装与基本操作

docker安装

查看docker安装情况

rpm -q docker

安装docker依赖

yum install -y yum-utils

设置 仓库镜像地址

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

下载docker相关引擎

yum makecache fase

查看docker所有版本

yum list docker-ce --showduplicates | sort -r

安装docker指定版本

yum install -y docker-ce-18.06.0.ce

设置阿里云镜像加速器

阿里云
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

mkdir -p /etc/docker
tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://eoxkfqyz.mirror.aliyuncs.com"]
}
EOF
systemctl daemon-reload
systemctl restart docker

docker基本命令

docker相关命令

#启动docker
systemctl start dokcer
#查看docker状态
systemctl status docker
#停止docker
systemctl stop docker
#docker开机自启
systemctl enable docker
# 批量停止容器
docker stop $(docker ps -a -q)
# 批量删除容器
docker rm $(docker ps -a -q)
# 删除none镜像
docker rmi $(docker images | grep "^<none>" | awk "{print $3}")
# 删除全部镜像
docker rmi -f $(docker images -q)

镜像相关命令

镜像是一个只读的文件,能够被docker运行起来的程序

#搜索镜像
docker search 镜像名
#查看所有镜像
docker images / image list
#拉取镜像
docker pull 仓库名/镜像名
docker pull 镜像名:版本
#删除镜像
docker image rmi 镜像名或镜像id
#删除没有使用的镜像
docker image prune -a
#镜像重命名
docker tag 旧镜像名:旧版本号 新镜像名:新版本号 
#导出镜像
docker save -o 保存文件名 镜像名
#导入镜像
docker load -i 文件名

容器相关命令

容器就类似于我们运行起来的一个操作系统,而且这个操作系统启动了某些服务。 这里的容器指的是运行起来的一个Docker镜像。

#查看所有容器
docker container ls --all 
docker ps -a
#查看正在运行的容器
docker ps
#启动容器
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
#运行centos7
docker run -it --name=mycentos centos:centos7 /bin/bash
#守护进程方式运行centos7
docker run -itd --name=mycentos centos:centos7 /bin/bash
#将容器连接网络
docker run -it --name=mycentos --network=host centos:centos7 /bin/bash
#容器映射端口
docker run -it --name=mycentos --network=host -p 5000:5000 centos:centos7 /bin/bash
#查看容器内部情况
docker inspect 容器名或容器id
#查看容器运行日志
docker logs 容器名或容器id
#进入容器内部交互环境
docker exec -it 容器名或容器id /bin/bash
#开启容器
docker start 容器名或容器id
#停止容器
docker stop 容器名或容器id
#删除容器(容器必须停止才能删除)
docker rm 容器名或容器id
# 批量关闭/删除容器
docker stop/rm $(docker ps -a -q)
#容器制作成镜像
docker commit 容器名或容器id 镜像名
#将本地文件或文件夹复制到容器内
docker cp 本地文件路径 容器id:容器路径
## 进入容器后ip not found
yum -y install initscripts

docker run 参数:

参 数操作
-i以交互模式运行容器
-t容器启动后会进入命令行
-it分配一个伪终端
- -name给容器命名
-v目录映射
-d守护方式在后台运行容器
-p端口指定映射
-P端口随机映射
- -networkhost:表示把主机的网络环境映射到容器 ;bridge:为每一个容器分配、设置IP等,并将容器连接到docker0的虚拟网桥;none:容器有自己独立的Network namespace,但是没有进行任何的相关配置

–network使用

#查看可支持的network
docker network ls
#创建network,   默认为bridge模式。
docker network create network名   
#删除network
docker network rm network名

私有仓库部署

下载registry镜像

docker pull registry

启动仓库容器

docker run -d -p 5000:5000

仓库配置

vim /etc/docker/daemon.json 

{"registry-mirrors": 
["http://74f21445.m.daocloud.io"], "insecure-registries": ["192.168.153.20: 5000"]}

#重启
systemctl daemon-reload
systemctl restart docker

私有容器提交和拉取

#启动容器
docker start registry容器id
#标记容器
docker tag centos 192.168.153.20/mycentos
#提交容器
docker push 192.168.153.20/mycentos
#拉取镜像
docker pull 192.168.153.20/mycentos

Dockerfile

docker官网
Dockerfile类似于我们学习过的脚本,将我们在上面学到的docker镜像,使用自动化的方式实现出来。

Dockerfile的作用 
	1、找一个镜像: centos 
	2、创建一个容器: docker run centos
	3、进入容器: docker exec -it 容器 命令 
	4、操作: 各种应用配置
	5、构造新镜像: docker commit Dockerfile 
使用准则 
	1、大: 首字母必须大写D 
	2、空: 尽量将Dockerfile放在空目录中。 
	3、单: 每个容器尽量只有一个功能。 
	4、少: 执行的命令越少越好。

构建镜像命令格式

docker build -t [镜像名]:[版本号] [Dockerfile所在目录]
docker build -t centos:v01 Dockerfile

Dockerfile文件构造

# 构建一个基于centos镜像 
FROM centos:centos7
# 镜像作者 
MAINTAINER xxx
# 执行命令 
# 将本地指定文件复制到容器指定目录下
# ADD 本地目录文件地址 容器文件地址
# 执行命令
RUN yum install -y wget
# 对外端口 
EXPOSE  8000
#环境变量设置
#ENV <key> <value>
# 启动 ssh 
COMMAND ["systemctl","status","network"]

Dockerfile命令详解

指令功能
FROM构建一个新的基础镜像
RUN运行指定的命令 (yum install, ls , mkdir)
COPY复制主机文件或文件夹到容器内 ,但是是不会自动解压文件,也不能访问网络资源,(推荐使用)
ADD与COPY功能类似,但ADD也支持使用url指定的资源为源文件
EXPOSE生成容器时期望的暴露端口,实际取决于docker run -p
CMD默认运行的程序
WORKDIR切换目录
ENV以键值格式设置环境变量
ENTRYPOINT与CMD类似,
VOKUME指定基于新镜像运行容器时作为映射目录

注:
1、CMD不同于RUN,CMD用于指定在容器启动时所要执行的命令,而RUN用于指定镜像构建时所要执行的命令。
2、ENTRYPOINT与CMD非常类似,不同的是通过docker run执行的命令不会覆盖ENTRYPOINT,而docker run命令中指定的任何参数,都会被当做参数再次传递给CMD。Dockerfile中只允许有一个ENTRYPOINT命令,多指定时会覆盖前面的设置, 而只执行最后的ENTRYPOINT指令。 通常情况下, ENTRYPOINT 与CMD一起使用,ENTRYPOINT 写默认命令,当需要参数时候 使用CMD传参。

entrypointcmdcommandargs结果
execcmdexec cmd
exec1cmd1exec2cmd2exec2 cmd2
exec1cmd1cmd2exec1 cmd2
exec1cmd1exec2exec2 cmd1

docker-compose

Docker Compose是一个docker编排工具。一个Docker容器的应用,通常由多个容器组成。使用Docker Compose不再需要使用shell脚本来启动容器。

docker-compose安装

curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
#修改权限
chmod +x /usr/local/bin/docker-compose
#查看版本
docker-compose --version
#高版本
curl -SL \
https://github.com/docker/compose/releases/download/v2.20.2/docker-compose-linux-x86_64 \
-o /usr/local/bin/docker-compose
#pip安装
pip3 install docker-compose==1.16.1 -i  https://pypi.douban.com/simple

docker-compose文件详解

version: '3.1' #指定 docker-compose.yml 文件的写法格式

services: #多个容器集合
  py:
    build: ../ #使用Dockerfile构建映像
    container_name: my-py #容器名
    ports:
     - "5000:5000"
    expose: #暴露端口,但不映射到宿主机,只被连接的服务访问
     - "8081"
  redis:
    image: redis:alpine #指定服务所使用的镜像
    volumes:#目录映射
      - /home/time/data:/data
    restart: unless-stopped
    privileged: true
    logging: #日志服务
      driver: "json-file" #默认json-file,可选syslog
      options:
        max-size: "10m"
  web:
    image: mytest:v1.0.0
    command: sh -c 'cd /data && ls' #容器启动后默认执行的命令
    volumes:
      - .:/web
      - /data:/data
      - /home/time/data:/data
    depends_on: #规定service加载顺序,例如web需要在redis运行前运行
      - redis
    restart: unless-stopped #no是默认的重启策略,在任何情况下都不会重启容器。 指定为always时,容器总是重新启动
    privileged: true
    logging:
      driver: "json-file"
      options:
        max-size: "10m"
networks:
  default:
      driver: default
      config:
        - subnet: 10.254.{{net_id}}.0/24

docker-compose命令

#相当于 build + start :构建容器并启动容器整个project的所有service
docker-compose up -d

问题

# cgroups: cannot find cgroup mount destination: unknown.
sudo mkdir /sys/fs/cgroup/systemd
sudo mount -t cgroup -o none,name=systemd cgroup /sys/fs/cgroup/systemd/

mysql arm64版本

 
docker pull --platform linux/amd64 mysql:5.7.30
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Docker是一种开源的容器化平台,它能够帮助开发者和运维人员将应用程序及其依赖项打包到一个可移植的容器中,方便在不同的环境中部署和运行。 安装Docker基本操作如下: 1. 首先,在Linux系统中,可以使用以下命令来安装Docker: ``` sudo apt-get update sudo apt-get install docker-ce docker-ce-cli containerd.io ``` 2. 安装完成后,可以使用以下命令来验证Docker是否正确安装: ``` docker --version ``` 3. 如果需要使用Docker的命令行工具,可以将当前用户添加到`docker`用户组中: ``` sudo usermod -aG docker $USER ``` 4. 为了使Docker服务在启动时自动启动,可以使用以下命令将其设置为开机自启动: ``` sudo systemctl enable docker ``` 卸载Docker基本操作如下: 1. 首先,停止并删除所有正在运行的容器: ``` docker stop $(docker ps -aq) docker rm $(docker ps -aq) ``` 2. 然后,卸载Docker软件包: ``` sudo apt-get purge docker-ce docker-ce-cli containerd.io ``` 3. 假如希望删除所有与Docker相关的镜像、容器和卷等数据,可以使用以下命令进行清理: ``` sudo rm -rf /var/lib/docker ``` 4. 最后,可以使用以下命令来确认是否成功卸载Docker: ``` docker --version ``` 总结起来,安装Docker只需要几个简单的命令即可完成,卸载Docker也同样简单。通过掌握这些基本操作,你可以更好地进行Docker安装和卸载,并在需要的时候方便地使用Docker进行应用程序的部署和管理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值