前提

在安装docker之前,建议你设置系统的国内镜像源先哦,很快~嗯,快。

阿里云镜像源:https://developer.aliyun.com/mirror/

安装

安装docker

下面都是官网地址:

ubuntu: https://docs.docker.com/engine/install/ubuntu/

centos:https://docs.docker.com/engine/install/centos/

其他版本就是url后面的几个英文不同。

开机启动

sudo systemctl enable docker.service

设置国内镜像

docker中国区的镜像:https://registry.docker-cn.com

网易:http://hub-mirror.c.163.com

中国科技大学:https://docker.mirrors.ustc.edu.cn

阿里云:https://cr.console.aliyun.com/ 点击左侧栏有个镜像加速地址,就可以看到你的加速镜像地址

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["加速镜像地址"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

安装docker-compose(用到才装)

官网地址:https://docs.docker.com/compose/install/

设置.docker文件权限

docker安装好后,会在当前用户的家目录下生成.docker文件,该文件不出意外的话是属于root用户和root组,毕竟要sudo下载,使用ll命令查看一下。

drwx------  2 root root  4096 Jun  5 11:26 .docker/

假设我的用户和组都为vagrant,那么命令如下:

sudo chown -R vagrant:vagrant 当前用户的家目录/.docker

上面的vagrant:vagrant对应的是用户名:用户组 ,一般情况下现在使用docker指令则不需要在前面加sudo了(去你丫的sudo)

安装步骤已完成

镜像?容器?

什么是镜像?什么是容器呐?可以这么类比:镜像就是一个模板;容器则是根据模板的实现。在代码中,你也可以想成接口(镜像)与实现类(容器)。

docker镜像中心

地址:https://hub.docker.com/,在这里你可以找到你所需要的镜像,你可以搜mysql、redis、nginx等等,可以查到有什么版本、怎么运行、有什么配置,有什么环境变量可以设置(比如在mysql你需要设置他的root密码)等等信息。

指令集

以mysql为例

下载镜像

使用docker pull命令

docker pull mysql:8.0.20

查看所有镜像,可以看到你刚下载的mysql镜像

docker images

创建并运行容器

创建并运行你的mysql容器,我使用一条比较长的命令来讲解:

sudo docker run --name mysql_1 -p 3306:3306 -v /var/mapping/mysql/conf.d:/etc/mysql/conf.d -v /var/mapping/mysql_1/lib:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root -d mysql:8.0.20 --default-authentication-plugin=mysql_native_password --character-set-server=utf8mb4

指令格式 docker run [OPTIONS] IMAGE [COMMAND]

docker run:会创建并运行容器

-p:映射端口 3306:3306 就是把容器的3306端口映射到宿主机的3306端口, 格式(宿主机端口:容器端口)

-v:映射数据卷,即映射文件,格式(宿主机数据卷:容器数据卷)

-e:设置环境变量,如设置root的初始密码 MYSQL_ROOT_PASSWORD,可以在docker的镜像中心查看有哪些环境变量

-d:指定镜像

--default-authentication-plugin=mysql_native_password--character-set-server=utf8mb4属于command参数,需要设置在镜像后面。

--default-authentication-plugin=mysql_native_password指的是修改认证的加密方式,mysql8.0后的加密方式改了,导致navicat那些数据库管理工具连不上。所以这里修改加密方式为mysql_native_password

--character-set-server=utf8mb4则是设置数据库的编码方式为utf8mb4。

当然还有很多的command指定都可以在docker hub镜像中心查看。

自动运行

当docker启动的时候,容器也自动启动,有两种方式

1.创建容器时指定 --restart=always

docker run --restart=always -d mysql:8.0.20

2.容器已经创建好了,使用docker update修改容器,CONTAINER可以是容器id,也可以是容器名,docker ps 可以命令查看

docker update --restart=always [CONTAINER]

常用指令

首先说明一下:CONTAINER可以是容器ID,也可以是容器名,IMAGE可以是镜像ID,也可以是 镜像名:tag

查看所有镜像

docker images

查看所有容器,包括没启动的(加 -a 选项)

docker ps -a

启动容器,停止容器

docker start [CONTAINER]
docker start CONTAINER1 CONTAINER2 # 启动多个容器
docker stop [CONTAINER]
docker stop CONTAINER1 CONTAINER2 # 停止多个容器

进入容器

docker exec -it [CONTAINER] bash

在宿主机执行容器内的命令,mysqldump是mysql_1容器内的指令

docker exec -it mysql_1 mysqldump ...

删除容器

docker rm [CONTAINER]
docker rm CONTAINER1 CONTAINER2 # 删除多个容器

删除镜像

docker rmi [IMAGE]
docker rmi IMAGE1 IMAGE2 # 删除多个镜像

docker镜像仓库

当你在公司修改了某个容器之后,想在家也使用这个容器。那么可以把容器打包成镜像,提交到docker仓库当中。

我是在aliyun上创建了docker镜像仓库:https://cr.console.aliyun.com/

首先把你的容器打包成镜像,这个是把我的mysql_1容器打包成镜像my_mysql_1taglatet

docker commit mysql_1 my_mysql_1:latest

打包完后执行指令docker images,查看镜像是否存在。

提交到镜像仓库

1.首先需要创建命名空间



2.创建你的镜像仓库



3.登录并提交到仓库

点击所需提交到镜像仓库的管理按钮,可以查看到以下界面

跟着这里面的步骤执行就可以提交到docker镜像仓库了。就介么简单。

总结

以上便是docker比较常用的操作。ok,拜拜你了~。

个人博客网址: https://colablog.cn/

如果我的文章帮助到您,可以关注我的微信公众号,第一时间分享文章给您

Docker日常使用方式的更多相关文章

  1. docker日常使用指南

    docker日常使用指南 目录 docker日常使用指南 前言 1.基础知识 1.1 docker是什么 1.2 与虚拟机(VM)的区别 1.3 镜像与容器 2.安装 2.1 在线安装 2.2 离线安 ...

  2. CentOS环境Docker安装教程(官方推荐的docker三种方式安装)

    CentOS环境Docker安装教程(官方推荐的docker三种方式安装) 一.使用yum方式安装 1.安装依赖包 $ sudo yum install -y yum-utils device-map ...

  3. Docker 的部署方式

    在使用 docker run 命令启动 Docker 容器时,如果需要进行端口映射.目录挂载.网络信息等配置,整条命令将变得非常长,并且由于是一条 shell 命令,修改和复用也不方便.我们在大规模部 ...

  4. Docker Daemon 连接方式详解

    前言 在 Docker 常用详解指令 一文中粗粗提了一下, Docker 是分为客户端和服务端两部分的, 本文将介绍客户端是如何连接服务端的. 连接方式 1. UNIX域套接字 默认就是这种方式, 会 ...

  5. Docker客户端连接Docker Daemon的方式

    Docker为C/S架构,服务端为docker daemon,客户端为docker.service,支持本地unix socket域套接字通信与远程socket通信. 默认为本地unix socket ...

  6. SpringBoot打包到docker(idea+传统方式)

    作者:故事我忘了¢个人微信公众号:程序猿的月光宝盒 目录 1. 方式1.通过idea 远程发布 1.1 修改docker.service文件 1. 进入服务器 2. 修改ExecStart行为下面内容 ...

  7. 简单docker镜像修改方式

    • 创建Dockerfile,文件内容如下: FROM nps:v1.0.1 ENTRYPOINT ["/usr/bin/init.sh"] • 启动基础镜像:docker run ...

  8. Docker两种方式进入后台运行的容器

    1.在启动容器的时候,有时候我们加了参数-d,这时容器自动进入后台运行.如果我们要进入容器,该怎么办?通常使用docker attach命令和nsenter工具. 2.docker attach是Do ...

  9. 如何让docker以daemon方式运行/bin/bash

    本文转自:https://segmentfault.com/q/1010000000424935 问题: 我想在docker run的时候,用-d参数运行/bin/bash,然后让这个bash一直跑着 ...

随机推荐

  1. APP自动化 -- 框架

    一.框架源码 https://github.com/jiangnan27/Autotest_APP_Open 二.框架环境 python3 + appium1.15.3 + pytest5.3.5 三 ...

  2. ES模糊查询来对应mysql的like查询

    使用ES查询来对应mysql的like查询 建立一个测试索引 PUT /test_like1 { "mappings" : { "properties" : { ...

  3. Python编程无师自通PDF高清完整版免费下载|百度网盘

    百度网盘:Python编程无师自通PDF高清完整版免费下载 提取码:cx73 内容介绍 畅销Python编程类入门书,美国亚马逊Kindle编程类排行榜榜一. 作者从文科毕业,通过自学编程转行为专业程 ...

  4. 【Logisim实验】构建立即数-随机存储器-寄存器的传送

    关于Logisim Logisim在仿真软件行列中算是比较直观的软件了,它能做的事情有很多,唯一不足的是硬件描述语言的支持,总体上来说适合比较底层的仿真,依赖于Hex值,通过线路逻辑设计能够较好的 关 ...

  5. Pycharm远程解释器SFTP开发和调试

    转载:https://blog.csdn.net/ll641058431/article/details/53049453 使用PyCharm进行远程开发和调试 你是否经常要在Windows 7或MA ...

  6. Python获取当前时间_获取格式化时间_格式化日期

    Python获取当前时间_获取格式化时间: Python获取当前时间: 使用 time.time( ) 获取到距离1970年1月1日的秒数(浮点数),然后传递给 localtime 获取当前时间 #使 ...

  7. WPF 半透明 模糊效果 Aero效果(1)

    先看看效果图 目前网上找到了2种实现方式,一种是 .NET Framework4.5及以后有自带的 WindowChrome 效果,一种是 WindowsAPI  dwmapi.dll  ,但这两种在 ...

  8. PHP exit() 函数

    实例 输出一条消息,并退出当前脚本: <?php$site = "http://www.w3cschool.cc/";fopen($site,"r")or ...

  9. 5.20 省选模拟赛 求和 组合数的性质 EGF CRT

    LINK:求和 绝妙的一道题目.没做绝对亏了. 对于第一个subtask 考虑直接递推出组合数. 对于第二个subtask 考虑EGF 设两个EGF 都只含偶数项指标且系数为1的那种 一个到n一个到m ...

  10. [转] 总结了N个真实线上故障

    以下文章来源于架构师进阶之路 ,作者二马读书 1. JVM频繁FULL GC快速排查 在分享此案例前,先聊聊哪些场景会导致频繁Full GC: 内存泄漏(代码有问题,对象引用没及时释放,导致对象不能及 ...