UOS安装Docker及简单使用

Docker介绍

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

安装

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

在这里插入图片描述

查看版本

sudo docker version

在这里插入图片描述

启动并加入开机启动

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

在这里插入图片描述

sudo docker pull mysql:8.0

不加tag(版本号) 即拉取docker仓库中 该镜像的最新版本latest 加:tag 则是拉取指定版本
在这里插入图片描述

查看镜像

sudo docker images

在这里插入图片描述可以看到刚刚拉取的两个镜像

删除镜像

  • 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

在这里插入图片描述
查看镜像。

sudo docker images

在这里插入图片描述

将镜像保存为tar包

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

在这里插入图片描述

将tar 包导入docker镜像

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

在这里插入图片描述

制作镜像

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 .

在这里插入图片描述在这里插入图片描述镜像构建成功。

运行容器

  • 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:端口映射,冒号左边指容器端口,冒号右边是外部主机端口

在这里插入图片描述

查看容器

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

在这里插入图片描述加上-a参数可以查询存在过的容器(停止运行的容器)

sudo docker ps -a

在这里插入图片描述

删除容器

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

在这里插入图片描述这里由于容器正在运行无法删除,需要先停止容器

强制删除容器

sudo docker rm -f 3e8771cb5dbc 

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

停止容器

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

在这里插入图片描述此时再执行删除容器的操作,可以删除了
在这里插入图片描述

停止所有容器

  • 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

在这里插入图片描述

推送镜像

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

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

在这里插入图片描述

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

教程

【狂神说Java】Docker最新超详细版教程通俗易懂
Docker教程
官方文档

  • 2
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值