Docker基本操作
Docker,这东西对于像我这样的linux菜鸟简直是太方便了,他相当于把每个应用装在自己的独立的linux里,像一个个集装箱一样,节省了大量装环境的时间,妈妈再也不用担心我的开发环境出错了。
因为docker平时用的也不算多,这里还是记录一下我常用的一些docker基本操作了。
安装(centos7)
centos7配置yum repo 配成阿里元镜像
- 1
- 2
- 3
- 4
- 5
- 6
[docker-ce-stable]
name=Docker CE Stable - Sources
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/7/x86_64/stable/
enabled=1
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg
或
- 1
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
- 1
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
配置docker镜像 cd /etc/docker 找到daemon.json文件,如果没有就新建一个 打开daemon.json,内容配置如下:
- 1
- 2
- 3
{
"registry-mirrors":["https://almtd3fa.mirror.aliyuncs.com"]
}
yum 安装
- 1
sudo yum install docker-ce
启动
- 1
- 2
sudo systemctl start docker.service
sudo systemctl enable docker
常用命令
镜像操作
查找镜像 docker search
下载镜像 docker pull
查看所有镜像 docker images
删除某镜像 docker rmi 镜像id
容器操作
运行容器
docker run -t -i 镜像名 /bin/bash
- -i: 交互式操作
- -t: 终端
- /bin/bash:放在镜像名后的是命令,这里我们希望有个交互式 Shell,因此用的是 /bin/bash
关闭容器
docker stop <容器 ID>或<容器名>
启动已停止运行的容器
docker start <容器 ID>或<容器名>
重启容器
docker restart <容器 ID>或<容器名>
查看所有容器
docker ps -a
移除容器(必须停止状态)
docker rm <容器 ID>或<容器名>
移除所有容器
docker rm -f $(docker ps -a -q)
进容器
docker exec -it <容器 ID 或容器名> bash
==容器与主机之间的数据拷贝==(这个我以前用的时候尽然不知道)
docker cp
- 将主机/www/runoob目录拷贝到容器96f7f14e99ab的/www目录下
- 1
docker cp /www/runoob 96f7f14e99ab:/www/
- 将主机/www/runoob目录拷贝到容器96f7f14e99ab中,目录重命名为www。
- 1
docker cp /www/runoob 96f7f14e99ab:/www
- 将容器96f7f14e99ab的/www目录拷贝到主机的/tmp目录中。
- 1
docker cp 96f7f14e99ab:/www /tmp/
查看挂载目录
docker inspect <容器 ID 或容器名>
导出容器
- 1
docker export 1e560fca3906 > ubuntu.tar
导入容器
- 本地(将docker下的ubuntu.tar导入取名test/test/ubuntu:v1)
- 1
cat docker/ubuntu.tar | docker import - test/ubuntu:v1
- 网络
- 1
docker import http://example.com/exampleimage.tgz example/imagerepo
常用命令(仅做记录,务复制)
mysql
- 1
docker run -p 3306:3306 --name dk_mysql -v /root/dockerData/dk_mysql/conf:/etc/mysql/conf.d -v /root/dockerData/dk_mysql/logs:/logs -v /root/dockerData/dk_mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.6
nginx
- 1
docker run --name dk_nginx -p 80:80 -v /root/docker_data/nginx/nginx.conf:/etc/nginx/nginx.conf -v /root/docker_data/nginx/log:/var/log/nginx -v /root/docker_data/nginx/conf.d:/etc/nginx/conf.d -v /root/static:/static -d nginx
mongo
- 1
$ docker run -itd --name mongo -p 27017:27017 mongo --auth
- 1
- 2
- 3
- 4
- 5
$ docker exec -it mongo mongo admin
# 创建一个名为 admin,密码为 123456 的用户。
> db.createUser({ user:'admin',pwd:'123456',roles:[ { role:'userAdminAnyDatabase', db: 'admin'},"readWriteAnyDatabase"]});
# 尝试使用上面创建的用户信息进行连接。
> db.auth('admin', '123456')
tips:
用的时候其实网络互通问题没搞清楚,后来就直接用和主机互通的模式了#共享主机网 --net=host
栗子:
- 1
docker run -itd -v /root/docker_data/python/code:/code -v /root/static:/static --net=host -w /code --name mypython python:3.6.6
关于有更多的知识就等到以后需要用的时候在学习了。