由于内网机经常出问题,(没钱买服务器,所以买了个固态干十几年的笔记本上,当服务器),所以为了保证数据不丢失,我决定研究一下docker
1.1centos安装docker
官方安装
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
//国内
curl -sSL https://get.daocloud.io/docker | sh
1.2 ubuntu安装docker
# 超管运行
sudo su
# 卸载旧的
apt-get remove docker docker-engine docker.io containerd runc
# 更新包管理器
apt update && apt upgrade
# 安装依赖
apt-get install ca-certificates curl gnupg lsb-release
# 添加官方密钥
curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
# 添加源
add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
# 安装docker
apt-get install docker-ce docker-ce-cli containerd.io
2.启动docker
sudo service docker start
//测试
docker run hello-world
//版本
docker version
Client: Docker Engine - Community
Version: 19.03.12
API version: 1.40
Go version: go1.13.10
Git commit: 48a66213fe
Built: Mon Jun 22 15:46:54 2020
OS/Arch: linux/amd64
Experimental: false
3.安装ubuntu镜像
//先修改源
vi /etc/docker/daemon.json
{
"registry-mirrors": ["https://zfzbet67.mirror.aliyuncs.com"]
}
docker pull ubuntu
4.创建ubuntu容器,把宿主机8080端口映射到容器ubuntu的80端口上,并设置后台启动
sudo docker run -itd -p 8080:80 ubuntu
//或者根据版本启动
sudo docker run -itd -p 8080:22 ubun_ssl_redis_node_mongo:v1
//启动一个带命令行的ubuntu容器
docker run -it ubuntu /bin/bash
5.常用命令
//查看所有的容器命令
docker ps -a
//启动一个已停止的容器
docker start “容器id(docker ps -a可查)”
//停止一个已启动的容器
docker stop “容器id(docker ps -a可查)”
//重启一个已启动的容器
docker restart “容器id(docker ps -a可查)”
//说明
docker attach “容器id” 进入容器 exit 后会导致容器停止
docker exec “容器id” 进入容器 exit 后不会导致容器停止
//通常进入带命行的ubuntu容器
docker exec -it 243c32535da7(“容器id”) /bin/bash
6.导出容器(导出容器快照到本地文件 ubuntu_pro.tar。)
docker export “容器id” > ubuntu_pro.tar
或者
docker export -o ubuntu_login.tar “容器名称”
导出本地镜像
$ docker save -o /opt/jenkins_image.tar jenkins/jenkins:latest
7.导入容器快照
导入本地镜像
$ docker load < /opt/jenkins_image.tar
/*
* 可以使用 docker import 从容器快照文件中再导入为镜像,
* 以下实例将快照文件 ubuntu_pro.tar 导入到镜像 pro/ubuntu:v1
*/
cat docker/ubuntu_pro.tar | docker import - pro/ubuntu:v1
//查看
docker images
//启动
sudo docker run -itd -p 8080:80 pro/ubuntu
//或者根据不同版本
sudo docker run -itd -p 8080:22 ubun_ssl_redis_node_mongo:v1
/*
* 报错
* docker: Error response from daemon: No command specified.
* 时尝试在后面加 /bin/bash
*/
sudo docker run -itd -p 8080:80 pro/ubuntu_login:v1 /bin/bash
8.删除镜像和容器
//快照
docker rmi “镜像名称或id”
//根据容器名和tag标签删除
docker rmi ubun_ssl_redis_node_mongo:latest
//容器
docker rm -f “容器id”