ubuntu下docker安装与命令
一、安装
1、查看内核uname -r
2、更新包sudo apt-get update
3、没有docker旧版本,忽略这一步。如果有则需要卸载旧的版本,主要为了防止新旧版本冲突
sudo apt-get remove docker docker-engine docker.io
4、为了防止 apt 源使用 HTTPS 以确保软件下载过程中不被篡改。我们需要添加使用 HTTPS 传输的软件包及 CA 证书
sudo apt-get install apt-transport-https ca-certificates curl gnupg lsb-release
5、确认下载软件包的合法性,需要添加软件源的 GPG 密钥,但因网络问题设置docker源改为国内源(阿里)
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
6、向 source.list 中添加 Docker CE 软件源
sudo add-apt-repository "deb [arch=armhf] https://mirrors.ustc.edu.cn/docker-ce/linux/raspbian $(lsb_release -cs) stable"
7、安装sudo apt-get install docker-ce
补充:官方一键安装有两种方式,第一种方式使用外网圆,所以比较慢,建议使用第二种方式安装
1、curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
2、curl -sSL https://get.daocloud.io/docker | sh
二、配置环境
-
服务配置
1、建立 docker 用户组sudo groupadd docker
2、将当前用户加入 docker 组sudo usermod -aG docker $USER
3、刷新成员。sudo newgrp - docker或sudo newgrp -
设置国内镜像源
vim /etc/docker/daemon.json
python
{
“registry-mirrors”: [
“https://fy9iz0e2.mirror.aliyuncs.com”,
“https://registry.docker-cn.com”,
“http://hub-mirror.c.163.com”,
“https://docker.mirrors.ustc.edu.cn”
]
}
python
- 设置服务自启动
sudo systemctl enable docker.service
sudo systemctl start docker.service
python
- 重启并查看
docker -v或sudo docker run hello-world
三、命令
1、镜像操作
-
docker search dname
远程仓库docker hub搜索镜像。假设镜像名字为dname -
docker pull dname
远程仓库拉取(下载)镜像,默认下载最新版本。假设镜像名字为dname。如需指定版本3.2.1,则在镜像名dname后加上‘:3.2.1’ -
docker images
列出已下载的镜像 -
docker rmi dname
删除本地镜像。假设镜像名字为dname
2、容器操作(-v 配置本地挂载目录 本地-远端)
-
docker ps
列出中的容器,status指标为up时表示已启动 -
docker stop cname
停止容器。假设容器名字为cname -
docker kill cname
强制停止容器。假设容器名字为cname -
docker start cname
开启已停止的容器。假设容器名字为cname -
docker run --privileged=true -d -p 91:80 nginx /usr/sbin/init 或 docker run --privileged=true --name mynginx -d -p 91:80 nginx /usr/sbin/init
新建并启动容器(包含下载镜像的操作)。假设容器名字为nginx,后可接多个参数,如:–name 重命名容器名称; -d 后台; -p 端口映射; -
docker inspect cname
查看容器的详细信息。假设容器名字为cname -
docker inspect cname:tag | grep -i version
查看容器应用的各镜像版本信息。假设容器名字为cname,版本标签为tag(选填) -
docker container logs cname
查看容器日志,一次性。假设容器名字为cname -
docker logs -f cname
监听容器日志,持久性,如果不手动关闭的话(ctrl+c)。假设容器名字为cname -
docker top cname
查看容器的进程。假设容器名字为cname -
docker exec -it cname /bin/bash
进入容器。假设容器名字为cname -
docker rm cname
删除容器,默认删除已停止的容器,如需删除正在的容器,可使用-f参数。假设容器名字为cname -
docker volume create|rm|ls|inspect vname
创建|删除|罗列|查询数据卷。假设数据卷名字为vname
3、自制镜像。以nginx为例
3.1、mkdir /home/custom
3.2、cd /home/custom
3.3、vim Dockerfile
FROM nginx
RUN echo '<h1>CUSTOM NGINX</h1>'>/usr/share/nginx/html/index.html
python
3.4、docker build -t myimage .
docker build -f ./Dockerfile -t myimage:1.0 .
cname 表示镜像名字; -t 指定镜像名字; . 表示Dockerfile文件所在路径
3.5、docker run -d -p 92:80 cname
docker run -d -p 92:80 -p 93:81 --name cname --network mynetwork -v x:y myimage:1.0
cname 表示镜像名字;
