前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Docker日常使用方式

Docker日常使用方式

作者头像
Johnson木木
发布2020-08-19 15:45:34
8830
发布2020-08-19 15:45:34
举报
文章被收录于专栏:猿小俊猿小俊

前提

在安装docker之前,建议你设置系统的国内镜像源先哦,很快~嗯,快。 阿里云镜像源:https://developer.aliyun.com/mirror/

安装

安装docker

下面都是官网地址: ubuntu: https://docs.docker.com/engine/install/ubuntu/ centos:https://docs.docker.com/engine/install/centos/ 其他版本就是url后面的几个英文不同。

开机启动

代码语言:javascript
复制
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/ 点击左侧栏有个镜像加速地址,就可以看到你的加速镜像地址

代码语言:javascript
复制
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命令查看一下。

代码语言:javascript
复制
drwx------  2 root root  4096 Jun  5 11:26 .docker/

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

代码语言:javascript
复制
sudo chown -R vagrant:vagrant 当前用户的家目录/.docker

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

镜像?容器?

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

docker镜像中心

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

指令集

以mysql为例

下载镜像

使用docker pull命令

代码语言:javascript
复制
docker pull mysql:8.0.20

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

代码语言:javascript
复制
docker images

创建并运行容器

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

代码语言:javascript
复制
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

代码语言:javascript
复制
docker run --restart=always -d mysql:8.0.20

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

代码语言:javascript
复制
docker update --restart=always [CONTAINER]

常用指令

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

代码语言:javascript
复制
docker images

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

代码语言:javascript
复制
docker ps -a

启动容器,停止容器

代码语言:javascript
复制
docker start [CONTAINER]
docker start CONTAINER1 CONTAINER2 # 启动多个容器
docker stop [CONTAINER]
docker stop CONTAINER1 CONTAINER2 # 停止多个容器

进入容器

代码语言:javascript
复制
docker exec -it [CONTAINER] bash

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

代码语言:javascript
复制
docker exec -it mysql_1 mysqldump ...

删除容器

代码语言:javascript
复制
docker rm [CONTAINER]
docker rm CONTAINER1 CONTAINER2 # 删除多个容器

删除镜像

代码语言:javascript
复制
docker rmi [IMAGE]
docker rmi IMAGE1 IMAGE2 # 删除多个镜像

docker镜像仓库

当你在公司修改了某个容器之后,想在家也使用这个容器。那么可以把容器打包成镜像,提交到docker仓库当中。 我是在aliyun上创建了docker镜像仓库:https://cr.console.aliyun.com/ 首先把你的容器打包成镜像,这个是把我的mysql_1容器打包成镜像my_mysql_1taglatet

代码语言:javascript
复制
docker commit mysql_1 my_mysql_1:latest

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

提交到镜像仓库

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

image.png
image.png

2.创建你的镜像仓库

image.png
image.png

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

image.png
image.png

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

总结

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

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

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

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-08-19 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前提
  • 安装
    • 安装docker
      • 开机启动
        • 设置国内镜像
          • 安装docker-compose(用到才装)
            • 设置.docker文件权限
            • 镜像?容器?
            • docker镜像中心
            • 指令集
              • 下载镜像
                • 创建并运行容器
                  • 自动运行
                    • 常用指令
                    • docker镜像仓库
                      • 提交到镜像仓库
                      • 总结
                      相关产品与服务
                      容器镜像服务
                      容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
                      领券
                      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档