Docker常用命令及常见问题

一、Docker命令

##1. docker run命令
官方文档:https://docs.docker.com/engine/reference/run/
命令语法:

1
$ docker run [OPTIONS] IMAGE[:TAG|@DIGEST] [COMMAND] [ARG...]

###[OPTIONS]

[-i -t或缩写成-it]
用于启动交互式进程,如

1
docker run -i -t ubuntu /bin/bash

[-p]
将容器的端口映射到宿主机的端口,如

1
docker run -d -p 80:80 my_image service nginx start

[-h]
指定容器的hostname

[--link]
连接到另外一个容器,如

1
2
# 运行一个redis容器,启动redis-cli并连接另一个名为redis-master的容器
docker run -it --link redis-master:redis-master --rm redis:3.0.7 redis-cli -h redis-master -p 6379

[其他]
在Docker daemon模式下,最后的命令,一定要是当前进程需要一直运行的,才能够防容器退出。如果在image的dockerfile最后没有使用ENTRYPOINT或者CMD,那在docker run的时候要保证最后一句命令是可以在让容器一直运行的,例如:

1
$ docker run -d -p 8080:8080 louz/spark131-jre8 /bin/bash "/usr/local/spark/sbin/start-master.sh && tail -f /usr/local/spark/logs/spark*.out"

##2. 停止守护式容器命令

1
docker stop <CONTAINER ID or NAME>

##3. 查看容器ip

1
docker inspect --format='{{.NetworkSettings.IPAddress}}' <CONTAINER ID or NAME>

##4. 移除容器

1
docker stop <CONTAINER ID or NAME>

##5. 进入已启动容器

1
docker exec -it <CONTAINER ID or NAME> bash

二、加速docker镜像下载

DaoCloud注册并登录后,可以看到你专属的加速器地址:类似http://xxxxxx.m.daocloud.io
访问:

http://docs.daocloud.io/faq/what-is-daocloud-accelerator#docker-toolbox,执行如下命令:

1
2
3
4
docker-machine ssh default
sudo sed -i "s|EXTRA_ARGS='|EXTRA_ARGS='--registry-mirror=加速地址 |g" /var/lib/boot2docker/profile
exit
docker-machine restart default