【Docker】Docker的说明和使用

一、Docker介绍

1、是一个开源的应用容器,基于go语言并遵从Apache2.0 协议开源。可以使开发者打包应用及依赖包到一个轻量级、可移植的容器中,后发布到流行的Linux机器上,也可以是实现虚拟化。

2、容器是完全使用沙箱机制,相互之间不会有任何接口(类似Iphone的app),更重要的是容器性能开销极低。

3、应用场景:Web应用的自动化打包和发布,自动化测试和持续集成、发布,在服务型环境中部署和调数据库或其它的后台应用,从头编译或者扩展现有的 OpenShift 或 Cloud Foundry 平台来搭建自己的 PaaS 环境

Docker 官网:https://www.docker.com

Github Docker 源码:https://github.com/docker/docker-ce

 

二、ubuntu安装docker

1、docker下载

1)添加源,和密钥(清华源)

echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/ $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list

curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

2)docker官方源
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

2、安装

sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io

3、设置docker开机启动

sudo systemctl enable docker.service

4、用户加进docker用户组

sudo gpasswd -a your_user docker
newgrp - docker

5、修改docker存储路径

如果需要换路径的话:
docker默认会撞到系统盘里,但系统盘可能是个容量比较小的ssd。如果容器占空间较大,并且有持续增长的可能,最好把docker存储路径修改到大容量data盘的目录上。

sudo vi /usr/lib/systemd/system/docker.service
编辑docker服务配置文件,修改如下位置的配置

[Service]
#ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --graph /media/data1/service/docker
应用配置,重启docker服务

sudo systemctl daemon-reload
sudo systemctl restart docker

6、查看docker是否安装成功

docker --version

 

三、ubuntu卸载docker

1、删除docker,和安装docker时自动安装的组件
sudo apt autoremove docker docker-ce docker-engine docker.io containerd runc
dpkg -l | grep docker
sudo apt autoremove docker-ce-*
2、删除docker的相关配置&目录
sudo rm -rf /etc/systemd/system/docker.service.d
sudo rm -rf /var/lib/docker
3、 查看docker没有命令即卸载完成

docker --version

 

四、常用命令

https://blog.csdn.net/qq_44747572/article/details/120831629
https://blog.csdn.net/qq_44858888/article/details/124084408

  • docker下载镜像(安装python):docker pull python:3.6
  • 查看镜像:docker images
  • 查看镜像详情:docker inspect 镜像名或镜像id
  • 查看镜像历史:docker history 镜像名或镜像id
  • 运行镜像文件(docker中运行python):docker run -it python:3.6 /bin/bash
  • 查看Docker容器ID:docker ps -a
  • 查看容器日志信息:docker container logs 802  #802为自己的容器id(一般写前三位)
  • 停止运行的容器:docker container stop 802 #802为容器id
  • 重新启动容器:docker container restart 802  #802为容器id
  • 进入(exec)指定容器(Container):docker exec -it 802 bash   #802为容器id
  • 从容器(Container)中退出:exit
  • 依据容器ID进行镜像制作:docker commit 容器ID new_python:3.6。如:docker commit 4a4efe8b4dd4 new_python:3.6
  • 查看的镜像是否存在:docker images
  • 镜像打包(导出镜像):docker save repository:TAG|gzip>镜像名。如:docker save new_python:3.6 | gzip >python_images.tar.gz
  • 镜像文件导入:docker load <tar 包所在路径。如:docker load < tar /home/test/python_images.tar.gz
  • 删除容器:docker container rm (-f) 容器ID   #-f强制删除
  • 删除镜像文件:docker image rm 镜像名称
  • 删除所有的容器Id:docker rm $(docker ps -a -q)
  • 删除所有的images: docker rmi $(docker images -q)
  • 清理所有处于终止容器:docker container prune

注:

容器是基于镜像创建的,一般是先停止容器,删除容器,在删除镜像

 

五、常用安装

1、mysql

1)搜索镜像:docker search mysql(指定版本:docker search mysql:5.7)

2)将查询的镜像拉取到本地:docker pull mysql (指定版本:docker pull mysql:5.7)

3)查看镜像是否安装成功:docker images

4)容器中运行镜像:

docker run --name Dmysql5 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=****** -d mysql

5)查看当前运行的全部容器:docker ps -a

6)进入镜像:docker exec -it 容器id bash

7)登录mysql:mysql -u root -p

8)修改权限-远程授权:
ALTER user 'root'@'%' IDENTIFIED WITH mysql_native_password BY '*****';
FLUSH PRIVILEGES;

注:

aliyun-安全组需添加3306端口

 

2、redis

1)搜索镜像:docker search redis:6.2.6

2)拉取最新的镜像:docker pull redis(指定版本的docker pull redis:6.2.6)

3)查看下载的镜像:docker images

4)创建目录:

mkdir -p /root/myredis/conf

touch /root/myredis/conf/redis.conf

5)运行镜像:

docker run -p 6379:6379 --name myredis -v /root/myredis/conf/redis.conf:/etc/redis/redis.conf -v /root/myredis/data:/data -d redis redis-server /etc/redis/redis.conf --appendonly yes --requirepass '*****'

-p -p 6379:6379 宿主机的端口映射到 doker 容器的端口
-v 绑定一个卷 将redis的配置文件/数据 映射到 宿主机的文件中
-d 后台运行
–appendonly yes 打开 AOF每次Redis收到更改数据集的命令(例如SET)时,它都会将其附加到 AOF。当您重新启动 Redis 时,它将重新播放 AOF 以重建状态
redis-server /etc/redis/redis.conf 启动以 /etc/redis/redis.conf 下的配置文件启动
–requirepass ‘ab123456’ 设置访问密码为*****

6)redis镜像修改密码---待

  • 进入redis的容器 docker exec -it 容器ID bash
  • 进入redis目录 /usr/local/bin
  • 运行命令:redis-cli
  • 查看现有的redis密码:config get requirepass
  • 设置redis密码config set requirepass ****(****为你要设置的密码)
  • 若出现(error) NOAUTH Authentication required.错误,则使用 auth 密码 来认证密码

7)查看运行的镜像:docker ps -a

8)连接redis:docker exec -it myredis redis-cli -a ab123456

9)设置redis开启自启动:docker update myredis --restart=always

 

六、快速删除镜像或容器

1、删除所有退出的容器:sudo  docker rm $(sudo docker ps -qf status=exited)

2、删除所有的none镜像:docker images |  grep none | awk '{print $3}' | xargs docker rmi

 

posted @ 2022-06-06 19:43  站在围墙上的白白  阅读(130)  评论(0编辑  收藏  举报