Docker学习:Docker安装和基本使用

Docker


Docek是一种容器技术。容器是一种轻量级、可移植、自打包的软件技术,使应用程序可以在几乎任何地方以相同的方式运行。

使用者可以在笔记本上创建并测试好的容器,无需任何修改就能够在生产系统的虚拟机、物理服务器或公有云主机上运行。

Docker安装


安装docker会用到一下命令

//更新apt-get
apt-get update
//安装docker
apt-get install docker.io
//配置加速器
tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": [
    "https://dockerhub.azk8s.cn",
    "https://mirror.ccs.tencentyun.com",
    "https://ytji6dx6.mirror.aliyuncs.com"
  ]
}
EOF
//重启daemon
systemctl daemon-reload
//重启docker
systemctl restart docker

安装截图如下

第一步:更新apt-get命令

第二步:安装docker

第三步:配置加速器

第四步:重启daemon和Docker

Docker基本使用

docker运行

docker run -p 3306:3306 --name mymysql -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.6

说明:

docker run:docker从镜像启动一个容器命令

--name:这是docker run命令的参数,给要启动的容器起个名字

-p:端口映射,前面的是宿主端口号,后面的是容器端口号

-v:挂载宿主机目录到镜容器里,前面的是宿主机目录,后面的是容器目录,那么后面的目录为什么是/var/lib/mysql呢?执行docker inspect -f {{.Config.Volumes}} bob-mysql就可以看到了

-e——指的是环境变量,在启动MySQL镜像时,可以传入一个或多个环境变量修改MySQL实例的配置。这里一定要注意的是启动容器的数据目录已经包含了数据库,这时环境变量就不起作用了。

MySQL镜像支持一下环境变量
MYSQL_ROOT_PASSWORD —— 设置MySQL root用户的密码
MYSQL_DATABASE —— 指定在镜像启动时创建的数据库名称,如果同时指定了MYSQL_USER, MYSQL_PASSWORD,则会授予该用户对这个数据库ALL的权限(GRANT ALL)
MYSQL_USER, MYSQL_PASSWORD —— 创建一个用户并设置它的密码
MYSQL_ALLOW_EMPTY_PASSWORD —— 设置为yes允许容器启动时root用户密码留空
MYSQL_RANDOM_ROOT_PASSWORD —— 为root用户生成随机密码(使用pwgen)
MYSQL_ONETIME_PASSWORD —— 设置root用户初始化完后过期,强制登录时修改密码。注意这个功能只支持MySQL 5.6+

查看镜像版本

docker version

镜像下载

docker pull mysql:5.6

说明:

  1. 这里mysql:5.6是镜像名称和版本号,若是不确定版本,可以使用docker pull mysql则直接下载最新的版本

查询镜像

docker image ls

删除镜像

docker rmi mysql

查看运行的容器

docker ps

说明:

docker ps -a:显示所有的容器

docker ps:显示运行的容器

更多命令使用方法docker ps --help

进入容器

docker exec -it id /bin/bash

查看容器日志

# 退出容器
docker logs -f id

容器停止/启动

docker stop/start id

删除容器

docker rm 容器id

仓库登录

docker login

镜像构建

# 使用Dockerfile创建名为 yucy/mysql的镜像
docker build --rm=true -t yucy/mysql 

镜像打tag

# 将镜像ubuntu:16.04标记为 yucy/ubuntu:V1 镜像
docker tag ubuntu:16.04 yucy/ubuntu:V1

镜像推送

docker push 注册用户名/镜像名

安装问题解决

第一次安装virtualbox的时候,没有设置虚拟电脑的保存路径,导致C盘爆满,具体可参考Docker学习:virtualbox安装和配置,下面是另外一个很纠结的问题,直到今天才解决!!!

第一次使用docker pull mysql时,一直提示no matching manifest for unknown in the manifest list entries在网上查找了很多资料,有解决方法是windows上配置daemon.json中增加配置"experimental": true,可是本机是linux虚拟机,在json文件中增加了这个配置选项,再次pull镜像仍是出错。

后来反复查看虚拟机ios文件和docker的安装要求,发现是虚拟机的版本问题,重新安装ubuntu-16.04.6-server-amd64的虚拟机,问题圆满解决🌛。出现这个文件主要是因为虚拟机安装时的版本选择的是64位的,可是加载的iso文件却是32位的,所以出现了上面的问题。

参考:

https://github.com/KeKe-Li/docker-directive

https://www.runoob.com/docker/docker-image-usage.html

posted @ 2019-05-20 16:46  janehost  阅读(733)  评论(0编辑  收藏  举报