以centos系统安装centos镜像为例
1、使用官方安装脚本自动安装
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
2、查找镜像源
docker search centos
3、下载镜像
docker pull centos
4、查看已下载的镜像
docker image ls
5、启动镜像
docker run -itd centos /bin/bash
6、进入centos容器
docker attach bce6d9a692b2
7、centos默认没有ifconfig命令,配置ifconfig
[root@bce6d9a692b2 /]# ifconfig
[root@bce6d9a692b2 /]# yum search ifconfig
[root@bce6d9a692b2 /]# yum install net-tools.x86_64
[root@bce6d9a692b2 /]# ifconfig
8、安装openssh
yum install openssh-server -y
9、修改Centos root密码
passwd
centos镜像没有passwd, yum install passwd安装
10、生成公钥、私钥
ssh-keygen -t rsa
11、进入容器
docker ps
docker exec -it bce6d9a692b2 bash
不使用docker attach 的原因是退出终端的时候会关闭镜像
12 、导出容器
docker export -o name container
13、导入容器
docker import name containername:tag
14、端口映射
docker run -itd [--name containername] --privileged -p [hostport]:[dockerport] container /usr/sbin/init -D
15、添加端口映射
1、先把所有容器关闭
docker stop containerid
2、然后停掉docker 服务
systemctl stop docker
3、在 /var/lib/docker/containers/[hash_of_the_container]/hostconfig.json 还有 config.v2.json 这俩文件中修改。 在 hostconfig.json 中找到 PortBindings
"PortBindings":{"80/tcp":[{"HostIp":"","HostPort":"8080"}]}
这里 80 是容器端口, 8080 是本地端口。 现在添加一个端口映射进去,用逗号隔开,比如把宿主机的6666端口映射到容器的8888端口:
"PortBindings":{"80/tcp":[{"HostIp":"","HostPort":"8080"}],"8888/tcp":[{"HostIp":"","HostPort":"6666"}]}
4、在 config.v2.json 中找到 ExposedPorts
“ExposedPorts”:{“80/tcp”:{}}
5、现在把8888端口添加进去,同样是以逗号隔开
“ExposedPorts”:{“80/tcp”:{},"8888/tcp":{}}
6、开启docker服务
systemctl start docker
7、启动容器
docker start containerid
现在docker ps 就可以看到增加了端口映射了
16、查看/删除 镜像
$ docker images
$ docker rmi imagesid
17、查看/删除容器
$ docker ps -a
$ docker rm containerid
删除容器之前要先停掉容器