Docker安装及常用命令


docker图标

简介

Building and deploying new applications is faster with containers.
Docker containers wrap up software and its dependencies into a standardized unit for software development that includes everything it needs to run: code, runtime, system tools and libraries. This guarantees that your application will always run the same and makes collaboration as simple as sharing a container image.

Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。

Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。

容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。

其实感觉上就是emmm

别人把整套环境都配置好打包好了,你直接拿过来用就好了!

反正用起来贼方便就是了。

图标

感觉docker的图标就挺好看的(

安装

curl -fsSL get.docker.com -o get-docker.sh
sudo sh get-docker.sh --mirror Aliyun

Windows下下载Docker Desktop

https://www.docker.com/products/docker-desktop

(要登陆)

换源

Linux下,编辑此文件,如果没有则新建。

sudo vim /etc/docker/daemon.json

Windows下文件为:

%programdata%\docker\config\daemon.json

USTC 中科大源(推荐!)

https://lug.ustc.edu.cn/wiki/mirrors/help/docker

{
  "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}

Azure 中国镜像

https://github.com/Azure/container-service-for-azure-china/blob/master/aks/README.md#22-container-registry-proxy

{
  "registry-mirrors": ["https://dockerhub.azk8s.cn"]
}

DaoCloud 源

https://www.daocloud.io/mirror

{
  "registry-mirrors": ["http://f1361db2.m.daocloud.io"]
}

或者 直接执行这个就可以一键修改

curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io

163网易源

{
  "registry-mirrors": [
    "http://hub-mirror.c.163.com"
  ]
}

阿里源

要注册,略。

配置多个镜像

{
  "registry-mirrors": [
    "https://docker.mirrors.ustc.edu.cn",
    "https://dockerhub.azk8s.cn/",
    "http://hub-mirror.c.163.com"
  ]
}

注意遵循json格式。

配置完之后重启服务

sudo systemctl daemon-reload
sudo systemctl restart docker

检查加速器是否生效

docker info

有如下信息则配置成功。

mirrors


Portainer

Portainer 是 Docker 的图形化管理工具,提供状态显示面板、应用模板快速部署、容器镜像网络数据卷的基本操作(包括上传下载镜像,创建容器等操作)、事件日志显示、容器控制台操作、Swarm集群和服务等集中管理和操作、登录用户管理和控制等功能。功能十分全面,基本能满足中小型单位对容器管理的全部需求。

部署

# 拉取镜像
docker pull portainer/portainer

# 一键部署
docker volume create portainer_data
docker run -d -p 9000:9000 --name portainer --restart always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer

访问 http://127.0.0.1:9000 即可访问图形化面板。配置好用户名、密码后登录。

登录界面

连接到Local,登录后的主界面如下。

Home

通过远程访问

需要在防火墙放行9000端口。

Ubuntu:

sudo ufw allow 9000  

CentOS:(其实也可以装个 ufw 的)

sudo firewall-cmd --zone=public --add-port=9000/tcp --permanent  # 开放端口
sudo systemctl restart firewalld.service    # 重启firewall

开机自启

docker update --restart=always portainer

其实在上面的一键部署命令中已经加了,这里不需要了。(记录一下而已)


常用命令

系统相关

查看系统信息

docker info

查看镜像、容器、数据卷所占用的空间

docker system df

容器相关

查看当前容器

docker ps -a

-a则显示所有的容器,包括启动的和未启动的。没有-a的话则只显示运行着的。

创建&使用容器

docker run -it --name 容器名 镜像名/镜像ID /bin/bash

使用 -d 参数运行容器,可以让容器在后台运行而不把STDOUT输出到宿主机上。

(用docker logs [container ID or NAMES]查看)

-i -t 参数一起使用时,可以看到 Linux 命令提示符,如root@69d137adef7a:/#。只有 -i则没有命令提示符。

启动容器

docker start 容器名/容器ID

重启容器

docker restart 容器名/容器ID

终止容器

docker stop 容器名/容器ID

查看容器信息

docker container ls -a

容器统计信息

docker stats

启动已终止容器

docker container start

获取容器的输出信息

docker container logs [container ID or NAMES]

进入容器(连接容器)

docker exec -it 容器名/容器ID /bin/bash

从这个 stdin 中 exit,不会导致容器的停止。(推荐↑)

而下面这个,从这个 stdin 中 exit,会导致容器的停止。

docker attach 容器名/容器ID

删除容器

docker rm 容器名/容器ID

镜像相关

搜索镜像

docker search 关键词

下载镜像

docker pull 镜像名

镜像名:Tag 可以下载不同标签的镜像。

查看已下载镜像

docker images -a
# 或者 docker image ls

删除镜像

docker rmi [Image ID]

端口相关

端口映射

将docker内的80端口映射到宿主机的8000端口上

# 可以使用--name自定义部署的容器名
docker run -d -p 8000:80 --name 容器名 镜像名

# 也可以直接通过镜像部署
docker run -d -p 8000:80 镜像名

(别急,慢慢学好了啦……


拓展阅读

Docker从入门到实践 GitBook https://yeasy.gitbooks.io/docker_practice/content/

Docker-镜像常用命令 https://blog.csdn.net/y472360651/article/details/81289088

Docker温故知新 https://www.sqlsec.com/2019/10/docker2.html


文章作者: MiaoTony
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 MiaoTony !
评论
  目录