文章目录

  • Docker介绍
  • 安装
  • 查看版本
  • 启动并加入开机启动
  • 配置镜像加速
  • docker指令
  • 拉取镜像
  • 查看镜像
  • 删除镜像
  • 删除所有镜像
  • 保存镜像
  • 将容器保存为镜像
  • 将镜像保存为tar包
  • 将tar 包导入docker镜像
  • 制作镜像
  • Dockerfile
  • 运行容器
  • 查看容器
  • 删除容器
  • 强制删除容器
  • 停止容器
  • 停止所有容器
  • 推送到仓库
  • dockerhub
  • 注册dockerhub用户
  • 登录
  • 推送镜像
  • Docker可视化管理面板
  • Portainer
  • FAST OS DOCKER
  • 教程


Docker介绍

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows操作系统的机器上,也可以实现虚拟化。

安装

curl -sSL https://get.daocloud.io/docker | sh

uos 一键安装mysql_运维

查看版本

sudo docker version

uos 一键安装mysql_uos 一键安装mysql_02

启动并加入开机启动

sudo systemctl start docker 
sudo systemctl enable docker

配置镜像加速

docker官方镜像仓库网速较差,我们需要设置国内镜像服务:

参考阿里云的镜像加速文档:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://jghuhrwl.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

docker指令

指令需要使用到管理员权限加上sudo,
dockerhub是镜像仓库,可以去拉取镜像https://hub.docker.com/

拉取镜像

  • docker pull 镜像名
  • docker pull 镜像名:tag
sudo docker pull mysql

uos 一键安装mysql_uos 一键安装mysql_03

sudo docker pull mysql:8.0

不加tag(版本号) 即拉取docker仓库中 该镜像的最新版本latest 加:tag 则是拉取指定版本

uos 一键安装mysql_uos 一键安装mysql_04

查看镜像

sudo docker images

uos 一键安装mysql_Docker_05

可以看到刚刚拉取的两个镜像

删除镜像

  • sudo docker rmi <镜像名/镜像名称>
sudo docker rmi 3218b38490ce

删除所有镜像

  • docker rmi -f $(docker images -q)
sudo docker rmi -f $(sudo docker images -q)

保存镜像

将容器保存为镜像

  • docker commit <容器id> <镜像名>:
    首先通过docker ps指令查看容器,找到对应的容器id或者使用容器名

    将容器提交保存为镜像
sudo docker commit 3e8771cb5dbc mysql:save

uos 一键安装mysql_Docker_06


查看镜像。

sudo docker images

uos 一键安装mysql_运维_07

将镜像保存为tar包

  • docker save -o <tar包名>.tar <镜像名>:
sudo docker save -o mysql.tar mysql:latest

uos 一键安装mysql_运维_08

将tar 包导入docker镜像

  • docker load -i <tar包名>.tar
sudo docker load -i mysql.tar

uos 一键安装mysql_Docker_09

制作镜像

Dockerfile

Dockerfile是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明。
创建Dockerfile

touch Dockerfile

文件内容

FROM ubuntu:20.04 

ENV TZ Asia/Shanghai
ENV LANG zh_CN.UTF-8
RUN echo 	"deb http://mirrors.163.com/ubuntu/ focal main restricted universe multiverse\n \
			deb http://mirrors.163.com/ubuntu/ focal-security main restricted universe multiverse \n \
			deb http://mirrors.163.com/ubuntu/ focal-updates main restricted universe multiverse\n	\
			deb http://mirrors.163.com/ubuntu/ focal-backports main restricted universe multiverse\n"\
            > /etc/apt/sources.list        \
            && apt update && apt install -y \ 
			openssh-server \
			vim \
			&& apt clean \
			&& rm -rf /tmp/* /var/lib/apt/lists/* /var/tmp* \
			&& ssh-keygen -t rsa -f ~/.ssh/id_rsa -P '' && cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys \
			&& sed -i 's/PermitEmptyPasswords yes/PermitEmptyPasswords no /' /etc/ssh/sshd_config  \
			&& sed -i 's/PermitRootLogin without-password/PermitRootLogin yes /' /etc/ssh/sshd_config  \
			&& echo " StrictHostKeyChecking no" >> /etc/ssh/ssh_config \
			&& echo " UserKnownHostsFile /dev/null" >> /etc/ssh/ssh_config \
			&& echo "root:root" | chpasswd 
RUN mkdir /var/run/sshd

EXPOSE 22
CMD ["/usr/sbin/sshd","-D"]

构建镜像

sudo docker build -t myubuntu:v1 .

uos 一键安装mysql_容器_10

uos 一键安装mysql_uos 一键安装mysql_11

镜像构建成功。

运行容器

  • docker run --name <容器名> -e <环境变量> -d <镜像名>:<版本号>
sudo docker run --name some-mysql -p 3306:3306  -e MYSQL_ROOT_PASSWORD=123456 -d mysql:latest

参数解释

--name:容器名(自定义)
-e:指定容器的环境变量(MYSQL_ROOT_PASSWORD这里设置mysql的密码)
-d:在run后面加上-d参数,则会创建一个守护式容器在后台运行。
-it:使用交互方式运行,进入容器查看内容
-p:端口映射,冒号左边指容器端口,冒号右边是外部主机端口

uos 一键安装mysql_Docker_12

查看容器

  • 查看当前运行的容器:docker ps
sudo docker ps

uos 一键安装mysql_Docker_13

加上-a参数可以查询存在过的容器(停止运行的容器)

sudo docker ps -a

uos 一键安装mysql_容器_14

删除容器

  • docker -rm <容器名/容器id>
sudo docker rm 3e8771cb5dbc

uos 一键安装mysql_运维_15

这里由于容器正在运行无法删除,需要先停止容器

强制删除容器

sudo docker rm -f 3e8771cb5dbc

加入-f参数,强制删除容器

停止容器

  • docker stop <容器名/容器id>
sudo docker stop 3e8771cb5dbc

uos 一键安装mysql_Docker_16

此时再执行删除容器的操作,可以删除了

uos 一键安装mysql_docker_17

停止所有容器

  • docker stop $(docker ps -a -q)
sudo docker stop $(sudo docker ps -a -q)

推送到仓库

dockerhub

docker hub是Docker官方维护的一个公共仓库,大部分需求都可以通过在Docker Hub中直接下载镜像来实现。

注册dockerhub用户

https://hub.docker.com/signup

登录

sudo docker login

uos 一键安装mysql_运维_18

推送镜像

推送镜像前,需要将镜像重命名

sudo docker tag 076e31b16af5 chenchongbiao/myubuntu:v1
  • 076e31b16af5 是镜像id
  • chenchongbiao是在dockerhub注册的用户名
  • myubuntu是自定义的镜像名
  • v1表示标签,如果不需要可不写
sudo docker push chenchongbiao/myubuntu:v1

uos 一键安装mysql_容器_19

Docker可视化管理面板

Portainer

Portainer是一个可视化的容器镜像的图形管理工具,利用Portainer可以轻松构建,管理和维护Docker环境。 而且完全免费,基于容器化的安装方式,方便高效部署。
官方安装说明:https://www.portainer.io/installation/
面板使用英文

docker run -d -p 8000:8000 -p 9000:9000 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer

远程模式

docker run -d -p 9000:9000 --restart=always --name prtainer portainer/portainer

FAST OS DOCKER

通过可视化界面轻松构建您的docker环境,方便您docker环境的管理,远离命令式操作。大大提高您的工作效率,减少不必要的操作。
面板使用中文

docker run --restart always --name fast -p 9999:9999 -d -v /var/run/docker.sock:/var/run/docker.sock wangbinxingkong/fast