Docker入门实操

timg.png
Docker 开源容器引擎
该文属原创,是作者亲自一步一步实操总结而来,欢迎留下宝贵意见
Go语言编写

三大要素: 仓库,镜像, 容器

前提
image.png

1. 安装linux系统,使用虚拟机(VMware,VirtualBox)

1.1 安装VMware或VirtualBox
1.2 下载linux系统镜像(https://opsx.alibaba.com/mirror)
1.3 安装虚拟机(net:桥接,公司有网关需要登录的情况下用NAT)
1.4 uname -r 获取当前版本信息
1.5 查看虚拟机ip(ip addr)

2. 安装ssh 客户端连接虚拟机(SmarTTY, Xshell)

2.1 安装 Xshell
2.2 连接虚拟机ip
2.3 ping 保证虚拟机是可以上网的

3.安装docker

官方脚本安装docker curl -fsSL https://get.docker.com/ | sh
https://docs.docker.com/install/linux/docker-ce/centos/

//下载相关包依赖(-y 后续确认都执行yes)
yum install -y yum-utils \
  device-mapper-persistent-data \
  lvm2

yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

//安装docker
yum install docker-ce docker-ce-cli containerd.io

//启动docker
systemctl start docker

//验证安装是否正确
docker -v
//Docker version 18.09.6, build 481bc77156

//or
docker version

//or
docker run hello-world 
//Hello from Docker!

4.docker常用 操作

  • docker version

  • docker info

  • docker --help

  • docker search mysql //从hub.docker库中查询


    image.png
  • docker pull mysql[:标签名称]//从库中拉取, 默认tag为latest


    image.png
  • docker images//查看当前镜像

  • docker rmi imageId //删除指定id的镜像

  • docker rm containerId //删除已经关闭的指定id的容器

  • docker rm -f $(docker ps -a -q) 或 docker ps -a -q | xargs docker rm

  • docker run --name custommysql -d mysql//运行镜像,生成容器, 如果指定的镜像没有下载,会先下载,后运行

    • --name 指定容器名称
    • -d 后台运行
    • mysql[:tag]要运行的镜像名称
  • docker run --name mytomcat -d -p 8888:8080 tomcat

    • --name 指定容器名称
    • -d 后台运行
    • -p 8888:8080 端口映射 虚拟机端口:容器端口
    • tomcat[:tag]要运行的镜像名称
  • docker ps //显示当前运行的所有容器

  • docker ps -all //显示当前所有容器,包括未运行的

  • docker start containerId //启动容器

  • docker stop containerId //停止容器 等待片刻后停止

  • docker kill containerId //强制停止容器 立即停止

  • docker logs containerId //查看指定容器的日志

  • yum remove docker-ce // 卸载docker

  • service docker restart //重启docker

  • docker inspect containerId //查看容器详细信息

安装tomcat

  • docker search tomcat

  • docker pull tomcat

  • docker images

  • docker run --name tomcat01 -d -p 8888:8080 tomcat //可运行多次,创建多个容器


    image.png
  • 打开浏览器访问8888端口

  • docker stop 容器id

  • docker start 容器id (与第一次执行run 令一样的,还是8888端口)

安装mysql

  • docker search mysql
  • docker pull mysql
  • docker images
  • docker run -d -e MYSQL_ROOT_PASSWORD=123456 -p3306:3306 mysql
  • 打开Navicat 连接3306端口
https://blog.csdn.net/Alalafan/article/details/81358551

Docker MySql报2059错误: Authentication plugin 'caching_sha2_password' cannot be loaded

[root@localhost docker]# docker ps -a
CONTAINER ID        IMAGE              
29714a167c3d        mysql            

[root@localhost docker]# docker exec -it 29714a167c3d bash
root@29714a167c3d:/# mysql --user=root --password      
Enter password: 
mysql> alter user 'root' identified with mysql_native_password by '123456'

安装centos

  • docker search centos
  • docker pull centos
  • docker images
  • docker run -it centos


    在docker里安装的centos

    image.png

安装minio

  • docker search minio
  • docker pull minio/minio
  • docker images
  • docker run -p 9000:9000 -e MINIO_ACCESS_KEY=admin -e MINIO_SECRET_KEY=123123123 -v /data:/data minio/minio server /data
  • exit 关闭容器退出
  • ctrl p q 不关闭容器退出

安装elasticsearch

docker pull elasticsearch
docker run -d -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms512m -Xmx512m" --name=elasticsearch elasticsearch

虚拟机防火墙配置

  • service firewalld status //查看防火墙状态
  • service firewalld stop //关闭防火墙

配置镜像加速

https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors

  • 申请阿里云帐号: 控制台-产品与服务-弹性计算-容器镜像服务
  • 找到镜像加速器,按文档操作

docker 开机启动

  • systemctl enable docker

下载速度慢

[root@localhost ~]# mkdir -p /etc/docker
[root@localhost ~]# cat /etc/docker/daemon.json
{
 "registry-mirrors": ["https://9cpn8tt6.mirror.aliyuncs.com"]
}
[root@localhost ~]# systemctl daemon-reload
[root@localhost ~]# systemctl restart docker

注意

docker client 是不能直接访问宿主机中容器的。但可以在宿主机的命令行中访问。

问题

Docker无法启动,报错:Job for docker.service failed because the control process exited with error code. See "systemctl status docker.service" and "journalctl -xe" for details.

执行命令:

rm -rf /var/lib/docker/

vim /etc/docker/daemon.json

# 添加如下内容

{
    "graph": "/mnt/docker-data",
    "storage-driver": "overlay"
}

重启服务:

systemctl restart docker

查看状态:

systemctl status docker

# vi /etc/docker/daemon.json
{
    "registry-mirrors": ["http://hub-mirror.c.163.com"]
}
systemctl restart docker.service
//最终效果
{
        "registry-mirrors": ["http://hub-mirror.c.163.com"],
        "graph":"/mnt/docker-data",
        "storage-driver": "overlay"
}

你可能感兴趣的:(Docker入门实操)